玩转Jmeter之jmeter元器件参数化关联5
1.参数化:
作用:把测试数据提取到外部文件或数据库
好处:1.方便修改 2.多用户使用不同数据
比如:登录
1. 录制登录脚本
2. 在需要替换测试数据的取样器前,创建配置元件--CSV Data Set Config
3. 将固定数据替换成${name}
**配合循环控制器,实现单线程数据驱动
使用beanshell动态获取行数、完成简单数据处理(beanshell读取csv,多少行,写到变量里,根据变量值,决定循环多少次)
2.beanshell处理器,处理base64加密:
import sun.misc.BASE64Decoder;
#随机生成3位字符串
String r ="${__RandomString(3,0123456789)}";
#把三位字符串和密码相加
String password = r + vars.get("password");
#password加密并赋值给new_pwd
String new_pwd = new sun.misc.BASE64Encoder().encode(password.getBytes());
#把new_pwd的值重新放到password中
vars.put("password", new_pwd);
#打印password内容
log.info(vars.get("password"));
3.关联,jmeter关联使用的是后置处理器,即在请求之后把响应数据保存到变量里,以供后面的请求发送
<1>. 如果接口返回的是json,可以用json提取器做关联
<2>. 如果接口返回的是html或者xml,需要用xpath提取器做关联
4.接口测试报告:
执行cmd命令:jmeter -n -t test.jmx -l result.jtl -e -o ./ResultReport
参数说明:
● -n: 非GUI模式执行JMeter
● -t: 执行测试文件所在的位置
● -l: 指定生成测试结果的保存文件,jtl文件格式
● -e: 测试结束后,生成测试报告
● -o: 指定测试报告的存放位置
● -g: 已经存在的.jtl文件的路径
汉化版报告:https://github.com/mzky/jmeter5.x-cn-report-template
报告优化
使用 jmeter.results.zy.me.xsl 模板,放在jmeter的extras路径下
jmeter-results-detail-report${style_version}.xsl