在请求过程中,有时我们需要在请求中设置一些变量来测试不同的场景。
提示:在调试请求过程中,无关的请求可以暂时禁用掉,选择某个暂时不用的请求,右键--禁用
Jmeter支持以下类型变量:所有类型的变量在引用时的格式均为${变量名}
用户自定义变量
函数生成变量
BeanShell变量
数据文件变量
用户自定义变量
设置步骤:选中请求——添加——前置处理器——用户参数设置变量名称为user,值为 hancel
在请求时引用变量如下所示:变量引用格式为:${user}
函数生成变量
Jmeter有许多内置的函数,可以生成随机数。创建步骤:点击菜单栏选项——函数助手对话框——下拉选择
__Random()函数函数配置如下:
BeanShell变量
什么是BeanShell?
BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;
BeanShell是一种松散类型的脚本语言(这点和JS类似);
BeanShell是用Java写成的,一个小型的、免费的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简。
BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。
Jmeter有哪儿些Bean shell?
定时器:BeanShellTimer
前置处理器:BeanShellPreProcessor
采样器:BeanShellSampler
后置处理器:BeanShellPostProcessor
断言:BeanShell断言
监听器:BeanShellListener
CSV数据文件变量
CSV数据文件变量是指从外部csv文件读取数据出来作为变量。
设置步骤:选择请求——添加——配置元件——CSV数据文件设置
创建csv文件(最好不用用记事本创建,推荐用Nodepad++)文件编码为UTF-8文件内容如下:
user_data.csv
name1,pass1
CSV数据文件设置如下:
在Post请求中引用变量数据如下:
运行之后在查看结果树中请求选项栏可以看到获取的变量数据。
CSV参数化
针对之前的POST接口进行如下参数遍历测试:
接口如下:
/post
发送参数:user_data.csv
在之前的csv数据文件设置需要需改配置如下:表示把所有数据读取一遍,且不重复。
Filename: 指保存信息的文件目录,可以相对或者绝对路径。否则会在jmeter日志文件(jmeter.log目录位置D:\Program Files\apache-jmeter-2.13\bin)中提示:系统找不到指定文件,运行脚本后,登录失败。
File encoding: 保持默认。默认为ANSI
Variable Names: 给csv文件中各列起个名字(有多列时,用英文逗号隔开列名)便于后面引用
Delimiter:与 .csv文件的分隔符保持一致。如文件中使用的是逗号分隔,则填写逗号;如使用的是TAB,则填写\t;
Allow quoted data? :是否允许引用数据,是否需要"123" 双引号内的数据
Recycle on EOF?:到了文件尾是否循环,True—继续从文件第一行开始读取,False—不再循环
Stop thread on EOF? :到了文件尾是否停止线程,True—停止,False—不停止,注:当Recycle on EOF设置为True时,此项设置无效。
Sharing mode:共享模式,All threads –所有线程,Current thread group—当前线程组,Current thread—当前线程。
接口请求名称格式更改为:post请求_参数化${user},方便我们后续查看数据遍历情况。
最后修改线程组的线程数量,因为数据中有4组数据,所以设置为4.
运行查看结果如下: