在 JMeter 中,参数化 是指将测试中的一些固定值(如 URL 地址、用户名、密码、请求参数等)替换为动态的值,通常是从外部数据源(如文件、数据库等)中获取。参数化能够模拟更真实的用户行为,避免固定数据对测试结果的影响,是性能测试中常见的需求。
JMeter 参数化的常用方法
以下是几种常见的参数化方法:
1. 使用 CSV 文件作为数据源
-
作用:通过 CSV 文件动态提供参数化数据,适用于读取一系列数据并用作请求的参数。
-
步骤:
-
准备 CSV 文件:将需要参数化的数据存储在 CSV 文件中。
-
添加 CSV Data Set Config:
- 在测试计划中添加 CSV Data Set Config 元素。(线程组->配置元件->CSV Data Set Config)
- 配置 CSV 文件路径、文件编码、读取方式等。
- 定义列名(可以作为变量名),这些变量会在请求中被引用。
- 修改线程组循环参数,对应csv文件行数
-
-
示例:
假设有一个 CSV 文件citys.csv
,内容如下:
配置 CSV Data Set Config 元素:
在HTTP请求中引用:
配置线程组中循环次数:
结果:
2. 使用 JMeter 用户自定义变量 (User Defined Variables)
-
作用:通过 User Defined Variables 元素设置变量,并在测试中引用这些变量。
-
步骤:
- 在线程组中添加用户定义的变量。(线程组->配置元件->用户定义的变量)
- 在 用户自定义变量 中设置变量名和变量值。
- 在请求中通过
${变量名}
引用这些变量。
-
示例:
假设设置以下变量:
在请求中使用
${变量名}
引用
结果:
- 优点:适用于固定的一组变量,如接口的基础 URL、不同的环境配置等。
3. 使用用户参数
-
作用:使用用户参数进行参数化。(线程组->前置处理器->用户参数)
-
步骤:
- 在线程组中添加用户参数。
- 在 用户参数 中设置变量名和变量值。
- 在请求中通过
${变量名}
引用这些变量。
-
示例:
假设设置以下变量:
在请求参数中使用${变量名}
引用
结果:
4. 使用 JMeter 函数进行动态参数化
-
作用:使用 JMeter 函数生成动态数据(如时间戳、随机数等)进行参数化。
-
步骤:使用 JMeter 提供的函数助手,选取要使用的函数(工具->函数助手)。
-
常见函数:
- __Random:生成随机数。
- 示例:
${__Random(1,1000)}
- 示例:
- __time:生成当前时间戳。
- 示例:
${__time(yyyy-MM-dd_HH-mm-ss)}
- 示例:
- __UUID:生成唯一标识符(UUID)。
- 示例:
${__UUID()}
- 示例:
- __Random:生成随机数。
-
示例:
随机生成1到1000内的一个数字,使用百度进行搜索
HTTP请求设置:
结果: