参数化:当使用JMeter进行测试时,测试数据的准备是一项重要的工作。若要求每次迭代的数据不一样时,则需进行参数化,然后从参数化的文件中来读取测试数据。
JMeter的四种参数化方式包括:
1.用户参数(User Parameters):适用于参数取值范围很小的时候使用
2.函数助手(Function Helper):可作为其他参数化方式的补充项,如:随机数生成的函数${__Random(,,)}
3.CSV Data Set Config/CSV数据配置文件:适用于参数取值范围较大的时候使用,该方法具有更大的灵活性
4.用户自定义变量(User Defined Variables):一般用于Test Plan中不需要随请求迭代的参数设置,如:Host、Port Number
示例:
登录接口需要输入两个参数:手机号(loginId)和密码(password),模拟2个用户来登录系统
一、用户参数(User Parameters)
1.添加方式:HTTP取样器-->Add-->Pre Processors-->User Parameters
2.设置参数项、参数值
3.配置HTTP取样器界面的请求参数
4.配置线程组
设置线程数=2,即2个虚拟用户数,对应User Parameters中设置的2个用户
![](https://img2020.cnblogs.com/blog/920207/202011/920207-20201110195023095-1618584837.png)
二、函数助手(Function Helper)
1.添加方式:tools-->函数助手对话框
打开函数助手,可以从下拉列表中选择一个函数,并为其参数设定值,不同函数要求的参数也不同;表格的左边一列是函数参数的简要描述,右边一列是供用户填充参数的值。
可点击【帮助】进入官网具体函数的使用或参考https://www.jianshu.com/p/c66b846e2ada
2.预先准备好要参数化的所有参数值
3.选择参数化所需的函数,配置函数(这里选择__CSVRead函数)
4.配置HTTP取样器的请求参数,拷贝函数字符串替换要参数化的值
设置线程数=2,即2个虚拟用户数,对应User Parameters中设置的2个用户
三、CSV Data Set Config
1.添加方式:右键-->添加-->配置元件-->cvs数据文件配置
Configure the CSV Data Source配置项&功能:
配置项 | 取值or选择项 |
---|---|
文件名(Filename) | 参数化文件的读取位置,即保存参数化数据的文件目录。可为绝对路径,也可为相对路径。在分布式测试中,还是利用相对路径比较方便,因为有的机器可能安装路径不一样,同时可避免脚本迁移时需要修改路径 |
文件编码(File Encoding) | 编码格式 |
变量名称(Variable Names) | 变量名称。这里定义的变量名称,后面就可以直接用来引用了。(多个变量名称以逗号隔开,例如username,passwd。参数化文件中同样有对应的两列数据。) |
忽略首行(Ignore first line) | 忽略第一行数据(类似LR中第一行数据是变量名称,如果你的配置文件中为了记忆第一行也是变量名,可以选择是忽略该行数据) |
分隔符(Delimiter) | Variable Names中的参数分隔符,默认为英文逗号 |
是否允许带引号?(Allow quoted data?) | 是否允许引用数据,默认false。选项为“true”时对全角字符的处理可能会出现乱码 |
遇到文件结束符再次循环?(Recycle on EOF?) | 是否循环读取参数文件内容;因为CSV Data Set Config一次读入一行,分割后存入若干变量中交给一个线程,如果线程数超过文本的记录行数,那么可以选择从头再次读入 |
遇到文件结束符再次循环?(Stop thread on EOF?) | 当Recycle on EOF为False时(读取文件到结尾),停止进程,当Recycle on EOF为True时,此项无意义 |
线程共享模式(Sharing mode) | 共享模式,即参数文件的作用域:All Threads;Current Thread Group;Current Thread |
2.预先准备好要参数化的所有参数值
3.配置HTTP取样器界面的请求参数
4.配置线程组
设置线程数=2,即2个虚拟用户数,对应User Parameters中设置的2个用户
5.添加查看结果树,运行后查看结果
四、用户自定义变量(User Defined Variables)
1.添加方式:右键线程组-->配置元件-->用户定义的变量(User Defined Variables)
2.配置HTTP取样器中的请求参数
3.添加查看结果树,运行后查看结果