在工作中经常使用jmeter的csv数据文件来实现参数化,但csv文件的线程共享模式在使用时却很少关注。

1.csv线程共享模式分为3种模式,分别为“所有现场”、“当前线程组”和“当前线程”,如下图所示

2.准备一个csv文件,其内容如下:

1
2
3
4
5
6
7
8
9
10

3.编写一个jmeter测试计划,各线程组配置如下图所示:

4.csv、请求a、请求b均在线程组内,线程共享模式为:”当前线程“,2个线程循环5次

我是线程:1;我是请求a:1
我是线程:1;我是请求b:1
我是线程:2;我是请求a:1
我是线程:2;我是请求b:1
我是线程:1;我是请求a:2
我是线程:1;我是请求b:2
我是线程:2;我是请求a:2
我是线程:2;我是请求b:2
我是线程:1;我是请求a:3
我是线程:1;我是请求b:3
我是线程:2;我是请求a:3
我是线程:2;我是请求b:3
我是线程:1;我是请求a:4
我是线程:1;我是请求b:4
我是线程:2;我是请求a:4
我是线程:2;我是请求b:4
我是线程:1;我是请求a:5
我是线程:1;我是请求b:5
我是线程:2;我是请求a:5
我是线程:2;我是请求b:5

5.csv、请求a、请求b均在线程组内,线程共享模式为:”当前线程组“,2个线程循环5次

我是线程:1;我是请求a:1
我是线程:1;我是请求b:1
我是线程:2;我是请求a:2
我是线程:2;我是请求b:2
我是线程:1;我是请求a:3
我是线程:1;我是请求b:3
我是线程:2;我是请求a:4
我是线程:2;我是请求b:4
我是线程:1;我是请求a:5
我是线程:1;我是请求b:5
我是线程:2;我是请求a:6
我是线程:2;我是请求b:6
我是线程:1;我是请求a:7
我是线程:1;我是请求b:7
我是线程:2;我是请求a:8
我是线程:2;我是请求b:8
我是线程:1;我是请求a:9
我是线程:1;我是请求b:9
我是线程:2;我是请求a:10
我是线程:2;我是请求b:10

6.csv、请求a、请求b均在线程组内,线程共享模式为:”所有现场“,2个线程循环5次

我是线程:1;我是请求a:1
我是线程:1;我是请求b:1
我是线程:2;我是请求a:2
我是线程:2;我是请求b:2
我是线程:1;我是请求a:3
我是线程:1;我是请求b:3
我是线程:2;我是请求a:4
我是线程:2;我是请求b:4
我是线程:1;我是请求a:5
我是线程:1;我是请求b:5
我是线程:2;我是请求a:6
我是线程:2;我是请求b:6
我是线程:1;我是请求a:7
我是线程:1;我是请求b:7
我是线程:2;我是请求a:8
我是线程:2;我是请求b:8
我是线程:1;我是请求a:9
我是线程:1;我是请求b:9
我是线程:2;我是请求a:10
我是线程:2;我是请求b:10

7.csv在线程组外,请求a、请求b在线程组A中,请求c、请求d在线程组B中,线程共享模式为:”当前线程“

我是线程组A线程:1;我是请求a:1
我是线程组A线程:1;我是请求b:1
我是线程组B线程:1;我是请求c:1
我是线程组B线程:1;我是请求d:1
我是线程组A线程:2;我是请求a:1
我是线程组A线程:2;我是请求b:1
我是线程组B线程:2;我是请求c:1
我是线程组B线程:2;我是请求d:1
我是线程组A线程:1;我是请求a:2
我是线程组A线程:1;我是请求b:2
我是线程组B线程:1;我是请求c:2
我是线程组B线程:1;我是请求d:2
我是线程组A线程:2;我是请求a:2
我是线程组A线程:2;我是请求b:2
我是线程组B线程:2;我是请求c:2
我是线程组B线程:2;我是请求d:2
我是线程组A线程:1;我是请求a:3
我是线程组A线程:1;我是请求b:3
我是线程组B线程:1;我是请求c:3
我是线程组B线程:1;我是请求d:3
我是线程组A线程:2;我是请求a:3
我是线程组A线程:2;我是请求b:3
我是线程组B线程:2;我是请求c:3
我是线程组B线程:2;我是请求d:3
我是线程组A线程:1;我是请求a:4
我是线程组A线程:1;我是请求b:4
我是线程组B线程:1;我是请求c:4
我是线程组B线程:1;我是请求d:4
我是线程组A线程:2;我是请求a:4
我是线程组A线程:2;我是请求b:4
我是线程组B线程:2;我是请求c:4
我是线程组B线程:2;我是请求d:4
我是线程组A线程:1;我是请求a:5
我是线程组A线程:1;我是请求b:5
我是线程组B线程:1;我是请求c:5
我是线程组B线程:1;我是请求d:5
我是线程组A线程:2;我是请求a:5
我是线程组A线程:2;我是请求b:5
我是线程组B线程:2;我是请求c:5
我是线程组B线程:2;我是请求d:5

