JMeter的提取值存入csv或excel中,BeanShell PostProcessor后置处理器可满足

近期做了不少压测相关的项目,积累了些许经验,想着分享下,希望对大家有所启发。

实际用户场景:用户登录小游戏,可进行各种操作,例如查看排行榜,玩游戏,进行留言等,现在需要对三个接口查看排行榜/玩游戏/留言进行压测,有两种压测方案:

方案一:将登录接口和这三个接口放在一个线程组,也就是每个用户登录后,做三个操作后退出

方案二:将所有用户登录后不退出,随机抽取用户做这三个操作

显然,方案二更符合实际场景,那么问题来了,方案二用JMeter怎么写这个压测脚本呢?思路就是先在一个线程组里,单独保存为login.jmx文件,调用登录接口。

例如500个用户登录,将接口返回的500个token值提取出来,存入csv文件中,命名为tokens.csv,然后再开一个线程组,单独保存为game.jmx文件,调用排行榜/玩游戏/留言接口,这三个接口的token值可以在tokens.csv中获取,来模拟不同用户登录的场景。

每次测试前,先运行登录接口的脚本获取token值,再运行排行榜/玩游戏/留言板等接口脚本,模拟不同用户进行操作。

下面主要介绍下调用登录接口,将返回的token值写入toekns.csv文件中的过程:

1、主要用到了正则表达式提取器和BeanShell PostProcessor后置处理器

正则表达式提取器,用来提取接口返回的token值,返回的接口信息:

2、将提取的token值存入csv文件中,需要用到BeanShell PostProcessor后置处理器,脚本如下:

代码以及注释:

FileWriter fstream = new FileWriter("/root/apache-jmeter-4.0/bin/tokens.csv",true);
//这里结尾的true表示续写,即数据每次写入都在最末行续上;默认值为false:每次跑这个脚本都会覆盖原有内容再写入
//路径可以换成windows机器的本地路径例如:D:\\dlink\\tokens.csv,本次是远程启动,直接写在远程服务器上了
BufferedWriter out = new BufferedWriter(fstream);
out.write(vars.get("token")+","+"\n");
//将提取出来的token写入,注意加上\n换行
out.close();
fstream.close();

注意:每次运行之前,需要在本地或者远程启动服务器删除tokens.csv文件,否则文件会一直覆盖,保存原来过期的token值,或者每次执行脚本之前,将保存的文件tokens.csv重命名。

最后:下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

图片

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值