一 函数助手
${__RandomString(11,123456789,)} 可以直接复制引用
二 CSV参数化
CSV数据文件配置用于从文件中读取行,可以是csv文件或者txt文件,并将它们拆分为变量。它非常适合处理大量变量,对于使用“随机”和唯一值的测试也很有作用。
默认情况下,文件只打开一次,每个线程将使用文件中的不同行。但是,行传递给线程的顺序取决于它们执行的顺序
CSV数据文件设置参数解析
- 名称:自己命名即可。
- 注释:自己命名即可,可以为空。
- 文件名:选择文件的路径,点击浏览选择文件的绝对路径即可。如果在linux服务器上,最好选择相对路径,把CSV文件和脚本放在同一个目录下。
- 文件编码:默认为ANSI(ASCII码的拓展),可以选择为UTF-8
- 变量名称:CSV文件中的数值存放在变量中,供后续引用。变量可以多个,用英文逗号隔开,变量分别读取CSV文件中的列。
- 忽略首行:如果CSV文件中设置了首行的字段,比如“用户名”等,这些字段不是要使用的数据,那么就可以选择忽略首行。
- 分隔符:默认是逗号,比如txt文件中,设置多个值,用英文逗号隔开。
- 是否允许带引号:默认False
- 遇到文件结束符再次循环?:默认Ture,代表继续从文件的第一行循环读取数据,False表示不再循环。
- 遇到文件结束符停止线程?:默认False,Ture表示停止线程。
- 线程共享模式:默认【所有现场】
实例 以不同账号登录xiaoqiangshop
新建一个TXT文档 写入不同的账号密码
打开CSV数据文件设置,引入刚建立文档 ,设置好变量名称
在脚本中通过 ${} 分别引用账号和密码
三 CSV随机参数化
在性能测试中,我们要实现这样一个场景,模拟不同的人购买不同的商品。我们前面讲的CSV参数化,是安装表格的顺序进行读取数据,如果是随机读取表格的数据,我们模拟的行为就会更真实一些。
需要用到的插件:Random CSV Data Set Config
步骤:
- 在JMeter中打开插件管理器
- 选择可用插件
- 搜索Random CSV
- 找到插件Random CSV Data Set Config 选中进行应用,然后重启JMeter
1、下载插件,下两个:
下载地址:https://jmeter-plugins.org/downloads/old/
下载界面如下:
还有一个插件:
下载一个jmeter的插件管理工具:http://jmeter-plugins.org/get/
把两个插件下载好之后,放在JMeter的安装目录lib/ext 下,然后重启JMeter。
2、搜索插件
选择可用插件,搜索random,选中Random CSV Data Set Config,右下角点击应用重启JMeter即可。
打开Random CSV Data Set Config元件:线程组>配置元件
配置元件中的组件,一般放在测试计划下
参数说明:
- Filename(文件名):文件的路径,直接选择文件的绝对路径就行,也可以写相对路径。
- 文件编码:读取文件的编码,默认选择UTF-8就行。
- 分隔符:默认逗号,在txt文件中,写两列的时候可以用逗号隔开。
- 变量名称:引用csv配置文件中的数据,指定变量名,意思是把csv的数据读出来,放在变量中,其他请求可以引用。
- 随机顺序:这个是这个插件的重点,选中则会随机读取csv中的数据,如果不选中则会顺序读取csv中的数据。
- 遇到文件结束符再次循环:勾选上循环完csv中的数据后,则会继续循环,一般都是要选中。
- 第一行是csv标题:如果csv文件中第一行是字段,那么勾选上则不会读取第一行的数据。
- 每个线程的独立列表:每个线程都通过他们自己去读取配置文件,当使用随机顺序(第5项),每个线程都将运行自己的随机序列,而不是所有线程都经过相同的变量顺序。
- 测试读取csv文件:在使用之前,可以先测试读取csv的值,看看是否正确。
四 , jmeter乱码解决方法
一、新增的时候出现乱码
方法一:
添加HTTP请求时在Content encoding后填入编码:utf-8
看一下结果:没有乱码了
方法二:
在请求中加一个BeanShell前置处理器,在script中加入:
prev.setDataEncoding("utf-8"); 目的是修改响应数据编码格式为utf-8
方法三
修改JMeter的配置文件
进入JMeter安装目录的bin目录下,找到jmeter.properties文件
找到sampleresult.default.encoding这个参数,此行默认是注释的。把注释去掉,把ISO-8859-1改成utf-8,保存,重启JMeter。
还有一种情况是响应出现乱码,响应出现乱码解决办法也是修改JMeter的配置文件,还有就是加一个BeanShell后置处理器,在script中加入脚本:prev.setDataEncoding("utf-8");
最新版本对于编码格式会好一些,因为习惯了用4.0版本,乱码的时候就直接改为5.2版本,响应就不会出现乱码了。
接口的响应格式为JSON的时候,在查看结果中选择JSON Path Tester模式,显示就没问题了。