在聊CSV DataSet Config配置元件前,先来讨论下为何要参数化?
比如在做性能测试过程中, 一般我们需要模拟多个用户进行操作, 为了满足实际场景, 模拟真实的用户行为, 我们需要做到模拟的用户帐号或其它信息都是不同的, 这时我们就需要用到参数化。 Jmeter中, 配置元件可以解决此问题。
前言
Jmeter配置元件可以用来进行参数化、 初始化默认值和变量、 存储服务器的响应信息以及配置链接数据库等。 JMeter参数化一般使用配置元件中的CSV DataSet Config或者JDBC ConnectionConfiguration来进行参数化。今天,先来使用CSV DataSet Config进行参数化。
CSV Data Set Config元件:
该元件可以用来读取csv或dat文件的数据,然后通过设置把读取到的数据关联到Jmeter中的变量保存,csv文件可以使用execl表格工具去进行编辑。分两种文件来讲解:txt文件和csv文件。
基础配置
界面字段说明:
名称、注释与之前元件一样可以随意设置。
Filename:指保存信息的文件目录,可以相对或者绝对路径,相对路径从Jmeter的启动目录(***/bin)路径。
File Encoding:文件编码,默认为ANSI,建议设置为utf-8,防止遇见乱码情况。
Variable Names:参数名称,每个名称中间用分隔符分割,分隔符使用下面的“Delimitet”中定义的,默认用逗号隔开,与参数文件的参数对应。如果设置的参数名称多于参数文件中的参数,多余的参数取不到值;反之参数文件中的参数将没有参数对应。
Delimitet:定义分隔符,用于分隔文件中的参数,及上述Variable Names中定义的参数名称。
Allow Quoated data?:是否允许引用数据,设置为True ,设置文件中的参数值都必须用引号引起来,False则不需要
Recycle on EOF ?:遇到文件结束符时,是否从头开始循环读入,设置为True,则从头开始继续循环
Stop Thread on EOF ?:当Recycle on EOF 设置为False并且Stop Thread on EOF为True,则读完csv文件中的记录后, 停止运行
Sharing Mode:参数文件共享模式,有三个设置,说明如下:
All threads:参数文件对所有线程共享,包含同一测试计划中的不同线程组。
Current thread group:只对当前线程组中的线程共享。
Current thread:仅当前线程获取。
界面如下图所示:
配置元件添加路径如下所示:
参数化
我们已经基本了解了该配置元件,那就来实践一番。
参数化一:csv文件
如何配置csv文件?
新建一个xls文件,再另存为csv文件即可。
这个很简单,我们主要是来看如何引用csv文件,而达到参数化的效果。
①配置界面
我们先来看配置界面,如下所示:
需要注意的是,file encoding文件编码填写的是GB2312,不是utf-8,需要格外注意,不然就会出现乱码的现象,如下所示:
②准备csv文件
文件内容填写如下:
③引入参数化
我们在配置界面填写的变量名为keyword,所以引入到接口中,也用该变量名,如下所示:
④查看参数化结果
运行脚本,查看结果,如下所示:
接口每次请求,关键字都是不同的,就达到了参数化的效果。
参数化二:txt文件
我们了解csv参数化之后,对于txt文件参数化,都是类似配置。我们新建一个txt文本文件,输入内容并保存即可。
①配置界面
配置界面如下:
②注意点
file encoding文件编码填写的是utf-8,不是GB2312。需要格外注意的是,文本文件保存时,默认为ANSI格式文件,即可界面配置为utf-8,但还是会出现乱码的现象,如下所示:
配置为utf-8,还是会乱码,解决办法为:将txt文件另存为重新保存,选择文件格式为utf-8保存即可。
③准备txt文件
内容输入如下图所示:
④引入参数化
我们在配置界面填写的变量名为keyword,所以引入到接口中,也用该变量名,如下所示:
⑤查看参数化结果
运行脚本,查看结果,如下所示:
总结
无论是用csv文件还是txt文件进行参数化,配置方式都类似。需要注意的就是,文件编码的格式问题,配置错了,就会导致乱码的情况。配置项中,如果参数化文件第一行填写了参数名称,配置的时候,则需要忽略第一行。