JMeter:一個簡單的測試計劃怎么做?

一、JMeter概述

▲ JMeter簡介

Apache JMeter?是Apache組織開發(fā)的一款開源軟件球化,是典型的純Java開發(fā)的應(yīng)用程序,可以在不同平臺比如Windows又厉、Linux或macOS系統(tǒng)上進行軟件測試菠镇。JMeter主要用于應(yīng)用程序的功能負載測試以度量軟件的性能,也可以用于其他類型的測試比如接口測試禀梳、API測試等杜窄。

▲ JMeter版本

JMeter不同的版本,功能有所差異算途,對JDK的支持也不盡相同塞耕。新的JMeter版本有些功能會逐漸改進完善,還會引入新的功能組件,性能也會逐步提升。因此在JMeter官方網(wǎng)站的最佳實踐中嘴瓤,建議用戶無論如何最好使用最新的JMeter版本扫外。

最新版本下載頁面鏈接:https://jmeter.apache.org/download_jmeter.cgi

這里以JMeter5.2.1版本進行介紹。

▲ JMeter與Loadrunner區(qū)別

▲JMeter GUI界面

當JMeter以GUI模式運行時廓脆,窗口主要由三部分構(gòu)成:

1.功能區(qū)

上方菜單欄筛谚,下方工具欄。菜單欄展示了JMeter提供的功能菜單停忿,而工具欄中的圖標是常見功能的快捷方式驾讲。

2.視圖區(qū)

以樹狀結(jié)構(gòu)呈現(xiàn)JMeter元素,其中“Test Plane”是樹的根節(jié)點席赂,每一個節(jié)點就是一個JMeter元素吮铭。在此區(qū)域可以添加、刪除節(jié)點或者通過拖曳調(diào)整節(jié)點的位置颅停。

3.內(nèi)容區(qū)

當在視圖區(qū)選中一個JMeter元素節(jié)點時谓晌,內(nèi)容區(qū)則會相應(yīng)地顯示該元素的內(nèi)容。這時可以對其內(nèi)容進行查看便监、設(shè)置等操作扎谎。

二碳想、JMeter測試組成

JMeter構(gòu)建測試類似于組裝一臺智能電子設(shè)備,比如智能手機毁靶。智能手機由CPU胧奔、內(nèi)存、輸入輸出設(shè)備(比如USB接口预吆,攝像頭等)龙填、屏幕、電池等一系列物理部件構(gòu)成的拐叉。

JMeter測試也是由一系列JMeter元素組合起來構(gòu)成的岩遗,JMeter提供了構(gòu)建測試的所有元素,你可以隨心所欲的將這些元素組裝起來完成你想要的測試凤瘦。

JMeter元素有以下四種類型的測試元素:

1)測試計劃

2)線程組

3)組件

包含配置元件宿礁、前置處理器、定時器蔬芥、后置處理器梆靖、斷言與監(jiān)聽器

4)控制器

包括取樣器、邏輯控制器與測試片段

(1) 測試計劃

測試計劃描述了JMeter測試在運行時執(zhí)行的一系列步驟笔诵。完整的測試計劃由一個或多個線程組返吻、邏輯控制器、取樣器乎婿、監(jiān)聽器测僵、定時器、斷言和配置元件組成谢翎。

測試計劃元素是JMeter測試樹的根節(jié)點捍靠,是唯一的,所有的測試元素節(jié)點都位于根節(jié)點之下岳服。

(2)線程組

在手工測試中剂公,測試用例由測試工程師手動執(zhí)行完成。而性能測試與自動化測試的測試用例由選擇的測試工具代替測試工程師來執(zhí)行吊宋。JMeter執(zhí)行測試的任務(wù)是由線程組來完成的纲辽。打個比方,線程組相當于手工測試中執(zhí)行測試用例的測試工程師璃搜。

