大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说beanshell(java beanshell的用法),希望您对编程的造诣更进一步.
什么是Bean Shell
- BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;
- BeanShell是一种松散类型的脚本语言(这点和JS类似);
- lBeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为几百k。
- BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。
官网:http://www.beanshell.org/
Jmeter有哪些Bean Shell
- 定时器:BeanShell Timer
- 前置处理器:BeanShell PreProcessor
- 采样器:BeanShell Sampler
- 后置处理器:BeanShell PostProcessor
- 断言:BeanShell断言
- 监听器:BeanShell Listener
beanShell主要使用场景
(1)当目前提供jmeter的函数不满足测试要求。
(2)测试中必须使用第三方jar包中和函数时。如加密和解密之类。
前置处理器:BeanShell PreProcessor
表示使用处理,进行预处理使用此组件。
脚本中常用变量:ctx vars props prev sampler log
测试代码:
import com.test.*;
//测试ctx
int threadnum=ctx.getThreadNum() ;
log.warn("线程号:"+threadnum);
//测试外部函数
String str = StringUtil.formatString(threadnum, 10, '0', "left");
log.warn("--"+str);
//测试vars
vars.put("numb",str);
String num=vars.get("numb");
log.warn("++"+num);
//测试props
props.put("pro1","123456");
String str2=props.get("language");
String str3=props.get("pro1");
log.warn(str2);
log.warn(str3);
//参数
log.warn(Parameters);
log.warn(bsh.args[0]);
log.warn(bsh.args[1]);
//sampler
String str4 = sampler.getName();
log.warn(str4);
sampler.setName("beanshell1");
str5 = sampler.getName();
log.warn(str5);
测试结果:
取样器:BeanShell Sampler
BeanShell Sampler 直接模拟调用JAVA API,直接压测JAVA API。
脚本中常用变量:SampleResult, ResponseCode, ResponseMessage, IsSuccess, Label, FileName, ctx, vars, props, log
测试代码:
int i=ctx.getThreadNum();
if(i%2==0){
IsSuccess=true;
ResponseMessage ="ResponseMessage ture";
ResponseCode = 200;
}
if(i%2==1){
IsSuccess=false;
ResponseMessage ="ResponseMessage false";
ResponseCode = 404;
}
SampleResult ="beanShell Samper SampleResult 1";
测试结果:
断言:BeanShell Assertion
BeanShell直接使用断言功能,根据定义脚本实现断言功能。
脚本中常用变量:
可读/写变量: Failure, FailureMessage, SampleResult, vars, props, log.
只读变量: Response[Data|Code|Message|Headers], RequestHeaders, SampleLabel,
SamplerData, ctx
测试代码:
boolean f1=Failure;
Failure=true; //此变量为ture时,则在结果树能查询断言结果
log.warn("--"+f1.toString());
FailureMessage="test FailureMessage"; //设置断言错误信息
String str1 = RequestHeaders; //获得请求头部信息
String str2 = SampleLabel;
String str3 = SamplerData; //获得请求数据
String str4 = ResponseCode; //获得返回响应码
String str5 = ResponseMessage; //获得返回响应信息
String str6 = ResponseHeaders; //获得返回响应头部信息
String str7 = new String(ResponseData); //String str6 = ResponseHeaders; //获得返回响应头部信息
log.warn("--"+str1);
log.warn("--"+str2);
log.warn("--"+str3);
log.warn("--"+str4);
log.warn("--"+str5);
log.warn("--"+str6);
log.warn("--"+str7);
测试结果:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/23725.html