JMeter 是一个功能强大的负载测试工具,它提供了许多有用的内置变量来支持测试过程。其中最常用的变量是 vars 和 props。
vars 变量
vars 变量是线程本地变量,它们只能在同一线程组内的所有线程中使用。每个线程都有自己的一组 vars 变量。vars 变量可以通过如下方式设置和访问:
在非 beanshell 环境里面可以使用 ${varName}
语法访问变量的值。

在 beanshell 环境里面可以使用 vars.get("varName")
语法访问变量的值,vars.put("varName", "value")
语法设置变量的值。

在 JMeter 中,vars 变量通常用于在测试执行期间动态生成值,如从响应中提取数据并将其存储在变量中以供后续请求使用。
props 变量
props 变量是全局变量,它们可以在任何线程组中使用。所有线程共享同一组 props 变量。props 变量可以通过如下方式设置和访问:
在非 beanshell 环境里面可以使用${__P(propName)}
语法访问变量的值。

在 beanshell 环境里面可以使用 props.get("propName")
语法访问变量的值, props.put("propName", "value")
语法设置变量的值。

在 JMeter 中,props 变量通常用于在测试执行期间传递数据,如测试参数,即使在不同的线程组之间也可以使用。
试试比 JMeter 更好用的 API 工具:Apifox
Apifox 是一款更加智能化的 API 设计/开发/测试工具,相较于 JMeter 软件,Apifox 有以下优势:

自动化测试
Apifox 提供了自动化测试的功能,用户可以通过自动化测试来减少测试时间和人力成本。用户只需要设置测试计划,Apifox 就可以自动运行测试,并生成测试结果和报告。此外,Apifox 还支持测试套件,可以一次性运行多个测试用例,提高测试效率。

多环境支持
Apifox 支持多个测试环境,用户可以通过切换环境来测试不同的 API。用户只需要设置环境变量,Apifox 就可以自动切换 API 请求的 URL 和参数。此外,Apifox 还支持环境导入和导出,方便用户在不同的设备或团队之间共享测试环境。

协作和分享
Apifox 提供了协作和分享的功能,用户可以与团队成员或其他人分享测试结果和测试数据。用户还可以将测试结果和报告导出为 HTML 格式。此外,Apifox 还支持团队协作和权限管理,可以让团队成员共享 API 设计和测试资源。

在 Apifox 使用变量
在 Apifox 中,变量的类型有环境变量、全局变量、临时变量。
- 环境变量:是最常用的变量,同一个变量可以在不同的环境设置不同的值,变量值会跟随环境切换而改变。
- 全局变量:使用方法类环境变量类似,但全局变量不会跟随环境切换而改变。
- 临时变量:仅在单次运行接口用例或测试管理里的测试用例或测试套件过程中有效,不会持久化保存。
在请求参数中使用变量
所有变量都是通过 {{varName}}
的方式引用,当不同类型变量存在相同名称的变量时,系统会根据优先级决定使用哪个类型的变量。变量优先级:临时变量 > 测试数据变量 > 环境变量 > 全局变量。

在脚本中使用变量
使用 pm.environment.get("propName")
语法访问环境变量的值,pm.environment.set("propName", "value")
语法设置本地变量的值。
使用 pm.variables.get("propName")
语法访问环境变量的值,pm.variables.set("propName", "value")
语法设置本地变量的值。
使用 pm.globals.get("propName")
语法访问环境变量的值,pm.globals.set("propName", "value")
语法设置本地变量的值。

想要全面提升 API 开发与测试效率,就用 Apifox,立即免费注册使用。