線程組控制JMeter用來執(zhí)行測試的線程數(shù)拖吼。要模擬多少個用戶(稱之為虛擬用戶)來執(zhí)行測試,可以通過修改線程組的線程數(shù)來實現(xiàn)这吻。比如將線程數(shù)設(shè)置為10吊档,表示模擬10個用戶執(zhí)行測試。

所有的取樣器與邏輯控制器都必須位于線程組下唾糯,從這個角度理解怠硼,JMeter測試計劃真正開始于線程組鬼贱。其他元素,例如監(jiān)聽器香璃,可以直接放在測試計劃下这难,在這種情況下,它們將作用于所有的線程組葡秒。一個測試計劃下可以有多個線程組姻乓,在測試計劃中可以配置以并行或順序方式啟動多個線程組。

(3) 組件

JMeter中最基本的元素為元件眯牧,元件是JMeter測試中的最小功能單元蹋岩,每個元件都具有某種特定的功能。比如“Regular Expression Extractor”元件学少,可以實現(xiàn)利用正則表達式提取響應(yīng)數(shù)據(jù)的功能剪个。

JMeter提供了很多元件,為了方便用戶使用與管理眾多的元件旱易,JMeter將多個功能類似或邏輯上相關(guān)的元件歸為一類禁偎,稱為組件腿堤。JMeter包含六大組件: 配置元件阀坏、前置處理器、定時器笆檀、后置處理器忌堂、斷言與監(jiān)聽器。

● 配置元件

配置元件與取樣器密切相關(guān)酗洒。類似于配置文件之于軟件士修,軟件配置文件可以影響軟件的行為;同樣通過配置元件可以新增或修改請求內(nèi)容,實現(xiàn)對請求的自定義樱衷。

● 前置處理器

前置處理器在進行取樣器請求之前執(zhí)行一些操作棋嘲。

如果前置處理器附加到取樣器元素,那么它將在該取樣器元素運行之前執(zhí)行矩桂。

前置處理器經(jīng)常用于在運行之前修改取樣器請求的設(shè)置沸移,或更新未從響應(yīng)文本中提取的變量。

● 定時器

默認情況下侄榴,JMeter線程按順序執(zhí)行取樣器而不會出現(xiàn)暫停的情況雹锣。通過將定時器添加到線程組來指定延遲。如果不加延遲癞蚕,JMeter可能會在很短的時間內(nèi)發(fā)送過多的請求到服務(wù)器蕊爵,導(dǎo)致服務(wù)器負載過重而崩潰。

定時器可以使在其作用范圍內(nèi)的每個取樣器執(zhí)行前延遲一段時間桦山。

●后置處理器

后置處理器在取樣器請求完成后執(zhí)行一些操作攒射。

如果后置處理器附加到取樣器元素醋旦,那么它將在該取樣器元素運行之后執(zhí)行。

后處理器通常用于處理響應(yīng)數(shù)據(jù)会放,從中提取需要的值浑度。

● 斷言

斷言用于驗證取樣器請求或?qū)?yīng)的響應(yīng)是否返回了期望的結(jié)果。

JMeter測試是否執(zhí)行成功鸦概,結(jié)果是否預(yù)期箩张,都可以通過添加斷言來進行驗證。

● 監(jiān)聽器

監(jiān)聽器可以在JMeter執(zhí)行測試的過程中搜集相關(guān)的數(shù)據(jù)窗市,并將這些數(shù)據(jù)不同的形式先慷,比如樹、圖咨察、報告等呈現(xiàn)出來论熙。

比如,“圖形結(jié)果”監(jiān)聽器繪制響應(yīng)時間的曲線圖摄狱,“查看結(jié)果樹”監(jiān)聽器顯示取樣器請求和響應(yīng)的詳細信息等脓诡。

此外,有些監(jiān)聽器還可以將搜集到的測試數(shù)據(jù)保存到文件中以供以后使用媒役。

(4)控制器

●取樣器

取樣器用于構(gòu)建發(fā)給服務(wù)器處理的請求祝谚,即告訴JMeter怎樣將請求發(fā)送到服務(wù)器。例如酣衷,若要發(fā)送HTTP請求交惯,可以選擇“HTTP Request”取樣器,同時還可以通過添加配置元件來自定義請求穿仪。

● 邏輯控制器

取樣器請求默認是以先后順序依次執(zhí)行的席爽,某些情況下滿足了復(fù)雜的業(yè)務(wù)/場景需求。通過邏輯控制器可以控制JMeter發(fā)送請求的邏輯啊片,來實現(xiàn)復(fù)雜的業(yè)務(wù)/場景只锻。比如有選擇性執(zhí)行某些請求,循環(huán)執(zhí)行請求紫谷,整體執(zhí)行邏輯上有依賴關(guān)系的請求齐饮,交替執(zhí)行請求等等,都可以使用相應(yīng)的邏輯控制來實現(xiàn)碴里。

● 測試片段

測試片段元素是一種特殊類型的控制器沈矿,與線程組元素同級。它與線程組的區(qū)別在于咬腋,除非被Module Controller或Include Controller引用羹膳,否則它不會執(zhí)行。

測試片段主要用于測試腳本的重用根竿。

三陵像、一個簡單的JMeter測試計劃

以訪問百度為例(www.baidu.com)就珠。

按照如下步驟完成測試計劃:

1.在Test Plan節(jié)點上右鍵,選擇Add->Threads(users)->Thread Group

在Tread Properties項下醒颖,設(shè)置“Number of Threads(users)”為1

2.在Thread Group節(jié)點上右鍵妻怎,選擇Add->Sampler->HTTP Request

在Web Server項下,設(shè)置“Server Name or IP”為www.baidu.com

在HTTP Request項下泞歉,設(shè)置“Path”為/

3.在HTTP Request節(jié)點上右鍵逼侦,選擇Add->Assertions->Response Assertion

在Field to Test項下,選擇“Response Code”

在“Patterns to Test”項下腰耙,點擊“Add”榛丢,輸入200

4.繼續(xù)在HTTP Request節(jié)點上右鍵,選擇Add->Listener->View Results Tree

5.點擊“Save”快捷按鈕挺庞,然后輸入測試計劃文件名晰赞,保存

6.點擊“Start”快捷按鈕執(zhí)行測試,可以在“View Results Tree”中查看測試結(jié)果选侨。

JMeter測試查看結(jié)果樹顯示如下:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末掖鱼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子援制,更是在濱河造成了極大的恐慌戏挡,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件隘谣,死亡現(xiàn)場離奇詭異增拥,居然都是意外死亡,警方通過查閱死者的電腦和手機寻歧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秩仆,“玉大人码泛,你說我怎么就攤上這事〕嗡#” “怎么了噪珊?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長齐莲。 經(jīng)常有香客問我痢站,道長,這世上最難降的妖魔是什么选酗? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任阵难,我火速辦了婚禮,結(jié)果婚禮上芒填,老公的妹妹穿的比我還像新娘呜叫。我一直安慰自己空繁,他們只是感情好,可當我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布朱庆。 她就那樣靜靜地躺著盛泡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪娱颊。 梳的紋絲不亂的頭發(fā)上傲诵,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機與錄音箱硕,去河邊找鬼掰吕。 笑死,一個胖子當著我的面吹牛颅痊,可吹牛的內(nèi)容都是我干的殖熟。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼斑响,長吁一口氣:“原來是場噩夢啊……” “哼菱属!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起舰罚,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤纽门,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后营罢,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赏陵,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年饲漾,在試婚紗的時候發(fā)現(xiàn)自己被綠了蝙搔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡考传,死狀恐怖吃型,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情僚楞,我是刑警寧澤勤晚,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站泉褐,受9級特大地震影響赐写,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜膜赃,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一挺邀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦悠夯、人聲如沸癌淮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乳蓄。三九已至,卻和暖如春夕膀,著一層夾襖步出監(jiān)牢的瞬間虚倒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工产舞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留魂奥,地道東北人。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓易猫,卻偏偏與公主長得像耻煤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子准颓,可洞房花燭夜當晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容