【JMeter】参数化实现
前言
- 在使用
jmeter
工具时,无论做接口测试还是性能测试,还是要求每次迭代的数据不一样时,则需进行参数化,然后从参数化的变量中来读取测试数据。
参数化:是自动化测试脚本的一种常用技巧,可将脚本中的某些输入使用参数来代替,如登录时利用GET/POST请求方式传递参数的场景,在脚本运行时指定参数的取值范围和规则。
脚本在运行时,根据需要选取不同的参数值作为输入,该方式称为数据驱动测试(Data Driven Test),而参数的取值范围被称为数据池(Data Pool)。
- 测试数据的准备在测试中是一项重要的工作。若要求每次迭代的数据不一样时,则需进行参数化,然后从参数化的文件中来读取测试数据。
参数化的使用场景
- 多个请求都是同一个
ip
地址,若服务器地址更换了,则脚本需要更改每个请求的ip - 注册账号,不允许账号重复 ;想批量注册用户时
- 模拟多个用户登录,需要用到不同用户信息登录时
- 上一个请求的输出结果用于下一个请求的参数传入,例如登录获取到的
token
信息,用于提交账单请求的参数调用
- 在Jmeter中,通过
${变量名}
来获取参数值。常用到的参数方式有三种:用户自定义(固定)变量参数化、随机变量参数化、以及CSV Data Set Config
参数化
用户自定义的变量
- 创建用户定义的变量
- 测试计划(TestPlan) – > 添加 – > 配置元件 --> 用户定义的变量
- 添加变量名称、变量值
- 定义好ip变量好,在JMeter的任何一个地方用到ip地址,就可以使用
${ip}
进行取值,是不是很方便啦~
随机变量参数化(通过函数助手)
-
操作路径:控制面板 – > 选项 – > 函数助手 – > 选择一个功能 __Random String
-
这里是使用的
JMeter 5.1
版本,函数助手在Tools
里面,5.1以下版本则在控制面板的【选项】里面 -
选择随机化所需要的函数,配置参数如下图:
-
把生成的随机变量,填写在对应的自定义变量值里,如下图:
-
实现以18开头和9位随机数拼接成11位的变量值phoneNum(号码段存在)
CSV Data Set Config 参数化
-
操作路径:测试计划-- > 添加配置元件 – > CSV Data Set Config(CSV数据文件设置)
-
配置 CSV Data数据来源:
-
Filename
:参数化文件路径的读取路径 - File Encoding:编码格式,选择utf-8
-
Variable Names
:变量名称。这里定义的变量名称,后面就可以直接用来引用了。(多个变量名称以逗号隔开,例如username,passwd。参数化文件中同样有对应的两列数据。) - Ignore first line:忽略第一行数据(类似LR中第一行数据是变量名称,如果你的配置文件中为了记忆第一行也是变量名,可以选择是忽略该行数据)
- Delimiter Variable Names中的参数分隔符,默认为英文逗号
-
-
在HTTP请求取样器中
调用
定义好的变量名 -
查看数据库执行结果
- 可以看到,数据库里面新增5条数据,且
数据源
来自CSV Data文件。
注意:
- 有时会JMeter数据库会显示乱码,解决方法参考另外一篇博客
JMeter响应数据中文乱码的解决方法