jmeter 性能测试用 csv,这个坑有些扯蛋

⏩很多人在使用 jmeter 做接口测试、自动化测试和性能测试时,都喜欢用 CSV 数据文件设置功能,来读取准备好的测试数据。虽然这种方法并不是最优方案,在我们的性能测试课程中,讲解了更优的方案,但是,没有上过我们的课的测试人员,还是很普遍的使用 CSV 方式。

今天,就来给大家讲一个用 CSV 准备测试数据的一个巨坑和解决办法。

jmeter 做测试,要想读取准备好的测试数据文件,如果你只想到 CSV 这一种方法,那就用‘CSV Data Set Config’这个元件,千万不要去用 csvRead 函数,用这个函数,你被坑死了,请别说我没提醒你。

但是,使用‘CSV Data Set Config’这个元件,每次只能从第 1 行数据开始读取,或忽略首行从第 2 行开始,没有办法从不定行开始。在这里插入图片描述

每次从第 1 行开始取值,在日常低并发的性能测试中,是没有任何问题的,因为此时你只需要运行一个 jmeter 就可以, 但是,如果你想做高并发的性能测试,需要有多个 jmeter 同时运行,构成分布式来向服务器发起请求,这时候就有问题了。

因为,采用分布式,在多台机器上同时运行 jmeter,每台机器都会从第 1 行开始读取你准备的测试文件,那么,就会出现同时多个线程使用同一个测试数据向服务器发起请求,这很可能导致你们的被测试服务出现各种异常。

⏩你是不是曾经出现使用分布式进行性能测试,出现很多 4xx 系列错误,而单机执行性能测试却没有;你是不是曾经出现,分布式时错误率升高,而单机时,同并发数,错误率要低很多;你是不是曾经出现,分布式请求,服务端日志,有大量锁冲突?

这些问题,如果你脚本中使用了‘CSV Data Set Config’,那么这些错误,很可能就是因为这个元件每次读数据只能从第 1 行开始读取的原因造成的。

这个坑,我曾经也遇到了,而且一度让我痛苦了几天,不过,后来我找到 4 种解决办法,今天,我就来给大家讲一种技术难度最低的方法。

☑️打开 jmeter 的插件管理,在 ‘available plugins’中搜索‘CSV’,勾选一个叫 ‘Random CSV Data Set’的插件,点击右下角的‘Apply
Changes and Restart JMeter’下载安装这个插件。待下载成功自动重启之后,在 jmeter 的配置元件中,我们将找到‘bzm - Random CSV Data Set Config’元件。
在这里插入图片描述

你可以点击**下面的‘Test CSV Reading’来看下数据的顺序,你会发现,每次取的数据顺序都是不一样的。**这样,就很好解决了分布式时取数相同的问题了。方法非常简单。

⏩接下来,我们来对比看下这个元件的性能。

首先添加 ‘CSV Data Set Config’元件,读取一份大于 10000 行的数据文件,定义一个变量接收,然后,用一个调试取样器,应用这个变量, 设在 1000 的并发用户,持续运行 120s,保存脚本,采用 CLI 模式运行,查看运行时资源使用情况。在这里插入图片描述
在这里插入图片描述

从监控到数据看,1000 的并发,120 秒中内,总共执行了 59830295 次请求,平均每秒 498141.6 次/s,我本机 CPU 使用率上升到约 48.3%,内存使用率约为 26.8%。

⏩现在,把元件换成 ‘bzm - Random CSV Data Set Config’,其他都不变了。采用 CLI 模式来运行,查看监控数据。在这里插入图片描述
在这里插入图片描述

从监控到数据看,1000 的并发,120 秒中内,总共执行了 20860718 次请求,平均每秒 172912.8 次/s,我本机 CPU 使用率上升到约 66.5%,内存使用率约为 26.7%。

☑️从两个元件的测试结果来看,官方的 CSV Data Set Config 性能要优于 bzm - Random CSV Data Set Config,实际工作中,你可以根据你的实际情况来选择。


             【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通


二、接口自动化项目实战 

三、Web自动化项目实战


四、App自动化项目实战 

五、一线大厂简历


六、测试开发DevOps体系 

七、常用自动化测试工具


八、JMeter性能测试 

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

 【软件测试技术交流(免费领取全套软件测试资料)】:320231853(备注C)icon-default.png?t=N5K3http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=65pe32vgWJ8F8r10MfsbRIWr5Fp2uHpG&authKey=P4vUkQEwfIqR3p%2BziCixdFYZU3Gy4OBfLRdJDBMFGl278Rh%2BaS4ZVkL%2BZxWggxKI&noverify=0&group_code=320231853

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值