JMeter实现参数化的四种方法
用户自定义变量、用户参数、CSV数据文件设置、函数助手
JMeter参数化在脚本中为了模拟真实的场景经常需要用到不同的用户登录、输入不同的数据等等,
参数化就是设定一个类似于列表的变量,把许多的同一关系的数值存到同一变量内,通过设置不同的方
法来取值,以此来达到模拟真实用户的目的
一、用户自定义变量
适用于不需要进行迭代变换的数据的参数
1)添加-->配置元件-->用户自定义变量
2) 在用户自定义的变量中添加变量名称、变量值、描述
3)添加完成变量后,在对应的http请求中使用该参数,格式为 ${变量名} ,注意:变量名用户自定义参数变量名保持一致
二、用户参数
适用于数据量少,每次迭代时需要不同的数据
1)添加-->前置处理器-->用户参数
2)用户参数中,添加变量名称和变量值;一个变量可以设置多个用户;如果需要每次迭代都传入不同的变量值,可以勾上“每次迭代更新一次”
3)变量添加完成后,在对应的http请求中使用该参数,格式为${变量名}
三、csv数据文件设置
这种参数化方式取值范围大,灵活性强,适用于大量测试数据时的使用。
1)添加-->配置元件-->csv数据文件设置
2)将参数写在文件中,不同的参数之间使用英文逗号隔开,一行或者一列为一组值
注意:csv配置文件,最好用txt文件格式,csv格式文件还带有格式,不太好编辑
3)在csv数据文件设置,选择文件名和文件编码,输入变量名称
小技巧:在apache-jmeter-5.5文件夹下新建work文件夹把脚本和case1.txt文件放在一个目录下,只填相对路径 case1.txt即可,服务器上填绝对路径找不到文件。
注意:放在一个目录下报错找不到文件时,需要重新启动JMeter,因为脚本文件已经加载过了。
4)添加完成变量后,在对应的http请求中使用该参数,格式为${变量名}
5)线程组-->线程数或者循环次数和csv数据配置文件中数据条数相对应,不设置的话只会执行一条数据
四、函数助手
1、使用函数助手生成参数username、password
1)password:函数助手-->选择Random-->输入最大、最小值-->生成-->复制函数
2)username:函数助手-->选择UUID-->生成-->复制函数
2、把生成的函数,粘贴到请求体中
3、根据实际执行次数,线程组-->设置线程数或者循环次数,不设置的话只会执行一条数据
高阶:参数化与TPS有关系的,生成千万(1000X10000)级别TPS可以用函数助手拼接方式 ${__time(,)}${__Random(1000,9999,)} 如果担心random函数重复,可以用count函数。
String unique = "${__time(,)}" + "${__Random(1000,9999,)}";
vars.put("unique",unique); 设置JMeter变量
log.info("unique:" + unique);
五、脚本错误排查
1、点击运行后,脚本闪了一下并未运行,如何排查错误?
点击右上角三角感叹号,查看报错。