JMeter学习笔记(十一) 关于 CSV Data Set Config 的 Sharing mode 对取值的影响

  关于 CSV Data Set Config 的一些介绍之前已经梳理过了,可以参考: https://www.cnblogs.com/xiaoyu2018/p/10184127.html 。

  今天主要是对于HTTP请求读取CSV文件的数据的一些思路整理,记录的步骤可能比较啰嗦,但有对比就比较好理解。

首先,先添加相应的测试计划、线程组、HTTP请求 以及 CSV Data Set Config

1、测试计划的线程数为1,循环数为1的前提下,修改Sharing mode

数据:线程组A(请求A1),线程组B(请求B1),线程组C(C1)

当有多个线程时:

 All threads : 按照执行顺序,每个线程请求行一行数据

(A1,A2,A3取第一行数据,B1,B2,B3取第二行数据;C1,C2,C3取第三行数据)

Current thread group : 每个线程组都是取的第一行数据

(A1,A2,A3取第一行数据,B1,B2,B3取第一行数据;C1,C2,C3取第一行数据)

 Current thread : 每个请求的每个线程都是从第一行数据开始取

(A1,A2,A3取第一行数据,B1,B2,B3取第一行数据;C1,C2,C3取第一行数据)

 

2、测试计划的线程数为n,循环数为1的前提下,修改Sharing mode

数据:线程组A(请求A1,A2,A3),线程组B(请求B1,B2,B3),线程组C(C1,C2,C3)

当有多个线程时:

 All threads : 同一个线程组中的所有请求的第n个线程都是取同一行数据,但是所有线程组,都是取新的一行数据

(A1,A2,A3第一次取第一行数据,第二次去第二行数据;B1,B2,B3第一次取第三行数据,第二次取第四行数据;C1,C2,C3第一次取第五行数据,第二次取第六行数据)

Current thread group : 线程组中,每个请求有n个线程,从线程1-n都是从第一行数据开始取

(A1,A2,A3第一次取第一行数据,第二次去第二行数据;B1,B2,B3第一次取第一行数据,第二次取第二行数据;C1,C2,C3第一次取第一行数据,第二次取第二行数据)

 Current thread : 每个请求的每个线程都是从第一行数据开始取

(A1,A2,A3第一次取第一行数据,第二次去第一行数据;B1,B2,B3第一次取第一行数据,第二次取第一行数据;C1,C2,C3第一次取第一行数据,第二次取第一行数据)

3、测试计划的线程数为1,循环数为n的前提下,修改Sharing mode

数据:线程组A(请求A1,A2,A3),线程组B(请求B1,B2,B3),线程组C(C1,C2,C3)

当有多个线程时:

 All threads : 同一个线程组中的所有请求的第n个循环都是取同一行数据,但是每一轮循环都取新一行数据,不同线程组接着上面线程组的顺序取新一行数据

(A1,A2,A3第一次循环取第一行数据,第二次循环取第二行数据,第三次循环取第三行数据;B1,B2,B3第一次循环取第四行数据,...)

Current thread group : 线程组中,每个循环都取新一行数据;不同线程组,都是从第一行开始取

(A1,A2,A3第一次循环取第一行数据,第二次循环取第二行数据,第三次循环取第三行数据;B1,B2,B3第一次循环取第一行数据,C1,C2,C3第一次循环取第一行数据,...)

 Current thread : 每一个请求的线程,每个循环都取新一行数据

(A1,A2,A3第一次循环取第一行数据,第二次循环取第二行数据,第三次循环取第三行数据;B1,B2,B3第一次循环取第一行数据,C1,C2,C3第一次循环取第一行数据,...)

  

4、测试计划的线程数为n,循环数为n的前提下,修改Sharing mode

数据:线程组A(请求A1,A2,A3),线程组B(请求B1,B2,B3),线程组C(C1,C2,C3)

当有多个线程时:

 All threads : 线程组中所有请求的同批次线程取相同数据,每个请求的每个线程、每一轮循环都取新一行数据,不同线程组接着上面线程组的顺序取新一行数据

(A1执行了 2*3=6次,分别取了第1-6行数据,A2,A3相同;B1从第1行数开始取,...)

Current thread group : 线程组中,每个线程每次循环都取新一行数据;不同线程组,都是从第一行开始取

(A1执行了 2*3=6次,分别取了第1-6行数据,A2,A3相同;B1从第1行数开始取,...)

 Current thread : 每一个请求的线程,都是从第一行开始,每个循环都取新一行数据

(A1执行第一个线程,循环了3次,分别取第1-3行数据;第二个线程,还是取第1-3行数据;A2,A3相同;B1从第1行数开始取,...)

 

总结:

 All threads : 不区分线程组,按照执行顺序,每个线程、每次循环,都会取新一行数据

Current thread group : 线程组中,每个线程、每次循环都取新一行数据;不同线程组,都是从第一行开始取

 Current thread : 每一个请求的线程,都是从第一行开始,每个循环都取新一行数据

(线程数和循环数,是指线程组中配置“线程属性”)

原文地址:https://www.cnblogs.com/xiaoyu2018/p/10184813.html