如果使用jmeter做过参数化的人都知道,参数化的方式有多种,其中一种就是使用用户定义的变量,还有一种是使用用户参数。那么,这两个有什么异同呢?
一、先说相同的点:
1、都可以参数化,以供sampler调用。
2、都是key-values的形式展示。
二、再说说区别,我们在讲这个区别的时候,还是结合实例来说,这样更容易理解。
1、分别在不同的组件中。用户参数的位置属于前置处理器,用户定义的变量属于配置元件。
2、用户定义的变量,数据初始化一次;用户参数是每次都变动的。下面举个例子,来看看二者的不同。
第一步,我们只是看二者参数的区别,所以在取样器中添加Debug Sampler

第二步,在Debug Sampler下添加用户参数

添加随机函数,如图

第三步,添加用户定义的变量

同样添加随机函数

第四步,添加查看结果树,运行之后,查看结果。注意:r1是通过用户参数定义的,r2是通过用户定义的变量定义的。
结果1,如图:

结果2,如图:

结果3,如图

结论,当一次执行多个线程的时候,用户参数定义的变量是不断变化的,每一次都是重新生成一个随机数,而用户定义的变量,则是初始化一次,每个请求中的参数值是相同的。