8.csv在线程组外,请求a、请求b在线程组A中,请求c、请求d在线程组B中,线程共享模式为:”当前线程组“

我是线程组A线程:1;我是请求a:1
我是线程组A线程:1;我是请求b:1
我是线程组B线程:1;我是请求c:1
我是线程组B线程:1;我是请求d:1
我是线程组A线程:2;我是请求a:2
我是线程组A线程:2;我是请求b:2
我是线程组B线程:2;我是请求c:2
我是线程组B线程:2;我是请求d:2
我是线程组A线程:1;我是请求a:3
我是线程组A线程:1;我是请求b:3
我是线程组B线程:1;我是请求c:3
我是线程组B线程:1;我是请求d:3
我是线程组A线程:2;我是请求a:4
我是线程组A线程:2;我是请求b:4
我是线程组B线程:2;我是请求c:4
我是线程组B线程:2;我是请求d:4
我是线程组A线程:1;我是请求a:5
我是线程组A线程:1;我是请求b:5
我是线程组B线程:1;我是请求c:5
我是线程组B线程:1;我是请求d:5
我是线程组A线程:2;我是请求a:6
我是线程组A线程:2;我是请求b:6
我是线程组B线程:2;我是请求c:6
我是线程组B线程:2;我是请求d:6
我是线程组A线程:1;我是请求a:7
我是线程组A线程:1;我是请求b:7
我是线程组B线程:1;我是请求c:7
我是线程组B线程:1;我是请求d:7
我是线程组A线程:2;我是请求a:8
我是线程组A线程:2;我是请求b:8
我是线程组B线程:2;我是请求c:8
我是线程组B线程:2;我是请求d:8
我是线程组A线程:1;我是请求a:9
我是线程组A线程:1;我是请求b:9
我是线程组B线程:1;我是请求c:9
我是线程组B线程:1;我是请求d:9
我是线程组A线程:2;我是请求a:10
我是线程组A线程:2;我是请求b:10
我是线程组B线程:2;我是请求c:10
我是线程组B线程:2;我是请求d:10

9.csv在线程组外,请求a、请求b在线程组A中,请求c、请求d在线程组B中,线程共享模式为:”所有现场“

我是线程组A线程:1;我是请求a:1
我是线程组A线程:1;我是请求b:1
我是线程组B线程:1;我是请求c:2
我是线程组B线程:1;我是请求d:2
我是线程组A线程:2;我是请求a:3
我是线程组A线程:2;我是请求b:3
我是线程组B线程:2;我是请求c:4
我是线程组B线程:2;我是请求d:4
我是线程组A线程:1;我是请求a:5
我是线程组A线程:1;我是请求b:5
我是线程组B线程:1;我是请求c:6
我是线程组B线程:1;我是请求d:6
我是线程组A线程:2;我是请求a:7
我是线程组A线程:2;我是请求b:7
我是线程组B线程:2;我是请求c:8
我是线程组B线程:2;我是请求d:8
我是线程组A线程:1;我是请求a:9
我是线程组A线程:1;我是请求b:9
我是线程组B线程:1;我是请求c:10
我是线程组B线程:1;我是请求d:10
我是线程组A线程:2;我是请求a:1
我是线程组A线程:2;我是请求b:1
我是线程组B线程:2;我是请求c:2
我是线程组B线程:2;我是请求d:2
我是线程组A线程:1;我是请求a:3
我是线程组A线程:1;我是请求b:3
我是线程组B线程:1;我是请求c:4
我是线程组B线程:1;我是请求d:4
我是线程组A线程:2;我是请求a:5
我是线程组A线程:2;我是请求b:5
我是线程组B线程:2;我是请求c:6
我是线程组B线程:2;我是请求d:6
我是线程组A线程:1;我是请求a:7
我是线程组A线程:1;我是请求b:7
我是线程组B线程:1;我是请求c:8
我是线程组B线程:1;我是请求d:8
我是线程组A线程:2;我是请求a:9
我是线程组A线程:2;我是请求b:9
我是线程组B线程:2;我是请求c:10
我是线程组B线程:2;我是请求d:10

10.根据上面6种测试场景可以得出以下结论:

  • 当前线程:当共享模式设置为“当前线程”时,线程组中的每个线程独立享有csv里的参数内容,不与其他线程共享;
  • 当前线程组:当共享模式设置为“当前线程组”时,线程组内的线程共享csv里的参数内容,各线程按顺序依次读取;
  • 所有现场:当共享模式设置为“所有现场”时,所有线程组内的线程共同一起共享csv里的参数内容;
  • 所有共享模式都不影响同一线程内的不同请求,同一线程内的所有请求均使用同一参数;

 

posted on 2022-11-28 20:02  tianyun620520  阅读(1608)  评论(0编辑  收藏  举报