JMeter点道为止系列(2)CSV Data Set Config配置Sharing mode解析

JMeter性能测试

1 配置解析

在JMeter使用配置元件CSV Data Set Config进行参数化之时,该元件的配置项

Sharing mode的设置往往令人迷惑不解.

"Sharing mode"的中文意思是"线程共享模式",有三个可供选择的值:

1)All threads(所有现场)

2)Current thread group(当前线程组)

3)Current thread(当前线程)

其值的设置会影响到参数取值,为了使参数能获取正确的值来满足特定的业务需求,

有必要深入理解其对参数取值的影响,接下来逐一进行剖析.

1.1 All thread

是指在CSV Data Set Config配置元件作用域范围内的所有线程共享一个数据源文件.

也就是说在JMeter测试执行过程中,JMeter仅打开一次该数据源文件,每个线程读取的

是同一个数据源文件中的数据.

线程按照启动的先后顺序依次从数据源文件中获取一个值,不论该线程是否引用

CSV Data Set Config中定义的变量,每个线程都会分配一个值,这样可以保证每个线程

获取的是数据源文件中不同行的列值(在不循环取值的情况下).

1.2 Current thread group

在CSV Data Set Config配置元件作用域范围内的所有线程组,当JMeter执行测试时,

每一个线程组都单独打开一次数据源文件(可以是相同或不同的数据源文件).

每个线程组下的各个线程都是从数据源文件的起始处读取参数值.

若要线程组读取不同的数据源文件,可以对数据源文件的路径进行参数化.

这里需要使用${__threadGroupName}来获取线程组的名字.

假设有n个线程组:

tg1,tg2,...,tgn

每个线程组对应一个数据源文件,对应的文件名分别为:

tg1.csv,tg2.csv,...,tgn.csv

在配置时将"Filename"设置为".../${__threadGroupName}.csv"即可.

1.3 Current thread

在CSV Data Set Config配置元件作用域范围内的所有线程组,当JMeter执行测试时,

每一个线程都单独打开一次数据源文件(可以是相同或不同的数据源文件).

每个线程都是从数据源文件的起始处读取参数值.

若要线程组读取不同的数据源文件,可以对数据源文件的路径进行参数化.

这里需要使用${__threadNum}来获取线程编号.

假设有n个线程,线程编号为:1,2,...,n

每个线程对应一个数据源文件,对应的文件名分别为:

testdata1.csv,testdata2.csv,...,testdatan.csv

在配置时将"Filename"设置为".../testdata${__threadNum}.csv"即可.

2 案例说明

2.1 All thread案例

1)新建数据源文件testdata.csv,设置其值为:

h

1

2

3

4

5

6

2)配置"Test Plan",勾选"Run Thread Groups consecutively(i.e. one at a time),

  保证线程组按顺序依次执行;

3)添加"CSV Data Set Config",其配置下图所示:

4)在"Test Plan"下添加线程组"tg1",设置线程数为5;

5)在"tg1"下添加HTTP取样器,HTTP请求中没有引用参数p,配置如下图所示:

6)在"Test Plan"下添加线程组"tg2",设置线程数为2;

7)在"tg2"下添加HTTP取样器,HTTP请求中引用了参数p,配置如下图所示:

8)在"tg1","tg2"下分别添加"View Results Tree".

保存并执行测试,tg1,tg2的查看结果树内容分别如下图所示:


从结果可以看出,线程组"tg1"的5个线程即使没有引用参数p,也都各自分配了一个值,

线程组"tg1"先于线程组"tg2"启动,线程组"tg2"的2个线程,第一个线程获取了第6个

值"6",第二个线程获取不到值就停止了,所有只显示了一个取样器的结果.

进一步查看jmeter log,可以看出在测试执行过程中testdata.csv只打开一次:

2.2 Current thread group案例

1)新建数据源文件tg1.csv,设置其值为:

h

111

222

333

444

555

666

2)新建数据源文件tg2.csv,设置其值为:

h

aaa

bbb

ccc

ddd

eee

3)配置"Test Plan",勾选"Run Thread Groups consecutively(i.e. one at a time),

  保证线程组按顺序依次执行;

4)添加"CSV Data Set Config",其配置下图所示:

5)在"Test Plan"下添加线程组"tg1",设置线程数为5;

6)在"tg1"下添加HTTP取样器,HTTP请求中引用参数p,配置如下图所示:

7)在"Test Plan"下添加线程组"tg2",设置线程数为2;

8)在"tg2"下添加HTTP取样器,HTTP请求中引用参数p,配置如下图所示:

9)在"tg1","tg2"下分别添加"View Results Tree".

  保存并执行测试,tg1,tg2的查看结果树内容分别如下图所示:

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容