千家信息网

Beanshell脚本断言Mock接口

发表于:2024-12-02 作者:千家信息网编辑
千家信息网最后更新 2024年12月02日,我们在做接口断言的时候,如果遇到复杂的json,可以考虑用beanshell脚本去解析list,同时加入自定义的断言Mock例:https://www.easy-mock.com/mock/5cb46
千家信息网最后更新 2024年12月02日Beanshell脚本断言Mock接口

我们在做接口断言的时候,如果遇到复杂的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,查看结果


0