Jmeter之 forEach 遍历所有值
今天遇到一个场景,通过正则表达式提取多个值,然后保存到文件中去
正则表达式
1、一开始的思路是通过后置 Beanshell断言进行,得到文件数据为 null
FileWriter fstream=new FileWriter ("D://test.csv",true);
BufferedWriter out=new BufferedWriter(fstream);
out.write(vars.get("type")+"\n");
out.close();
fstream.close();
2、修改 beanshell 代码
FileWriter fstream=new FileWriter ("D://test.csv",true);
BufferedWriter out=new BufferedWriter(fstream);
for(int num=1; num<=5; num++){
//拼接变量名称
type = "type"+"_"+num;
System.out.println(type);
//把拼接的名称赋值给 type_num
vars.put("type",type);
System.out.println(vars.get(type));
//vars.get()获取到变量名称,并和上面返回的 type_num_(2,3,4,5,6)名称一致,取到变量的值
out.write(vars.get(mipAccount)+"\n");
}
out.close();
fstream.close();
功能能实现,但是这个需要提前知道循环了多少次得到的数据才正确,不灵活
3、通过 forEach 控制器进行
- forEach控制器设置
名称:字面意思,ForEach Controller的名称
注释:字面意思
输入变量前缀:变量的前缀;如要使用的变量为name_1,则需要填name。
Start index for loop(exclusive):从X-1号的变量开始,X为第几个变量;如填0,实际从第一个开始。
End index for loop(inclusive):到X+1的变量结束,X为第几个变量;如填4,实际第4个不会被使用,只会到第3个。
输出变量名称:将要用来使用的变量名,不填则循环所有值
Add“_”before number?:用户定义的变量有没有下划线分隔编号,最好还是勾上比较方便标识;
- 在forEach 下添加 Beanshell Sampler ,写上代码
FileWriter fstream=new FileWriter ("D://test.csv",true);
BufferedWriter out=new BufferedWriter(fstream);
out.write(vars.get("newType")+"\n");
out.close();
fstream.close();
执行jmeter脚本,检查保存的文件数据,数据正确
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2020-11-30 Jenkins下载及安装