11 节 2021-01-08Jmeter之参数化
2021-03-08 本文已影响0人
testerPM
脚本参数化之用户定义变量
用户定义变量有2个地方可以配置:(1)线程组-》配置元件->用户定义变量 (2)测试计划->用户定义的变量
![](https://img.haomeiwen.com/i3096511/4bdb179237d2baca.png)
(1)线程组-》配置元件->用户定义变量
1.设置用户定义变量
![](https://img.haomeiwen.com/i3096511/87b90b96fcac77c2.png)
2.登录接口-》引用用户定义变量
![](https://img.haomeiwen.com/i3096511/55af7280f8c6d5a7.png)
3.启动-察看结果树
![](https://img.haomeiwen.com/i3096511/7dd8ce05a0377abc.png)
(2)测试计划--》用户定义的变量
1.点击 测试计划-》测试计划页面有用户定义变量-》点击添加,设置参数
![](https://img.haomeiwen.com/i3096511/e3db729ba828c17f.png)
2.注册接口-》参数引用
![](https://img.haomeiwen.com/i3096511/8c254c30876f2d0e.png)
3.察看结果树-》参数引用成功
![](https://img.haomeiwen.com/i3096511/2b63cca3fdf8f2a2.png)
![](https://img.haomeiwen.com/i3096511/f1e18bff30101d20.png)
用户定义变量的作用范围
测试计划上,线程组1和线程组2都定义了同名的 用户变量,那么取样器中引用${mobile},获取的是哪个值呢?
1.测试计划上-》添加用户定义变量
![](https://img.haomeiwen.com/i3096511/2647940370585b3a.png)
2.线程组2添加用户定义变量
![](https://img.haomeiwen.com/i3096511/3a4bc206f8bffea4.png)
3.启动
![](https://img.haomeiwen.com/i3096511/83a32d4163d558b4.png)
如果测试计划上和线程组上添加的用户定义变量的参数名一样,且引用也一样,那么引用的时候,优先使用线程组下面的用户定义变量。
4.线程组2-》添加用户定义变量
![](https://img.haomeiwen.com/i3096511/74c3d43eb85bf1eb.png)
5.启动
![](https://img.haomeiwen.com/i3096511/3b92cf2752514314.png)
总结:
1. 不同的线程组都添加了用户变量,如果参数名一样,那么引用的时候,可能会被最新的覆盖,那么哪个是最新的呢?---》Jmeter默认是并行,不同线程组同时在跑,谁是最新的,这个是不一定的,如果Jmeter是串行的,那么肯定是被最后执行的覆盖掉
2. 用户定义变量是一个全局变量,所有的线程组都可以直接引用(可以理解为公有属性)
3.线程组启动后,用户定义变量只获取一次值,在运行过程中,不再获取新的值
脚本参数化之用户参数
![](https://img.haomeiwen.com/i3096511/04b175dc405321d0.png)
1.如下图:线程组1-》前置处理器->用户参数
![](https://img.haomeiwen.com/i3096511/a7cc323290c9083c.png)
2.启动
![](https://img.haomeiwen.com/i3096511/8e69db0ab4adfa17.png)
总结:
1.用户参数:是局部变量,不能跨线程组使用,只能本线程组引用(可以理解为私有属性)
2.用户参数如果想跨线程组使用,就要把用户参数转换到jmeter的公共空间,(公共空间又叫属性)---》后续章节再介绍
3.用户参数,在启动时,获取一次值,在运行过程中,依然会动态获取新的值
随机函数演示动态获取值
1.tools-->函数助手对话框
设置随机数区间范围:00000000-99999999
![](https://img.haomeiwen.com/i3096511/d96ed60002d4db64.png)
2.点击 生成会自动拷贝,只需要到引用处复制即可
![](https://img.haomeiwen.com/i3096511/b0d3888ad789a4e4.png)
3.线程数设置为3
![](https://img.haomeiwen.com/i3096511/2aa1ba647672f3c1.png)
4.点击 启动--》察看结果树
![](https://img.haomeiwen.com/i3096511/a9ed9a4c86ad5665.png)
从上面结果可以看到:用户参数在线程组循环迭代三次运行过程中,动态获取三次手机号
5.看下图:
![](https://img.haomeiwen.com/i3096511/83b891730061a2d8.png)
注册和登录是否可以使用同一个手机号?----》答:当然是可以的。用户参数页面勾选每次迭代更新一次
![](https://img.haomeiwen.com/i3096511/df8e537e4d9f5553.png)
6.勾选每次迭代更新一次--》点击启动---》察看结果树:每次迭代登录和注册都是相同的手机号
![](https://img.haomeiwen.com/i3096511/677d679e08c19847.png)
7.用户定义变量--》设置如下:
![](https://img.haomeiwen.com/i3096511/a0cb1c76220aacdb.png)
8.点击启动--》察看结果树:用户定义变量,jmeter运行过程中,只获取一次值
![](https://img.haomeiwen.com/i3096511/d2a60de6af3caf2b.png)
用户参数和用户定义变量之区别
1.用户参数是局部变量 (不能跨线程组),用户定义变量是全局变量(可以跨线程组)
2.用户参数jmeter运行中动态获取新的值,用户定义变量只获取一次值