Baolu CSV Data Set Config
1.背景
大家在平常使用JMeter测试工具时,对CSV Data Set Config 配置元件肯定不会陌生。如果我们的压测场景涉及到数据库更新操作(如:转账接接口)则需要对参数化数据进行分块,可就犯难了。如果不进行数据分块那么数据库会出现大量锁等待,造成我们测试结果可信度大大降低。今天宝路就聊下JMeter如何优雅的做到数据分块。
2.初衷
前面说到数据分块,大家可能会优先想到传统商业压测工具LoadRunner,因为LR是比较完美的支持数据分块的。
看了今天的文章的主题,相信大家心中应该就有答案了。其实早在宝路刚转这个行不久时就已经开发了这个功能,只不过当时是在官方源码的基础改动,每当升级JMeter版后,还要把这些新增代码移植到新版上,甚是麻烦。。。。。。关于实现逻辑大家可以参考下我早期写的 CSV Data Set Config 拓展开发 这篇文章。
最近宝路把这个功能做成了插件,代码也进行了重构优化,插件下载详见“宝路测试手记”微信公众号,下面我们就来揭开它的神秘面纱。
3.实战
插件截图:

本插件是在JMeter源生的 CSV Data Set Config 进了拓展开发,新增参数说明:
|
参数 |
说明 |
| Allocate data for each thread | When it is true (default false), the parameterized file is partitioned by threads, and each thread is allocated with different block data |
| Automatically allocate block size | Only Allocate data for each thread set true |
| Set block size for each threads | Only Allocate data for each thread set true and automatically allocate block size set false |
重要的事情说三遍,插件支持中文释义、插件支持中文释义、插件支持中文释义。。。

实战验证--脚本结构图:

实战验证--测试结果(一):


从结果图可以看出,当采用自动分配数据块时,宝路设置线程组共启动5个线程,此时每个线程固定分2条数据。那么我们再把线程大小调整到10看看运行结果。

嗯!此时每个线程固定分配1条数据。
实战验证--测试结果(二):


从结果图可以看出,当采用手动指定线程分配数据块时,宝路设置线程组共启动2个线程,设置每个线程分配5条数据,此时第一个线程只会读取前5条数据,第二个线程仅会读取后5条数据。
如果保持线程组仍启动2个线程,设置每个线程分配6条数据,会是什么样的结果呢?

可以看到出现了<EOF>值,其实不难看出是因为数据不够分了。。。。宝路这边采用EOF标记来提示。
插件下载以及后续优化方向:
由于JMeter分布式压测试模式的原因,目前仍需手动将参数化文件copy到指定slave机目录,后续宝路考虑可能会加入同步salve机参数化文件的功能,或者单独开发一个同步文件插件。
实际使用中可能还有从指定行开始读取数据的场景,比如:某个参数化文件里面存放的是消耗型数据,在某次场景执行完毕后消耗了100行,那么后续再次执行场景时,应该从101行开始读取数据,这样就不用测试人员花大量时间去准备好多参数化文件。
关于Baolu CSV Data Set Config插件,大家如果有任何疑问或建议,欢迎给宝路留言。
Baolu CSV Data Set Config的更多相关文章
- JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置
众所周知,在进行接口测试的过程中,需要创建不同的场景(不同条件的输入,来验证不同的入参的返回结果).因而,在日常的自动化接口监控或商品监控等线上监控过程中,需要配置大量的入参来监控接口的返回是否正确. ...
- Jmeter—6 CSV Data Set Config 通过文件导入数据
线程组循环次数大于1的时候,请求里每次提交的数据都相同.有的系统限制了不能提交相同数据,我们通过 CSV Data Set Config 加载csv文件数据. 1 创建一个文本文件,输入参数值保存为. ...
- Jmeter组件1. CSV Data Set Config
位置:Test Plan | Add | Config Element | CSV Data Set Config 意义: 脚本参数化 节省CPU跟内存(可以准备好数据文件去代替动态生成数据,节约CP ...
- JMeter脚本参数化和断言设置( CSV Data Set Config )
用Badboy录制了Jmeter的脚本,用Jmeter打开后形成了原始的脚本.但是在实际应用中,为了增强脚本的多样性,就要使脚本参数化.这里我以登录为例,参数化用户账号与用户密码. 图1 :原始脚本 ...
- jmeter参数化之CSV Data Set Config
在jmeter中,可以用CSV Data Set Config实现参数化. 1.准备参数化数据
- 转:Jmeter之使用CSV Data Set Config实现参数化登录
在使用Jemeter做压力测试的时候,往往需要参数化用户名,密码以到达到多用户使用不同的用户名密码登录的目的.这个时候我们就可以使用CSV Data Set Config实现参数化登录: 首先通过Te ...
- 转:CSV Data Set Config 中文乱码问题
从csv读取中文一直乱码. CSV Data Set Config的File encoding为GB2312,对应参数化文件编码也为GB2312,但读取出变量值一直为乱码,后发现是Allow quot ...
- 配置 CSV Data Set Config 来参数化新增客户信息操作
1.首先根据新增客户信息的http请求,来确定需要参数化的变量,选取符合测试需求且经常变化或未来会变化的变量为需要参数化的变量,如本文中的客户端名称(sys_name).描述(description) ...
- jmeter笔记(5)--参数化--CSV Data Set Config
为了保证脚本的可移植性,我们需要把数据提取出来作为变量,变量可以分为两类: 公用变量:IP.端口.附件路径.CSV文件路径等: 测试变量:用户名.密码.用户ID.商品ID等 使用CSV Data Se ...
随机推荐
- Python反转链表
# -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None ...
- Linux实战(7):centos7安装xrdp
系统环境:最小化安装,无安装桌面化 操作 yum更新 yum -y update 安装依赖. tigervnc-server.xrdp .GNOME Desktop yum -y install ep ...
- Docker容器监控(十)
docker自带的监控命令 docker自带了三个监控命令即ps, top, stats ps docker ps 可以帮助我们很快的了解当前正在运行的容器 -a:会显示已经停掉的容器 [root ...
- 4.Strom-可靠性保证
- 金蝶k/3 cloud 生产用料清单下推生成调拨单二开记录
系统默认的生产用料清单下推生成调拨单功能,是根据调拨选单数量来的,有库存和没有库存的都混在一起,导致业务人员审核调拨单的时候需要删除没有库存的分录行,严重影响工作效率. 现通过二开程序,根据生产用料清 ...
- 关于kafka中consumer subscribe与asssign的理解
kafka中consumer subscribe与asssign的理解: https://blog.csdn.net/weixin_34332905/article/details/91392030
- 基础篇:详解JAVA对象实例化过程
目录 1 对象的实例化过程 2 类的加载过程 3 触发类加载的条件 4 对象的实例化过程 5 类加载器和双亲委派规则,如何打破双亲委派规则 欢迎指正文中错误 关注公众号,一起交流 参考文章 1 对象的 ...
- Dubbo 成熟度策略.
url: http://dubbo.apache.org/zh-cn/docs/user/maturity.html Dubbo成熟度策略 Feature Maturity Strength Prob ...
- log4net 纯代码配置
当需要输出的日志很多的时候,每次修改config都很麻烦,于是想可不可以动态生成. 网上找的案例都是获取单个appender/logger的,此处例子是任意logger,appender相同 log4 ...
- MySQL 5.7 InnoDB锁
简介 参考https://dev.mysql.com/doc/refman/5.7/en/innodb-locking.html#innodb-gap-locks. InnoDB引擎实现了标准的行级别 ...