說明
本文內(nèi)容蜀漆,根據(jù)【高樓老師】的極客時(shí)間《性能測試實(shí)戰(zhàn)30講》而寫,里面很多內(nèi)容復(fù)用铡买。
文中介紹到的關(guān)聯(lián)和斷言更鲁,僅僅是說明了其作用霎箍,并沒有詳細(xì)說明其用法,重點(diǎn)在于參數(shù)化的設(shè)置澡为。
關(guān)聯(lián)
首先關(guān)聯(lián)漂坏,什么場景下需要做關(guān)聯(lián)呢?下面幾種情況也是需要的:
1媒至、數(shù)據(jù)是由服務(wù)器端生成的顶别; 2、數(shù)據(jù)在每一次請求時(shí)都是動(dòng)態(tài)變化的拒啰; 3驯绎、數(shù)據(jù)在后續(xù)的請求中需要再發(fā)送出去。
其實(shí)谋旦,個(gè)人感覺關(guān)聯(lián)和參數(shù)化是一起的剩失,就是說 有了關(guān)聯(lián)一般都有參數(shù)化,不然怎么取數(shù)據(jù)呢册着。
關(guān)聯(lián)的作用就是“取服務(wù)端返回的值”拴孤,然后將這個(gè)值給到其他有需要的接口,或可以復(fù)用時(shí)就保存下來甲捏。
斷言
斷言演熟,開始沒覺得斷言有必要,后來發(fā)現(xiàn)確實(shí)需要斷言司顿,但是當(dāng)返回的結(jié)果很多時(shí)芒粹,怎么做斷言呢?也不知道大溜,就是隨便唄是辕,隨便選一個(gè)容易斷言的值。
現(xiàn)在才發(fā)現(xiàn)猎提,“斷言是根據(jù)需要來設(shè)計(jì)的获三,而設(shè)計(jì)斷言的前提就是完全理解這個(gè)邏輯”。就是你要知道锨苏,這個(gè)斷言是能反饋這個(gè)請求的正確與否的疙教。
復(fù)制一下高老師的圖:
比如,下圖中伞租,只有數(shù)據(jù)庫返回了“true”這個(gè)字段贞谓,才表示成功插入到數(shù)據(jù)庫,這時(shí)葵诈,我們只需要斷言返回結(jié)果里面是否包含“true”字段值就好裸弦,不需要再進(jìn)行其他方面的斷言祟同。
參數(shù)化
以下主要說明,jmeter工具的參數(shù)化設(shè)置理疙,主要是說明以下3個(gè)條件的綜合作用:
- jmeter的參數(shù)化設(shè)置:
?
- 線程組設(shè)置:
- 在前兩個(gè)參數(shù)固定的情況下晕城,修改線程共享模式:
當(dāng)前線程組
即文件時(shí)屬于線程組的,所有線程共用此參數(shù)化文件
所有線程
在當(dāng)前設(shè)置下窖贤,所有線程與當(dāng)前線程組效果差不多
為了更好的看到效果砖顷,我調(diào)整了一下參數(shù)化文件的位置,再進(jìn)行一次對(duì)比:
----所有線程:可以看到赃梧,2個(gè)參數(shù)分別左右到2個(gè)線程組滤蝠,即每個(gè)線程組均有一個(gè)正確響應(yīng)。
---- 當(dāng)前線程組:每個(gè)線程組可以正確執(zhí)行2個(gè)請求
當(dāng)前線程
即文件是所屬與每個(gè)線程的授嘀。每個(gè)線程使用一次參數(shù)化文件物咳,
在當(dāng)前測試中:2個(gè)參數(shù)值,3個(gè)線程蹄皱,循環(huán)3次览闰,每個(gè)線程均會(huì)使用一次參數(shù)化文件,在線程循環(huán)到第3次時(shí)夯接,就會(huì)報(bào)錯(cuò)(在當(dāng)前的設(shè)置下)焕济。
編輯
屬于自己編輯參數(shù)的范圍,暫時(shí)沒有用到盔几。
總結(jié)
關(guān)于如何設(shè)計(jì)參數(shù)化數(shù)據(jù):
*分析業(yè)務(wù)場景晴弃;
*羅列出需要參數(shù)化的數(shù)據(jù)及相對(duì)應(yīng)的關(guān)系;
*將參數(shù)化數(shù)據(jù)從數(shù)據(jù)庫中取出或設(shè)計(jì)對(duì)應(yīng)的生成規(guī)則逊拍;
*合理地將參數(shù)化數(shù)據(jù)保存在不同的文件中上鞠;
*在壓力工具中設(shè)置相應(yīng)的參數(shù)組合關(guān)系,以便實(shí)現(xiàn)模擬真實(shí)場景芯丧。
通過以上步驟芍阎,我們就可以合理的參數(shù)化數(shù)據(jù),模擬出真實(shí)場景缨恒。