beanshell断言_Jmeter之BeanShell断言使用(示例代码)

本文介绍了JMeter中的BeanShell断言,包括BeanShell内置变量如log、ctx、vars、props、prev和sampler的使用方法。通过实例展示了如何利用BeanShell断言检查响应状态码和响应数据,实现自定义的断言失败信息,并记录在日志中。
摘要由CSDN通过智能技术生成

1.Bean Shell常用内置变量

JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下:

log:用来记录日志文件,写入到jmeber.log文件,使用方法:log.info(“This is log info!”);

ctx(JmeterContext)通过它来访问context,使用方法可参考:org.apache.jmeter.threads.JMeterContext。

vars- (JMeterVariables):操作jmeter变量,提供读取/写入访问变量的方法。这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:

a) vars.get(String key):从jmeter中获得变量值

b) vars.put(String key,String value):数据存到jmeter变量中

c) vars.putObject("OBJ1",new Object());

props- (JMeterProperties - class Java.util.Properties):操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties。

a)props.get("START.HMS");  注:START.HMS为属性名,在文件jmeter.properties中定义

b) props.put("PROP1","1234");

prev - (SampleResult):获取前面的sample采样的结果,常用方法:

a) getResponseDataAsString():获取响应信息

b)getResponseCode() :获取响应code

sampler - (Sampler):gives access to the current sampler 访问当前采样

2.BeanShell 断言使用实例

BeanShell断言可以使用beanshell脚本来执行断言检查,可以用于更复杂的个性化需求,使用更灵活,功能更强大,但是要能够熟练使用beanshell脚本。

这里除了可以使用beanshell的内置变量外,主要通过Failure和FailureMessage来设置断言结果。

Failure = false;-----表示断言成功,

FailureMessage= "……"; ----自定义的成功信息

Failure= true;-----表示断言失败,

FailureMessage= "……";-----自定义的失败信息。

实例:

String responseData = prev.getResponseDataAsString(); //获取请求的返回结果

String code = prev.getResponseCode(); //获取请求的返回code码

String requestData = prev.getSamplerData(); //获取发出的请求数据

if( !code.equals("200") ){ //如果请求的相应状态码不是200

FailureMessage = "响应状态码不是:200,而是:" + code + ",请求失败!"; //自定义的失败信息

log.info(FailureMessage); //在日志里打印失败的信息

log.info("Request: " + requestData); //在日志里面打印失败的请求体

Failure = true; //表示断言失败

}else if(!responseData.contains(""errCode":0")){

FailureMessage= "响应body中errCode不是:0,响应body为:" +responseData;

log.info(FailureMessage);

log.info("Request: " +requestData);

Failure= true;

}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值