一、jmeter用户自定义变量的引用方法
jmeter用户自定义变量是在测试过程中经常用到的一种方式。其主要作用是为了动态地为一些参数赋值,以便于在测试过程中进行传递和使用。引用方法如下:
${variable_name}
其中,variable_name
是变量名称。在使用中,我们可以使用它来代替需要传递的参数值。
举一个栗子,在jmeter中定义了一个名为foo
的变量,那么我们可以这样引用它:
${foo}
在运行测试过程中,jmeter会将${foo}
替换成变量foo
的值。
二、jmeter用户参数和用户自定义变量的区别
jmeter用户参数和用户自定义变量是jmeter中的两种不同的参数传递方式。
1、用户参数
用户参数是在测试计划的User Parameters
下定义的。它的作用是为多个请求动态地传递参数值,从而实现测试过程中参数的自动化管理。
用户参数有以下几个特点:
- 参数值是在每个迭代中动态生成的。
- 参数值可以通过
${变量名}
的方式来进行引用。 - 用户参数在整个测试计划中都是可见的。
- 用户参数不能设置默认值。如果没有指定值,则会在测试运行时报错。
2、用户自定义变量
用户自定义变量是在测试计划中任何地方都可以定义和使用的。它的作用是为了动态地赋值给部分请求参数以达到自定义的目的。
用户自定义变量有以下几个特点:
- 变量值是在测试前指定的。
- 可以通过
${variable_name}
的方式来引用。 - 用户自定义变量只在当前线程组中可见。
- 用户自定义变量可以设置默认值。
三、jmeter用户自定义变量不能重复定义
jmeter中用户自定义变量是不能被重复定义的。如果在同一个线程组中出现了同名的自定义变量,那么只有最后一次定义的变量会起作用。
举一个栗子,如果在一个线程组中,分别定义了以下两个变量:
foo=1 foo=2
那么在测试过程中,${foo}
的值将会是2。
四、jmeter用户自定义变量的作用
jmeter用户自定义变量在测试过程中有很多作用,主要有以下几个:
1、设置动态参数
通过设置自定义变量,我们可以在测试过程中动态地传递参数。
2、设置默认参数值
在测试过程中,我们很多时候需要设置一些参数的默认值。使用自定义变量可以实现这个功能。
3、自定义业务逻辑
在测试过程中,有时需要自定义一些复杂的业务逻辑。使用自定义变量可以让我们灵活地控制测试过程中的请求参数。
4、设置随机值
在测试过程中,有时需要使用随机值来对请求参数进行赋值,以模拟真实场景下的请求情况。使用jmeter自带的随机函数,可以很方便地实现这个功能。
五、jmeter用户自定义变量订单号
在实际测试中,有时需要使用某种规则生成订单号来模拟真实场景。下面是使用jmeter自定义变量生成订单号的示例代码:
${__time(yyyyMMddHHmmssSSS)}-${__Random(1,100)}
上述代码中,使用了${__time(yyyyMMddHHmmssSSS)}
来获取当前时间,并以yyyyMMddHHmmssSSS
的格式进行格式化。同时使用${__Random(1,100)}
来生成一个1~100之间的随机数。
这样就可以在测试过程中使用类似20211111111111111-89
这样的订单号来模拟真实场景。
六、jmeter定义变量
jmeter定义变量可以通过两种方式实现:
- 在测试计划的
User Defined Variables
下定义。 - 在测试过程中使用
BeanShell preprocessor
或JSR223 preprocessor
定义。
其中,第一种方式比较简单,直接在User Defined Variables
下添加即可。下面是示例代码:
variable_name=value
第二种方式需要使用BeanShell preprocessor
或JSR223 preprocessor
的方式进行定义。下面是示例代码:
vars.put("variable_name", "value");
需要注意的是,在使用BeanShell preprocessor
或JSR223 preprocessor
定义变量时,需要确保变量名的唯一性。
七、jmeter用户自定义变量从文档中读取
jmeter用户自定义变量可以从外部文档中读取,以方便地进行参数管理。下面是从csv文件中读取自定义变量的示例代码:
${__CSVRead(filepath.csv,0)}
上述代码中,filepath.csv
是csv文件的路径,0
表示读取csv文件的第一列。
八、jmeter自定义函数
jmeter自定义函数是为了扩展jmeter自身的功能。通过自定义函数,可以实现一些原有功能上不足的操作。下面是自定义函数的示例代码:
${__javaScript(function_name(param1, param2))}
上述代码中,function_name
是自定义函数的名称,param1
和param2
是自定义函数的参数。
九、jmeter自定义变量随机生成
在测试过程中,有时需要使用随机值作为参数值。jmeter提供了多种内置的随机函数,可以方便地实现自定义变量的随机生成。下面是一些常用的随机函数:
- ${__Random(1,100)}
- ${__RandomString(10,abcdefghijklmnopqrstuvwxyz1234567890)}
- ${__time(yyyyMMddHHmmssSSS)}
- ${__UUID()}
上述函数的具体含义和用法,请参考jmeter官方文档。
十、jmeter添加自定义变量
jmeter添加自定义变量可以通过以下步骤实现:
- 在测试计划中右键,选择
Add->Config Element->User Defined Variables
。 - 在
User Defined Variables
下添加自定义变量。 - 在需要使用自定义变量的地方,使用
${variable_name}
的方式来引用变量。
需要注意的是,在User Defined Variables
中定义的变量是全局可见的。
总结
本文详细介绍了jmeter用户自定义变量的多种用法及其实现方式。jmeter用户自定义变量可以用来动态地传递参数、自定义业务逻辑、随机生成参数值等。在测试过程中,灵活使用自定义变量可以提高测试效率、减少测试成本。