我們在做接口斷言的時候,如果遇到復雜的json,可以考慮用beanshell腳本去解析list,同時加入自定義的斷言
Mock例:https://www.easy-mock.com/mock/5cb46739edfdac7de69fe792/example/provider
如圖所示,我們在json返回中有name和remark字段,希望斷言remark和name的返回值。如果斷言失敗,拋出自定義的異常信息
我們在mock接口下添加一個后置處理器的beanshell
beanshell中寫斷言腳本
import org.apache.jmeter.assertions; import org.apache.jmeter.samplers.SampleResult; import org.apache.jmeter.assertions.AssertionResult; import org.json.*; String response_data = prev.getResponseDataAsString(); JSONObject data_obj = new JSONObject(response_data); log.info(response_data); String code = data_obj.get("remark"); log.info(code); if(code.equals("接口測試服務商")) { String user_name = data_obj.get("dockedContact").get("name").toString(); if(user_name.equals("zhufc")){ Failure = true; log.info(user_name); log.info("提取值與預期相符,斷言通過"); FailureMessage = "斷言通過"; } else{ Failure = false; log.info("名稱不同,斷言失敗"); FailureMessage = "斷言失敗"; prev.setStopThread(true); } }
日志等級調整為info
啟動腳本,打開log,查看結果