說明
本文內(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ù)在每一次請(qǐng)求時(shí)都是動(dòng)態(tài)變化的; 3、數(shù)據(jù)在后續(xù)的請(qǐng)求中需要再發(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è)請(qǐng)求的正確與否的。
復(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è)請(qǐng)求

當(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í)場景。