参考
Jmeter 有多种变量类型,每种变量有其各自的作用域。有时候不小心就会使它们之间相互冲突或者覆盖,本文梳理各种类型变量的生成方法、使用特点、作用范围。
Jmeter 中的变量有以下几种:
- User Defined Variables
- User Parameters
- 属性 Properties
- 运行中创建的变量
User Defined Variables
User Defined Variables 是一种 Config Element,简称 UDV,用于在测试开始时,设定静态值,添加方法如下:
Add > Config Element > User Defined Variables
UDV允许用户定义一组初始变量,在元件中定义的UDV和在 Test Plan 中定义的UDV一样。
初始化
测试计划中的所有UDV元素——无论它们在哪里——都在一开始就被处理。
所以不能在UDV中引用在测试运行时定义的变量。例如,在UDV中引用了在运行时定义的 Property,就会导致UDV赋值为空。
处理顺序:Jmeter 按照UDV在Test Plan中出现的顺序(从上到下)进行处理。
作用域
UDV 对 Test Plan 中的所有线程组都生效。 一旦所有UDV被处理,生成的变量集就被复制到每个线程,以提供初始的变量集。
如果运行时元素(如 User Parameters Pre-Processor 或 Regular Expression Extractor)定义了一个与UDV变量名称相同的变量,那么这将替换初始值,线程中的所有其他测试元素将看到更新的值。
静态值
作为一组初始变量,UDV一旦赋值之后就不会再改变。因此,当使用每次调用都会产生不同结果的函数给UDV赋值时,只有第一次函数调用的结果会被保存在变量中。