Jmeter性能測試

bin目錄文件

  • Jmeter.bat:windows下的啟動文件
  • Jmeter.log:日志文件
  • Jmeter.sh:Linux的啟動文件
  • Jmeter.properties:系統(tǒng)配置文件
  • Jmeter-server.bat:windows分布式測試要用到的服務(wù)器配置
  • Jmeter-server:Linux分布式測試要用到的服務(wù)器配置

工具組成部分

資源生成器:用于生成測試過程中服務(wù)器憨降、負(fù)載機(jī)的資源代碼
用戶運(yùn)行器:通常是一個腳本運(yùn)行引擎萎战,根據(jù)腳本要求模擬指定的用戶行為
報表生成器:根據(jù)測試中實(shí)時的數(shù)據(jù)生成報表,提供可視化的數(shù)據(jù)顯示方式
負(fù)載發(fā)生器:用于產(chǎn)生負(fù)載栅螟,通常以多線程或者多進(jìn)程的方式模擬用戶行為

測試計劃

用于描述一次性能測試,包含與本次性能測試所有有關(guān)的功能篱竭,也就是說本次性能測試的所有內(nèi)容是基于一個計劃的

Threads(Users)線程 用戶

  1. setup thread group
    特殊的線程組力图,執(zhí)行預(yù)測試操作,即測試前掺逼,執(zhí)行該定期線程組吃媒,類似init
  2. teardown thread group
    特殊的線程組,執(zhí)行測試后操作吕喘,即測試結(jié)束后赘那,執(zhí)行該定期線程組,類似end
  3. thread group(線程組)
    可以看做一個虛擬用戶組氯质,線程組中每一個線程都是一個虛擬用戶募舟,線程組中包含的線程數(shù)量在測試執(zhí)行過程中是不會發(fā)生改變的,類似action

Test Fragment(測試片段)
特殊的線程組闻察,在測試計劃中與線程組(Threads)處于一個層級拱礁,但是不被執(zhí)行,除非它是一個模塊控制器或者是被控制器所引用時才會被執(zhí)行

Config Element(配置元件)
提供對靜態(tài)數(shù)據(jù)配置的支持辕漂,如CSV Date Set Config可以將本地數(shù)據(jù)文件形成數(shù)據(jù)池(Date Pool)

Timer(定時器)
用于操作之間設(shè)置等待時間呢灶,等待時間是性能測試中常用的控制客戶端QPS的手段

QPS:Query Per Second 每秒查詢率,是一臺查詢服務(wù)器每秒能夠處理的查詢次數(shù)钉嘹,在因特網(wǎng)上鸯乃,作為域名系統(tǒng)服務(wù)器的性能經(jīng)常用每秒查詢率來衡量

Per Processors(前置處理器)
用于在實(shí)際的請求發(fā)出之前對即將發(fā)出的請求進(jìn)行特殊處理。例如跋涣,HTTP URL重寫修復(fù)符可以實(shí)現(xiàn)URL重寫缨睡,當(dāng)URL中有sessionID一類的session信息時,可以通過該處理器填充發(fā)出請求的實(shí)際的sessionID

Post Processors(后置處理器)
用于對Sampler發(fā)出請求后得到的服務(wù)器響應(yīng)進(jìn)行處理仆潮,一般用來提取響應(yīng)中的特定數(shù)據(jù)

Assertions(斷言)
用于檢查測試中得到的相應(yīng)數(shù)據(jù)等是否符合預(yù)期宏蛉,一般用來設(shè)置檢查點(diǎn),用以保證性能測試過程中的數(shù)據(jù)交互是否與預(yù)期一致

Listener(監(jiān)聽器)
用來對測試結(jié)果數(shù)據(jù)進(jìn)行處理和可視化展示的一系列元件性置。注意:不是用來監(jiān)聽系統(tǒng)資源的元件

Sample(取樣器)
向服務(wù)器發(fā)送請求拾并,記錄響應(yīng)信息,記錄響應(yīng)時間的最小單元

邏輯控制器
兩類元件
一、用于控制test plan中sampler節(jié)點(diǎn)發(fā)送請求的邏輯順序的控制器嗅义,常用的有if屏歹、switch Controller、Runtime Controller等
二之碗、用來組織可控制sampler節(jié)點(diǎn)的蝙眶,如事務(wù)控制器、吞吐量控制器
sample必須位于邏輯控制器下

Jmeter元件作用域和執(zhí)行順序

元件作用域
8類可執(zhí)行元件(測試計劃和線程組不屬于可執(zhí)行元件)褪那,其中幽纷,sample(取樣器)是典型的不與其他元件發(fā)生交互作用的元件,邏輯控制器只對其子節(jié)點(diǎn)的取樣器有效博敬,而其他元件(配置元件友浸,定時器,斷言偏窝,監(jiān)聽器)需要與sample等元件進(jìn)行交互
在Jmeter中收恢,元件的作用域是靠測試計劃的樹型結(jié)構(gòu)中元件的父子關(guān)系來確定的,作用域的原則是:

  • 取樣器(sample)元件不和其他元件相互作用祭往,因此不存在作用域的問題
  • 邏輯控制器(Logic Controller)元件只對其子節(jié)點(diǎn)的取樣器和邏輯控制器作用
  • 除Sample(取樣器)和Logic Controller(邏輯控制器)元件外伦意,其他6類元件,如果是某個取樣器的子節(jié)點(diǎn)硼补,則該元件對其父子節(jié)點(diǎn)起作用驮肉,如果其父節(jié)點(diǎn)不是取樣器,則其作用域是該元件父節(jié)點(diǎn)下的其他所有后代節(jié)點(diǎn)(包括子節(jié)點(diǎn)括勺,子節(jié)點(diǎn)的子節(jié)點(diǎn)等)

元件執(zhí)行順序

  1. 配置元件(config elements)
  2. 前置處理程序(Per-processors)
  3. 定時器(Timers)
  4. 取樣器(samples)
  5. 后置處理程序(Post-processors)
  6. 斷言(Assertions)
  7. 監(jiān)聽器(Listeners)

注意:
1.前置處理器缆八、后置處理器和斷言等元件功能只對取樣器作用,因此疾捍,如果在它們的作用域內(nèi)沒有任何取樣器,則不會被執(zhí)行
2.如果在同一作用域范圍內(nèi)有多個同一類型的元件栏妖,則這些元件按照它們在測試計劃中的上下順序依次執(zhí)行

小練習(xí)

測試計劃----添加----Threads-----線程組
線程組----添加----Sample----Http請求
HTTP請求----添加----定時器----Constant Throughput Timer

Constant Throughpout Timer---->Target throughput:目標(biāo)吞吐量乱豆,注意這里是每分鐘發(fā)送的請求數(shù),實(shí)際填的數(shù)值為:60 *QPS吊趾,比如要測負(fù)載達(dá)到30QPS宛裕,那就是30 *60

Http請求----添加----監(jiān)聽器----查看結(jié)果樹/聚合報告

聚合報告參數(shù)解析:
Label:每個Jmeter的element(例如Http Request)都有一個Name屬性,這里顯示的是Name屬性的值
#Samples(樣本):表示這次測試一共發(fā)送了多少請求论泛,如果模擬10個用戶揩尸,每個用戶迭代十次,那么這里就是100
Average:平均響應(yīng)時間——默認(rèn)情況下是單個Request的平均響應(yīng)時間屁奏,當(dāng)使用了Transaction Controller時岩榆,也可以以Transaction為單位顯示平均響應(yīng)時間
Median:中位數(shù),50%用戶的響應(yīng)時間小于該值,注意它與average平均響應(yīng)時間的區(qū)別
90%Line:90%的請求耗時都在這個時間之下
Min:最小響應(yīng)時間
Max:最大響應(yīng)時間
Error%:本次測試中出現(xiàn)的錯誤的數(shù)量/請求的總數(shù)
Throughput:吞吐量——默認(rèn)情況下表示每秒完成的請求數(shù)勇边,當(dāng)使用了Transaction Controller(事務(wù)控制器)時犹撒,也可以表示類似Load Runner中的Transaction per Second數(shù)
KB/sec:每秒從服務(wù)器端接受的數(shù)據(jù)量,相當(dāng)于LoadRunner中的Throughput/Sec
時間單位都是毫秒

Jmeter斷言(檢查點(diǎn))

斷言是在請求的返回層面上增加一層判斷機(jī)制粒褒,因為請求成功了并不代表結(jié)果一定正確识颊,因此需要檢測機(jī)制提高測試準(zhǔn)確性

1. 響應(yīng)斷言

微信截圖_20190514144637.png

模式匹配規(guī)則:
包括:返回結(jié)果包括你返回的內(nèi)容
匹配:根據(jù)指定內(nèi)容進(jìn)行匹配
Equals:返回結(jié)果與你指定的結(jié)果一致
Substring:返回結(jié)果是指定結(jié)果的字串
否:不進(jìn)行匹配

2. Size Assertion
輸入指定的字節(jié),通過選擇判斷符來進(jìn)行比較

微信截圖_20190514152150.png

3. Duration Assertion(斷言持續(xù)時間)
如果響應(yīng)時間大于設(shè)置的持續(xù)時間奕坟,則斷言失敗祥款,反之成功

參數(shù)化

  1. 前置處理器----用戶參數(shù)


    微信截圖_20190514153555.png

    微信截圖_20190514153619.png
  2. CSV數(shù)據(jù)配置
    1.線程組設(shè)置循環(huán)次數(shù),線程組下插入的HTTP請求負(fù)責(zé)插入數(shù)據(jù)
    2.創(chuàng)建一個文本文檔月杉,標(biāo)準(zhǔn)的CSV格式文件镰踏,每一行數(shù)據(jù)對應(yīng)文檔一條記錄,不用字段之間使用英文 , 分隔
    3.創(chuàng)建一個CSV元件沙合,聲明數(shù)據(jù)源以及編碼集以及解析格式
    ?Filename:文件路徑
    ?File encoding:編碼集
    ?Variable Names:變量名
    ?Delimiter:分隔符
    4.要將CSV中解析的數(shù)據(jù)設(shè)置進(jìn)JSON格式的數(shù)據(jù)報文奠伪,語法${變量名}

  3. 隨機(jī)參數(shù)化
    選項----函數(shù)助手對話框----_Random----設(shè)置最小值最大值,拷貝生成的變量表達(dá)式----粘貼到sample當(dāng)中的參數(shù)值當(dāng)中

Jmeter集合點(diǎn)

在需要集合的元件前-----添加定時器------Synchronizing Timer

參數(shù)說明
Number of Simulated Users to Group by------集合點(diǎn)的集合數(shù)
Timeout in milliseconds------到達(dá)設(shè)置的集合數(shù)之后等待的時間(單位:毫秒)

Jmeter關(guān)聯(lián)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末首懈,一起剝皮案震驚了整個濱河市绊率,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌究履,老刑警劉巖滤否,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異最仑,居然都是意外死亡藐俺,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門泥彤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來欲芹,“玉大人,你說我怎么就攤上這事吟吝×飧福” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵剑逃,是天一觀的道長浙宜。 經(jīng)常有香客問我,道長蛹磺,這世上最難降的妖魔是什么粟瞬? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮萤捆,結(jié)果婚禮上裙品,老公的妹妹穿的比我還像新娘俗批。我一直安慰自己,他們只是感情好清酥,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布扶镀。 她就那樣靜靜地躺著,像睡著了一般焰轻。 火紅的嫁衣襯著肌膚如雪臭觉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天辱志,我揣著相機(jī)與錄音蝠筑,去河邊找鬼。 笑死揩懒,一個胖子當(dāng)著我的面吹牛什乙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播已球,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼臣镣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了智亮?” 一聲冷哼從身側(cè)響起忆某,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎阔蛉,沒想到半個月后弃舒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡状原,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年聋呢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颠区。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡削锰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瓦呼,到底是詐尸還是另有隱情喂窟,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布央串,位于F島的核電站,受9級特大地震影響碗啄,放射性物質(zhì)發(fā)生泄漏质和。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一稚字、第九天 我趴在偏房一處隱蔽的房頂上張望饲宿。 院中可真熱鬧厦酬,春花似錦、人聲如沸瘫想。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽国夜。三九已至减噪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間车吹,已是汗流浹背筹裕。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留窄驹,地道東北人朝卒。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像乐埠,于是被迫代替她去往敵國和親抗斤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348