您的位置:

jmeter用户自定义变量详解

一、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 preprocessorJSR223 preprocessor定义。

其中,第一种方式比较简单,直接在User Defined Variables下添加即可。下面是示例代码:


  variable_name=value

第二种方式需要使用BeanShell preprocessorJSR223 preprocessor的方式进行定义。下面是示例代码:


  vars.put("variable_name", "value");

需要注意的是,在使用BeanShell preprocessorJSR223 preprocessor定义变量时,需要确保变量名的唯一性。

七、jmeter用户自定义变量从文档中读取

jmeter用户自定义变量可以从外部文档中读取,以方便地进行参数管理。下面是从csv文件中读取自定义变量的示例代码:


  ${__CSVRead(filepath.csv,0)}

上述代码中,filepath.csv是csv文件的路径,0表示读取csv文件的第一列。

八、jmeter自定义函数

jmeter自定义函数是为了扩展jmeter自身的功能。通过自定义函数,可以实现一些原有功能上不足的操作。下面是自定义函数的示例代码:


  ${__javaScript(function_name(param1, param2))}

上述代码中,function_name是自定义函数的名称,param1param2是自定义函数的参数。

九、jmeter自定义变量随机生成

在测试过程中,有时需要使用随机值作为参数值。jmeter提供了多种内置的随机函数,可以方便地实现自定义变量的随机生成。下面是一些常用的随机函数:

  • ${__Random(1,100)}
  • ${__RandomString(10,abcdefghijklmnopqrstuvwxyz1234567890)}
  • ${__time(yyyyMMddHHmmssSSS)}
  • ${__UUID()}

上述函数的具体含义和用法,请参考jmeter官方文档。

十、jmeter添加自定义变量

jmeter添加自定义变量可以通过以下步骤实现:

  1. 在测试计划中右键,选择Add->Config Element->User Defined Variables
  2. User Defined Variables下添加自定义变量。
  3. 在需要使用自定义变量的地方,使用${variable_name}的方式来引用变量。

需要注意的是,在User Defined Variables中定义的变量是全局可见的。

总结

本文详细介绍了jmeter用户自定义变量的多种用法及其实现方式。jmeter用户自定义变量可以用来动态地传递参数、自定义业务逻辑、随机生成参数值等。在测试过程中,灵活使用自定义变量可以提高测试效率、减少测试成本。