终于有人把 Jmeter 工具的 CSV 参数化讲清楚啦!

2090 篇文章 51 订阅
819 篇文章 1 订阅

从事软件测试的小伙伴都知道Jmeter工具,当我们使用Jmeter工具做接口测试和性能测试的时候,CSV这个配置元件就会经常使用到。但是这个元件有很多场景很多人并不是很清楚,并且有些特性如果不弄明白会影响整个脚本的使用。所以,我们今天就给大家来讲一下这个CSV配置元件。

CSV使用场景

CSV数据文件参数化是Jmeter的一个配置元件,当我们需要批量执行某个接口并需要构造真实数据的时候,可以从数据库里导出数据到CSV文件里,接口通过访问CSV文件批量进行操作。

CSV数据文件设置

CSV数据文件配置元件的界面如下图所示:

其中每个部分应该要如何配置以及原理是什么,我们分别来详细给大家做一些讲解:

1)文件名

需要读取的csv配置文件,这里可以写绝对路径,也可以配置相对路径:

  • 绝对路径:点击浏览直接选择本地电脑上的文件,这样就会显示绝对路径;

  • 相对路径:相对的起始点是jmx脚本的位置 | 或者jmeter的bin文件目录,如果csv的文件直接在这两个目录,可以直接写文件名,不需要带前面的路径也可以找到。

两种路径的写法所以我们一般都建议文件名填写相对路径,更简洁也更方便以后做分布式测试脚本分发。

这个csv的文件是支持多种格式:txt、csv、json、xml ,主要是列和列之间是逗号的文本文件就是csv文件,那么就都支持。

2)文件编码

这个文件的编码由选择的文件自身编码来选择。

  • 如果用的是csv后缀的文件,字符集编码不一定是utf8。所以使用csv文件容易产生乱码现象。所以我们一般建议文件选择用txt后缀文件;

3)变量名称

自己定义变量名用来接收从csv文件里读取的数据,多个变量的时候用英文的逗号隔开,会依次去接收第一列,第二列...的数据;

  • 如果第一个变量接受第一列,第二个变量接受第三列,中间写逗号+ 空格 |空来实现,如 name, ,pid

  • 这个变量名就可以被后续的接口直接调用 ${name} ,从而获取csv文件里的数据。

4)忽略首行
  • True 不要第1行,读取的时候不会读取第一个行数据;当csv第一行是表头的时候,会选择True;

  • False 要第1行 ,当csv文件没有表头的时候选择False。

5)分隔符

读取的文件的列与列的分隔符号,默认csv文件是英文逗号,所以默认的配置就是英文的逗号;

6)是否允许带引号
  • False:不允许带引号, 如果csv数据里有引号就会当做数据的整体组成部分:如 “1344555555”

  • True:允许带引号 , 如果数据有引号就会自动去掉引号。

如下图所示:

注意:这个配置只能针对txt文本操作,csv文件不会生效。

7)遇到文件结束符再次循环吗?
  • True: 继续循环取文件中值。当文件内容从头到尾,全部都取了1次值之后,再从头开始取值。这个是默认情况的值。

  • False: 不再循环取值,如果还要用值,就是一个空值 , 不会停止运行;假设文件只有10行,但是,你要循环取100个值,那么第11个值开始到最后,值都是 。

8)遇到文件结束符停止线程吗?
  • 假设文件只有10行,但是你本来想运行100次,jmeter就会只运行10次就停止了

  • True:停止线程,jmeter就会停止运行。

  • False:继续运行,jmeter还会继续跑;这个是默认情况下的值。

具体的配置场景和运行效果如下:

当两个配置冲突了,就像编写代码一样,从上到下运行,后面的跟前面的冲突,后面的会失效。

9)线程共享模式:有三个选项,所有线程,当前线程组,当前线程,工作原理分别如下:
  • 所有的线程在使用这个文件的时候, 排队依次使用文件中的数据:第一个线程使用第一行,依次排列取值。

  • 注意:当2个线程组共享这个CSV文件,csv放测试计划下给多个线程组共享才,否则不能跨线程组使用。

  • 单独线程组里单独读取自己内存的数据,不会混用。每个线程组都从头开始取。

  • 如果设置循环,那么单个线程就会取第二行值。

  • 所有线程:所有线程共享这个csv文件数据,不管jmeter有多个线程组,总共有多少个线程,所有的线程都共用1份文件

  • 当前线程组:这个线程组的所有的线程共用1份csv数据。如果有多个线程组,内存中就有几分相同的数据加载。

  • 当前线程:每个线程【用户】私有1份, 有多少个线程,在内存中就有多少份。运行中取值时都取自己的那1份,都是从头开始。

以上三种情况,最后一个【当前线程】选项占用内存最多。

csv元件使用的注意事项

Jmeter自带的csv数据文件设置功能, 多台机器做助攻机发起性能测试时会有问题:

因为助攻机的脚本和csv文件都是由主控机分发的,大家拿到的脚本和文件都是一样的;比如三台机器助攻机都是读取的第一行的数据发送的登录请求,那么登录的信息会导致其中2个登录失败,如果是注册接口也会因为数据不能重复而导致后面2个助攻机的接口请求会失败。

解决方法:

  • 1、不同助攻机读取的文件名相同,但是内容不同,就是让助攻机的文件内容做修改和差异化,这个比较多使用;

  • 2、让csv文件读取行随机,不要统一从第一行开始读取,这样数据重复的概率小很多。

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

软件测试面试文档

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

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值