在做接口测试时,对响应数据的校验是非常重要的部分;在使用Jmeter进行接口测试时,有多种respone校验方式,比如响应断言、BeanShell断言等等,BeanShell断言可以自定义断言,自由灵活的用脚本实现断言。
1.什么是BeanShell ?
小型嵌入式Java源代码解释器,具有对象脚本语言特性,能够动态地执行标准JAVA语法
运行其内部的脚本处理Java应用程序,还可以在运行过程中动态执行你java应用程序执行java代码,因为BeanShell是用java写的,运行在同一个虚拟机的应用程序,因此可以自由地引用对象脚本并返回结果。
下面来介绍如何使用beanshell来进行断言和数据处理,假如我们有如下的response数据:
1 {2 "message": "不能发送小于当前时间点的定时任务",3 "statusCode": 200
4 }
(1).我们使用JSONObject对象来获取json数据,首先需要下载org.json的jar包,然后在测试计划中导入该jar包,并在jmeter的lib目录下放入该jar包,下面验证statusCode的值是否等于200:
1 import org.json.*;2
3 //获取上一个请求的返回
4 String jsonString =prev.getResponseDataAsString();5 JSONObject responseJson = newJSONObject(jsonString);6
7 //判断返回值是否和预期一致
8 if (responseJson.getInt