JMeter中的参数化(Parameterization)用于通过变量和循环控制器对取样器(例如HTTP请求)中的参数进行动态遍历,产生不同的测试数据。
使用参数化可以实现以下功能:
- 减少重复的测试元素(取样器)数量。使用循环控制器遍历变量来替代多个相似的取样器。
- 实现数据驱动测试,通过变量的值驱动测试流程。
- 模拟不同用户使用不同输入的场景。
- 提高脚本的可维护性,修改变量值就可以更改多个取样器的值。
实现参数化主要使用以下元素:
- 用户定义变量:用于定义需要参数化的变量及其值
- CSV数据集配置:用于从CSV文件中读取参数化数据
- 配置元件:用于替换取样器中的参数为变量
- 循环控制器:用于遍历用户定义变量和 CSV数据集中的值
- ForEach循环控制器:逐个遍历值
- While循环控制器:根据条件控制循环
一个简单的示例:
用户定义变量:
NAME: zhangsan,lisi,wangwu
AGE: 20,30,40
配置元件:
名称:username
替换值:${NAME}
配置元件:
名称:age
替换值:${AGE}
HTTP请求:
请求URL:http://xxx.org/get?username=${username}&age=${age}
ForEach循环控制器:
输入值:${NAME}
子样例名称:name
ForEach循环控制器:
输入值:${AGE}
子样例名称:age
运行测试计划,NAME和AGE变量会被ForEach循环控制器遍历,产生9个HTTP请求:
http://xxx.org/get?username=zhangsan&age=20
http://xxx.org/get?username=zhangsan&age=30
http://xxx.org/get?username=zhangsan&age=40
...
参数化允许我们通过JMeter使用变量和循环控制器轻松实现数据驱动测试和减少重复测试元素。