您的位置:首页 > 运维架构 > Shell

jmeter beanShell断言

2017-04-28 17:35 295 查看
用户可以在jmeter- “beanShell断言”中自定义断言。自由灵活的用脚本实现自己的断言

beanShell断言接口介绍

在beanShell中直接可以调用的变量,无需加前缀。

1.log 打印日志 log.info(“在控制台打印日志”);

2.SampleResult 获取SampleResult对象,可以通过这个对象获取想要的信息

3.Response 获取Response对象,可以通过这个对象获取对应的信息

4.Failure 查看接口调用是否成功,如果返回false是成功的,true是失败的

5.FailureMessage 失败信息,没有设置的时候失败信息是空的。可以set这个信息

6.ResponseData 获取 response body 类型是byte[]

7.ResponseCode 返回接口code 成功是200

8.ResponseMessage 获取msg 成功是OK

9.ResponseHeaders 获取接口服务端返回的头部信息

10.RequestHeaders 获取客户端请求的头部信息

11.SampleLabel 获取接口请求的名称

12.SamplerData 获取请求的url和body

13.ctx 代表上下文信息,可以直接使用

14.vars 可以直接调用,将获取的数据变成jmeter变量(put),也可以获取用户自定义的变量(get)

eg:

1.在http sample下添加一个beanShell断言

2.编写script

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();//获取接口返回的response数据

JSONObject data_obj = new JSONObject(response_data);//转换成json

//判断code是否等于0 如果等于0 再取里面的字段

String code = data_obj.get(“code”);

if(code.equals(“0”))

{

String user_name = data_obj.get(“data”).get(“user”).get(“userName”).toString();

//这里的my_name 是用户自定义的变量或者之前的接口返回获取的

if(user_name.equals(${my_name})){

Failure = false; //设置成false 表示接口跑成功,在结果树中sample是绿色的

//做后续动作

…….

}

else{

//做其他动作

}

}

else

{

Failure = true;//直接判断失败 表示接口跑失败,在结果树中sample是红色的

prev.setStopThread(true);//如果断言失败,后面的接口不需要再跑,直接暂停

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: