CSV Data Set Config配置中线程共享模式共有三种,分别为:所有线程、当前线程、当前线程组。这三种模式决定了jmeter的取值策略。Jmeter线程共享模式,共享的是数据文件。
1、线程共享模式-所有线程
所有线程:所有线程共享一个数据文件,启几个线程就会用几条数据。
场景1:
如下图线程组1下面有一个变量文件、一个http请求
1)变量文件共享模式为所有线程,变量文件中定义变量T1,值为1-9
2)http中调用变量T1
线程组中设置线程数和循环次数,运行后T1取值如下
线程数 |
循环次数 |
T1 |
4 |
1 |
1 2 3 4 |
1 |
3 |
1 2 3 |
2 |
3 |
1 2 3 4 5 6 |
场景2:
如下图,修改场景1脚本,将http请求放在循环控制器中,变量文件和http请求保持不变
线程组中设置线程数和循环次数,循环控制器中设置循环次数,运行后T1取值如下
线程数 |
循环次数 |
循环控制器循环次数 |
T1 |
说明 |
4 |
1 |
2 |
112233 |
顺序可能不一致但每个值出现的次数一定是这样 |
1 |
3 |
2 |
112233 |
|
2 |
3 |
2 |
112233445566 |
|
2 |
2 |
2 |
11223344 |
总结:加循环控制器,可以理解成脚本里的循环,循环控制器不改变线程取值。
Jmeter线程共享模式-所有线程
当前线程:1个线程1个数据文件,线程组是几,就可以理解成复制出几分文件。
场景1:
如下图线程组1下面有一个变量文件、一个http请求
1)变量文件共享模式为当前线程,变量文件中定义变量T1,值为1-9
2)http中调用变量T1
线程组中设置线程数和循环次数,运行后T1取值如下
线程数 |
循环次数 |
T1 |
4 |
1 |
1 1 1 1 |
1 |
4 |
1 2 3 4 |
2 |
2 |
1 2 1 2 |
场景2
如下图,修改场景1脚本,将http请求放在循环控制器中,变量文件和http请求保持不变
线程组中设置线程数和循环次数,循环控制器中设置循环次数,运行后T1取值如下
线程数 |
循环次数 |
循环控制器循环次数 |
T1 |
说明 |
4 |
1 |
2 |
11111111 |
顺序可能不一致但每个值出现的次数一定是这样 |
1 |
4 |
2 |
11223344 |
|
2 |
2 |
2 |
11112222 |
Jmeter线程共享模式-所有线程组
当前线程组:一个线程组一份文件,线程组内是所有线程(All Thread)模式。
场景1
如下图测试计划下面有一个变量文件、两个线程组
1)变量文件共享模式为所有线程组,变量文件中定义变量T1,值为1-9
2)每个线程组下各有一个http请求
3)每个http请求中调用变量T1
线程组中设置线程数和循环次数,运行后T1取值如下
线程数 |
循环次数 |
http请求1_T1 |
http请求2_T1 |
3 |
1 |
1 2 3 |
1 2 3 |
2 |
2 |
1 2 3 4 |
1 2 3 4 |
场景2
如下图,修改场景1脚本,将两个http请求分别放在循环控制器中,变量文件和http请求保持不变
线程组中设置线程数和循环次数,循环控制器中设置循环次数,运行后T1取值如下
线程数 |
循环次数 |
循环控制器循环次数 |
http请求1_T1 |
http请求2_T1 |
说明 |
3 |
1 |
2 |
112233 |
112233 |
顺序可能不一致但每个值出现的次数一定是这样 |
2 |
2 |
2 |
11223344 |
11223344 |