*公众号推送规则更新*
*点亮星标不错过任何资讯*
从事软件测试的小伙伴都知道工具,当我们使用工具做接口测试和性能测试的时候,CSV这个配置元件就会经常使用到。但是这个元件有很多场景很多人并不是很清楚,并且有些特性如果不弄明白会影响整个脚本的使用。所以,我们今天就给大家来讲一下这个CSV配置元件。
前言
CSV使用场景
CSV数据文件参数化是的一个配置元件,当我们需要批量执行某个接口并需要构造真实数据的时候,可以从数据库里导出数据到CSV文件里,接口通过访问CSV文件批量进行操作。
CSV数据文件设置
CSV数据文件配置元件的界面如下图所示:
其中每个部分应该要如何配置以及原理是什么,我们分别来详细给大家做一些讲解:
1)文件名
需要读取的csv配置文件,这里可以写绝对路径,也可以配置相对路径:
两种路径的写法所以我们一般都建议文件名填写相对路径,更简洁也更方便以后做分布式测试脚本分发。
这个csv的文件是支持多种格式:txt、csv、json、xml ,主要是列和列之间是逗号的文本文件就是csv文件,那么就都支持。
2)文件编码
这个文件的编码由选择的文件自身编码来选择。
3)变量名称
自己定义变量名用来接收从csv文件里读取的数据,多个变量的时候用英文的逗号隔开,会依次去接收第一列,第二列...的数据;
4)忽略首行
5)分隔符
读取的文件的列与列的分隔符号,默认csv文件是英文逗号jmeter随机变量,所以默认的配置就是英文的逗号;
6)是否允许带引号
如下图所示:
注意:这个配置只能针对txt文本操作,csv文件不会生效。
7)遇到文件结束符再次循环吗?
8)遇到文件结束符停止线程吗?
False:继续运行,还会继续跑;这个是默认情况下的值。
具体的配置场景和运行效果如下:
当两个配置冲突了,就像编写代码一样,从上到下运行,后面的跟前面的冲突,后面的会失效。
9)线程共享模式:有三个选项,所有线程,当前线程组,当前线程,工作原理分别如下:
当前线程组:这个线程组的所有的线程共用1份csv数据。如果有多个线程组,内存中就有几分相同的数据加载。
当前线程:每个线程【用户】私有1份, 有多少个线程,在内存中就有多少份。运行中取值时都取自己的那1份,都是从头开始。
以上三种情况,最后一个【当前线程】选项占用内存最多。
csv元件使用的注意事项
自带的csv数据文件设置功能,多台机器做助攻机发起性能测试时会有问题:
因为助攻机的脚本和csv文件都是由主控机分发的jmeter随机变量,大家拿到的脚本和文件都是一样的;比如三台机器助攻机都是读取的第一行的数据发送的登录请求,那么登录的信息会导致其中2个登录失败,如果是注册接口也会因为数据不能重复而导致后面2个助攻机的接口请求会失败。
解决方法:
“
lemon ban
【免费领】
每|日|福|利
俗话说得好
他山之石,可以攻玉
多看多借鉴还是有帮助的