性能测试九:jmeter进阶之beanshell的使用+断言
一、使用
BeanShell使用方式一
BeanShell面板上写脚本
// 从vars中获取用户定义的参数,并转换为int类型
int p_skuId = Integer.parseInt(vars.get("p_skuId"));
// 进行逻辑判断,如果是偶数,保存一个参数p_opt,值为“Rick”;如果是奇数,值为“Glen”
if (p_skuId % 2 == 0){
vars.put("p_opt","Rick");
}else{
vars.put("p_opt","Glen");
}
BeanShell使用方式二
引用外部java文件 步骤:
//引用外部java文件
source("D:\\md5\\Md5Util.java");
//获取出原来的p_opt参数
String str_opt = vars.get("p_opt");
//调用Md5Util类中的getMd5Hex方法,将str_opt加密
String md5_opt = Md5Util.getMd5Hex(str_opt);
//将加密后的参数重新保存为一个mdt_opt参数,并放到vars中
vars.put("md5_opt",md5_opt);
BeanShell使用方式三
引入外部jar包 步骤:
1.“测试计划”里,Add directory or jar to classpath
2.import 所需要的类名
//导入类名
import com.lee.util.Md5Util;
//获取出原来的p_opt参数
String str_opt = vars.get("p_opt");
//调用Md5Util类中的getMd5Hex方法,将str_opt加密
String md5_opt = Md5Util.getMd5Hex(str_opt);
//将加密后的参数重新保存为一个mdt_opt参数,并放到vars中
vars.put("md5_opt",md5_opt);
二、断言
内置变量
Failure:是否失败,boolean类型
FailureMessage:失败日志,在断言失败时显示
例:
int stock = Integer.parseInt(vars.get("p_stock"));
if (stock > 1500){
Failure = true;
FailureMessage = "库存数量超过了1500";
// ResponseData是服务器返回的byte[]类型的数据,如果想打印,必须转换为String类型的,用new String(ResponseData)
log.info(new String(ResponseData));
//打印当前请求的url, SamplerData是String类型的数据
log.info(SamplerData);
}