我们在做接口断言的时候,如果遇到复杂的json,可以考虑用beanshell脚本去解析list,同时加入自定义的断言
Mock例:https://www.easy-mock.com/mock/5cb46739edfdac7de69fe792/example/provider
如图所示,我们在json返回中有name和remark字段,希望断言remark和name的返回值。如果断言失败,抛出自定义的异常信息
我们在mock接口下添加一个后置处理器的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); } }
启动脚本,打开log,查看结果
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。