在用到jmeter工具时,无论做接口测试还是性能测试,参数化都是一个必须掌握且非常有用的知识点。
在jmeter中,通过${变量名}来获取参数值。
接下来介绍几种jmeter的参数化方式:
一、用户定义的变量
当在线程组下新增用户定义的变量时,定义的变量适用于整个线程组下面的请求,当在某个请求下新增用户定义的变量时,定义的变量适用于某个请求。
用户自定义变量中的定义的所有参数的值在测试计划的执行过程中不能发生取值的改变,因此一般仅将测试计划中不需要随迭代发生改变的参数(只取一次值的参数)设置在此处。
1.添加用户定义的变量元件
右击 线程组->添加->配置元件->用户定义的变量
2.通过添加按钮自定义变量。
3.在http请求参数中,引用变量。
注意:引用的参数名跟用户定义变量设置的名称必须保持一致。
4.点击运行,察看结果树。表示接口请求成功,说明参数化生效。
二、用户参数
1.添加用户参数元件
右击 线程组->添加->前置处理器->用户参数
与用户自定义变量不同的是,用户参数列表中的参数取值可以在测试计划执行过程中发生变化。
2.配置用户参数
在添加的变量列中输入你需要添加的变量名称,用户_1是输入你变量名称对应的变量值,如果有多个参数,可以再次点击添加变量,输入你的其他变量名称与变量值,如果想一个变量对应多个变量值,就点击添加用户。
3.在http请求参数中,引用变量。
注意:引用的参数名跟用户参数设置的名称必须保持一致。
4.在线程组中设置线程数
参数化几次就要设置几个线程,执行的时候,是按顺序执行,下面的请求也会跟着请求。
用户参数和函数助手一样,都是由不同的用户来决定读取的内容,所以在设置线程数时应按照用户数量来定。
由于我们用户参数中有3个参数值,所以我们配置线程数是3。
4.点击运行,察看结果树。3个请求的用户名都不一样,说明参数化生效。
三、CSV数据文件设置
通过CSV数据文件设置元件来做参数化是在工作中最常用的一种参数化方式,使用文件好处是可以事先自定义测试数据,利于数据管理。
1.创建参数化测试数据。
新建一个TXT文件或者CSV文件。例如:在txt文件中,编写你的参数化数据,值之间以逗号进行分割。
2.添加CSV数据文件设置元件
"CSV 数据文件” 是一次读入一行,分割后存入若干变量中交给一个线程。
右击 线程组->添加->配置元件->CSV 数据文件
3.CSV数据文件设置的配置
4.在http请求参数中,引用变量。
注意:引用的参数名跟CSV数据文件设置的变量名称必须保持一致。
5.在线程组中设置线程数
我们参数文件中只有3个参数,我们设置了5个线程数。
6. 点击运行,察看结果树。前3个请求的用户名都不一样,从第4个请求开始,又是请求的第一个参数,说明参数化生效。
三、函数助手
用函数助手做参数化一般是用于随机数、当前时间、UUID等没有明确数据的参数。
比如:在增加来文数据接口中,有一个时间的参数,这个参数是实时获取当前的时间的。如果不做参数化的话,请求后,时间一直不变。导致数据不真实。
这时,我们就可以通过函数助手来获取当前时间来做参数化。
1.打开函数助手
点击快捷键或者在Tools->函数助手对话框->或者快捷键Ctrl+Shift+F1
2.生成参数名称
选择__time函数,在函数参数的值中输入yyyy-MM-dd hh:mm:ss,点击【生成】按钮后,就会生成参数名称,下方会有当前生成的参数值。
- 年:yyyy
- 月:MM
- 日:dd
- 时:hh
- 分:mm
- 秒:ss
3.复制函数助手中的参数名称,在http请求参数中,引用变量。
4. 点击运行,察看结果树。请求成功,说明参数化生效。