JMeter(7) 優化判斷返回類型和返回值


之前判斷接口類型和返回值用beanshell,可見JMeter(5)-JMeter之BeanShell使用

優化點

  1. 接口測試里面對返回字段的類型驗證值驗證為基本需求,將方法導成jar文件,導入之后方便每個斷言可以調用。
  2. 補充對null類型、Array類型的判斷

步驟

  1. 將判斷方法打包成jar文件
    java項目打包成jar
    我的jar下載
  2. 導入jmeter項目中


     
     
  3. 判斷接口返回字段值正確性(EqualsJsonValue類)
    beanshell的調用代碼如下
import com.susie.action.equals.EqualsJsonValue; String standardData = "{'uid':123,'phone':1,'has_password':true,'location':{'province':true,'city':'123'},'cpma':1}"; EqualsJsonValue equalsValue = new EqualsJsonValue(); Failure = !equalsValue.respValueAssertion(standardData, prev.getResponseDataAsString()); //斷言結果 FailureMessage = equalsValue.getMessage(); //斷言錯誤信息 

運行結果


 
 
  1. 判斷接口返回字段類型正確性(EqualsJsonType類)
    beanshell的調用代碼如下
import com.susie.action.equals.EqualsJsonType; String standardData = "{'uid':123,'phone':1,'has_password':true,'location':{'province':true,'city':'\u6c55\u5934\u5e02'},'cpma':null}"; EqualsJsonType equalsJson = new EqualsJsonType(); Failure = !equalsJson.respTypeAssertion(standardData, prev.getResponseDataAsString()); FailureMessage = equalsJson.getMessage(); 
  1. 格式化每個接口的字段斷言
    將每個需要檢查的字段(期望響應)直接用csv記錄,每次比較直接讀取進行比對無需一個個斷言,非常方便~


     
     

    通過CSV Data Set Config讀取,在beanshell中比較,調用方式與前面類似,獲取標准響應

String standardDataShell = vars.get("standardData").toString(); 

注意: 讀取csv中的json的時要注意json的逗號&雙引號
在這里坑了許久,因為csv是以逗號區分不同列的數據,所以,要把json里面的逗號改稱分號,雙引號改稱單引號;

如果覺得我的文章對您有用,請隨意贊賞。您的支持將鼓勵我繼續創作!

贊賞支持
 
接口自動化Jmeter
Gupao
登錄 后發表評論
 
 
失語失芯不失夢
2樓 · 2018.11.24 18:44

不是很明白:joy: 如果我想判斷返回數據里面字段A的值類型對不對該怎么寫呢?比如說定義的是字段A應該返回int型的值,但實際上返回的是string類型的值,這種斷言我怎么寫呢

回復

 

@失語失芯不失夢
在benshell里面寫java腳本就可以驗證。
思路是提取返回數據里字段A,得到A的類型,跟期望的類型比較。類型一致則斷言成功;類型不一致則斷言失敗。
我這篇里面只是把比較的方法封裝在jar包里面,方便每次都直接調用來判斷而已。

 

2018.12.04 14:43 回復

 

封裝后,每次只要輸入一段期望值(json格式),腳本會從接口響應(json格式)里提取對應的字段,逐一判斷

 

2018.12.04 14:45 回復


作者:susie醬
鏈接:https://www.jianshu.com/p/78df350d78e5
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM