1.測(cè)試計(jì)劃是使用 JMeter 進(jìn)行測(cè)試的起點(diǎn)绎谦,它是其它 JMeter 測(cè)試元件的容器管闷。
2.線程組:代表一定數(shù)量的并發(fā)用戶,它可以用來模擬并發(fā)用戶發(fā)送請(qǐng)求窃肠。實(shí)際的請(qǐng)求內(nèi)容在Sampler中定義包个,它被線程組包含≡┝簦可以在“測(cè)試計(jì)劃->添加->線程組”來建立它碧囊,然后在線程組面板里有幾個(gè)輸入欄:線程數(shù)、Ramp-Up Period(in seconds)纤怒、循環(huán)次數(shù)糯而,其中Ramp-Up Period(in seconds)表示在這時(shí)間內(nèi)創(chuàng)建完所有的線程。如有8個(gè)線程泊窘,Ramp-Up = 200秒熄驼,那么線程的啟動(dòng)時(shí)間間隔為200/8=25秒,這樣的好處是:一開始不會(huì)對(duì)服務(wù)器有太大的負(fù)載烘豹。線程組是為模擬并發(fā)負(fù)載而設(shè)計(jì)瓜贾。
3、取樣器(Sampler):模擬各種請(qǐng)求携悯。所有實(shí)際的測(cè)試任務(wù)都由取樣器承擔(dān)祭芦,存在很多種請(qǐng)求。如:HTTP 憔鬼、ftp請(qǐng)求等等实束。
4、監(jiān)聽器:負(fù)責(zé)收集測(cè)試結(jié)果逊彭,同時(shí)也被告知了結(jié)果顯示的方式咸灿。功能是對(duì)取樣器的請(qǐng)求結(jié)果顯示、統(tǒng)計(jì)一些數(shù)據(jù)(吞吐量侮叮、KB/S……)等避矢。
5、邏輯控制器:允許自定義JMeter發(fā)送請(qǐng)求的行為邏輯囊榜,它與Sampler結(jié)合使用可以模擬復(fù)雜的請(qǐng)求序列审胸。
6、斷言:用于來判斷請(qǐng)求響應(yīng)的結(jié)果是否如用戶所期望卸勺,是否正確砂沛。它可以用來隔離問題域,即在確保功能正確的前提下執(zhí)行壓力測(cè)試曙求。這個(gè)限制對(duì)于有效的測(cè)試是非常有用的碍庵。
7映企、定時(shí)器:負(fù)責(zé)定義請(qǐng)求(線程)之間的延遲間隔,模擬對(duì)服務(wù)器的連續(xù)請(qǐng)求静浴。
8. 配置元件維護(hù)Sampler需要的配置信息堰氓,并根據(jù)實(shí)際的需要會(huì)修改請(qǐng)求的內(nèi)容。
9. 前置處理器和后置處理器負(fù)責(zé)在生成請(qǐng)求之前和之后完成工作苹享。前置處理器常常用來修改請(qǐng)求的設(shè)置双絮,后置處理器則常常用來處理響應(yīng)的數(shù)據(jù)。
一.測(cè)試計(jì)劃
測(cè)試計(jì)劃就是一個(gè)完整的場(chǎng)景
“獨(dú)立運(yùn)行每個(gè)線程組” :勾選以后所有的線程組都是順序執(zhí)行的了得问。一般不勾選囤攀,讓所有 的線程組并發(fā)啟動(dòng)。
“函數(shù)測(cè)試模式” :勾選后會(huì)有詳細(xì)的請(qǐng)求記錄宫纬,消耗資源焚挠,影響客戶端性能。一般不勾選哪怔。
用戶定義的變量:全局變量,測(cè)試計(jì)劃上可以添加用戶定義的變量向抢。一般添加一些系統(tǒng)常用的配置认境。如果測(cè)試過程中想切換環(huán)境,切換配置挟鸠,一般不建議在測(cè)試計(jì)劃上添加變量
二.線程組
(1)叉信、thread group(線程組)
這個(gè)就是我們通常添加運(yùn)行的線程。通俗的講一個(gè)線程組艘希,可以看做一個(gè)虛擬用戶組硼身,線程組中的每個(gè)線程都可以理解為一個(gè)虛擬用戶。
(2)覆享、setup thread group
一種特殊類型的ThreadGroup的佳遂,可用于執(zhí)行預(yù)測(cè)試操作。這些線程的行為完全像一個(gè)正常的線程組元件撒顿。不同的是丑罪,這些類型的線程執(zhí)行測(cè)試前進(jìn)行定期線程組的執(zhí)行;類似LoadRunner的init凤壁,測(cè)試開始時(shí)進(jìn)行初始化的工作吩屹。
(3)、teardown thread group
一種特殊類型的ThreadGroup的拧抖,可用于執(zhí)行測(cè)試后動(dòng)作煤搜。這些線程的行為完全像一個(gè)正常的線程組元件。不同的是唧席,這些類型的線程執(zhí)行測(cè)試結(jié)束后執(zhí)行定期的線程組擦盾;類似LoadRunnner的end嘲驾,測(cè)試結(jié)束時(shí)進(jìn)行回收工作。
三.取樣器(Http請(qǐng)求)
關(guān)于http請(qǐng)求的的屬性參數(shù)說明:
1)名稱:用于標(biāo)識(shí)一個(gè)sample厌衙。建議使用一個(gè)有意義的名稱
2)注釋:對(duì)于測(cè)試沒任何影響距淫,僅用來記錄用戶可讀的注釋信息
3)服務(wù)器名稱或IP:http請(qǐng)求發(fā)送的目標(biāo)服務(wù)器名稱或者IP地址,比如http://www.baidu.com
4)端口號(hào):目標(biāo)服務(wù)器的端口號(hào)婶希,默認(rèn)值為80榕暇,可不填
5)協(xié)議:向目標(biāo)服務(wù)器發(fā)送http請(qǐng)求時(shí)的協(xié)議,http/https喻杈,大小寫不敏感彤枢,默認(rèn)http
6)方法:發(fā)送http請(qǐng)求的方法(鏈接:http://www.cnblogs.com/imyalost/p/5630940.html)
7)Content encoding:內(nèi)容的編碼方式(Content-Type=application/json;charset=utf-8)
8)路徑:目標(biāo)的URL路徑(不包括服務(wù)器地址和端口)
9)自動(dòng)重定向:如果選中該項(xiàng),發(fā)出的http請(qǐng)求得到響應(yīng)是301/302筒饰,jmeter會(huì)重定向到新的界面
10)Use keep Alive:jmeter 和目標(biāo)服務(wù)器之間使用 Keep-Alive方式進(jìn)行HTTP通信(默認(rèn)選中)
11)Use multipart/from-data for HTTP POST :當(dāng)發(fā)送HTTP POST 請(qǐng)求時(shí)缴啡,使用
12)Parameters、Body Data以及Files Upload的區(qū)別:
parameter是指函數(shù)定義中參數(shù)瓷们,而argument指的是函數(shù)調(diào)用時(shí)的實(shí)際參數(shù)
簡(jiǎn)略描述為:parameter=形參(formal parameter)业栅, argument=實(shí)參(actual parameter)
3.在不很嚴(yán)格的情況下,現(xiàn)在二者可以混用谬晕,一般用argument碘裕,而parameter則比較少用
While defining method, variables passed in the method are called parameters.
當(dāng)定義方法時(shí),傳遞到方法中的變量稱為參數(shù).
While using those methods, values passed to those variables are called arguments.
當(dāng)調(diào)用方法時(shí)攒钳,傳給變量的值稱為引數(shù).(有時(shí)argument被翻譯為“引數(shù)“)
4帮孔、Body Data指的是實(shí)體數(shù)據(jù),就是請(qǐng)求報(bào)文里面主體實(shí)體的內(nèi)容不撑,一般我們向服務(wù)器發(fā)送請(qǐng)求文兢,攜帶的實(shí)體主體參數(shù),可以寫入這里
5焕檬、Files Upload指的是:從HTML文件獲取所有有內(nèi)含的資源:被選中時(shí)姆坚,發(fā)出HTTP請(qǐng)求并獲得響應(yīng)的HTML文件內(nèi)容后還對(duì)該HTML
進(jìn)行Parse 并獲取HTML中包含的所有資源(圖片、flash等):(默認(rèn)不選中)
如果用戶只希望獲取特定資源实愚,可以在下方的Embedded URLs must match 文本框中填入需要下載的特定資源表達(dá)式旷偿,只有能匹配指定正則表達(dá)式的URL指向資源會(huì)被下載
四.監(jiān)聽器
五.邏輯控制器
六.循環(huán)控制器、事務(wù)控制器
6.1.循環(huán)控制器
6.2.事務(wù)控制器
作用: 事務(wù)控制器會(huì)生產(chǎn)一個(gè)額外的采樣器爆侣,用來統(tǒng)計(jì)該控制器子結(jié)點(diǎn)的所有時(shí)間萍程。
在線程組下創(chuàng)建事務(wù)控制器
參數(shù):
? Generate parent sample:(選中這個(gè)參數(shù)結(jié)果展示如下圖紅框,否則顯示為下圖藍(lán)框)
? Include duration of timer and pre-post processors in generated sample:選中這一項(xiàng)會(huì)統(tǒng)計(jì)定時(shí)器(timer)的時(shí)間兔仰,否則只統(tǒng)計(jì)采樣器(sample)的時(shí)間
創(chuàng)建sample 訪問首頁(yè)和注冊(cè)頁(yè)面
生成聚合報(bào)告
勾選
聚合報(bào)告中只有一項(xiàng)事務(wù)報(bào)告
七.斷言——檢查點(diǎn)
斷言(Assertions)可以用來判斷請(qǐng)求響應(yīng)的結(jié)果是否如用戶所期望的茫负。它可以用來隔離問題域,即在確保功能正確的前提下執(zhí)行壓力測(cè)試乎赴。這個(gè)限制對(duì)于有效的測(cè)試是非常有用的忍法。
八.前置處理器和后置處理器
前置處理器(Pre Processors)和后置處理器(Post Processors)負(fù)責(zé)在生成請(qǐng)求之前和之后完成工作潮尝。前置處理器常常用來修改請(qǐng)求的設(shè)置,后置處理器則常常用來處理響應(yīng)的數(shù)據(jù)饿序。我們主要在動(dòng)態(tài)關(guān)聯(lián)中用到后置處理器的正則表達(dá)式提取器勉失。
Jmeter后端處理器之正則表達(dá)式
https://www.cnblogs.com/fengpingfan/p/4755411.html
九.定時(shí)器
定時(shí)器(Timer)負(fù)責(zé)定義請(qǐng)求之間的延遲間隔