本文共 819 字,大约阅读时间需要 2 分钟。
JMeter变量是线程级别的局部变量,仅在脚本中使用。以下是关于JMeter变量的详细解释:
1. JMeter变量的基本概念
- 线程水平:每个线程的变量值可能相同,也可能不同。即使有多个线程访问同一资源,它们各自维护的变量值是独立的。
- 局部性:变量仅在单个线程中存在。如果一个线程修改了变量,其它线程不会受到影响。
2. 定义变量的方法
- 用户定义变量(User-defined Variables, UDVs):所有的UDV在测试计划启动时就被执行,所有线程共享同一初始值。如果在运行时(例如正则表达式提取器)重新定义了一个与UDV同名的变量,该新值将覆盖原值。
- 用户参数(User Parameters):与UDV类似,但通常用于引用外部数据源(如CSV文件或数据库),也属于线程级别变量。
- 脚本变量(如BeanShell脚本):脚本内定义的变量也仅存在于单个线程中,其他线程无法访问。
- 函数:某些函数(如__emizorung__)可以返回变量值。
3. 变量引用方法
- 无论变量是如何定义的,引用方式都一样:使用
${变量名}
语法在测试计划中访问变量值。 - 在BeanShell脚本中使用变量时,需通过
vars
对象操作:vars.get(key)
获取值,vars.put(key, value)
设置值。
4. 变量的全局属性
- JMeter属性:全局属性可以在所有线程间传递信息,适用于跨线程通信。
- 用户参数:用户参数定义了线程级变量,可以引用外部文件中的数据(如CSV文件)。
- CSV Data Set Config:用于在CSV文件中读取数据的配置元件,其行为类似于用户参数。
5. 示例
Tick values: ${__csv=row.csv,Tick=1}
${RentalPrice}
在实际应用中,建议将UDVs放在测试计划的最早位置。将变量和测试逻辑结合使用,可以实现灵活、高效的测试自动化。
转载地址:http://peusz.baihongyu.com/