性能測試工具Jmeter

一、Jmeter腳本錄制

Jmeter使用概述


錄制腳本首先我們需要設置Jmeter:

① 測試計劃>添加>Threads(Users)>線程組;

② 工作臺>添加>非測試元件>HTTP代理服務器。


那么又如何配置HTTP代理服務器呢:

??Global settings Jmeter代理服務器監聽的端口,默認8080,可以修改為:8888;

??目標控制器:測試計劃>線程組;(這樣設置后,錄制下來的HTTP請求會保存在“測試計劃>線程組”下面)

??分組:每個組放入一個新的控制器,這樣設置后JMeter會將我們錄制下來的HTTP請求進行適當的分組,效果后面能看到;

??“記錄HTTP信息頭”“添加斷言”“Regex matching(正則匹配)”保持默認配置

??HTTP Sampler Settings和Content-type,保持默認

??包含模式(重要配置項:只有請求的url,匹配包含模式中的正則表達式,這條請求才會被錄制):如添加“www.baidu.com.*”我們的請求,只有以www.baidu.com開頭的請求才會被Jmeter錄制下來;

??排除模式(重要配置項:只有請求的url,匹配排除模式中的正則表達式,這條請求就會被過濾):如添加“.*\.(js|css|png).*”當HTTP請求中包含,js,或css,或png,就會被Jmeter排除掉;

設置Jmeter


Jmeter的HTTP代理服務器就配置好了,在啟動這個代理服務器之前,我們還應該去瀏覽器添加一個本地代理(本文以火狐瀏覽器做例,其他瀏覽器設置代理的方法也是一樣),如下:

瀏覽器代理設置

設置好Jmeter和瀏覽器的HTTP代理服務器之后,瀏覽器訪問任何url地址,都會轉發到127.0.0.1:8888,也就是Jmeter的代理服務地址,同時被jmeter記錄下來,這樣我們就可以開始錄制腳本了。


啟動Jmeter的HTTP代理服務器

二、Jmeter測試腳本

利用Jmeter測試組件對錄制腳本進行加工和編輯;

測試組件介紹:

1.線程組,是Jmeter組件中最核心的測試組件

如:打開主頁,登錄等操作都是Jmeter線程來完成的;線程組,就是管理這些線程的組件;

線程組中的配置項:

① 線程數:Jmeter線程的數量,決定著Jmeter用多少個線程去同時執行這些操作(如圖模擬10個用戶),線程數越大,服務器所承受的壓力就越大;

② Ramp-up Period:啟動所有Jmeter線程所花費的時間,為了防止Jmeter測試時,瞬間給被測服務器施加太大的壓力,從第一個開始慢慢慢慢增加到第10個;(在十秒鐘啟動10個線程,平均每秒增加1個線程,直到10個都啟動完成);Ramp-up Period越大,被測服務器施加的壓力幅度越平緩;

③ 循環次數:決定線程重復循環執行的次數;(如:勾選永遠,主頁>登錄也>登錄的動作將無限循環的執行下去)

④ 調度器:可以詳細的設置線程執行測試的時間;(持續時間:設置測試能持續執行多久;持續時間填寫之后,上面的結束時間就失效;啟動延遲:從當前時刻算起,延遲幾秒才開始執行測試,填寫之后,上面的啟動時間也就失效了)

?2.采樣器(Sample)

添加采樣器:

添加采樣器

Connect timeout:指的是,在Jmeter發送請求的時候,會等待多久直到跟服務器的連接正確的建立起來,如果超過這個時間,連接還沒有建立,那么Jmeter就判斷這次請求是失敗的;

Response timeout:Jmeter會等待多久,直到收到服務端的響應數據。

他們的單位都是:“毫秒”;

HTTP請求:Implementation,一般選擇空或HttpClient4;Content encoding:如果前面的方法是“POST”,“PUT”“PATCH”和“(。。。沒聽出來)”這四種方式時的,會使用哪一種字符編碼方式;

路徑:請求的url路徑

參數:也可以手動添加參數


3.斷言


給某個請求添加斷言:

Apply to指定了斷言的作用范圍;保持默認,只對當前的采樣器生效;

要測試的響應字段:指的是,斷言要檢查的目標;重點關注“響應文本”“響應代碼”和“響應信息”這三個;響應文本:指的是服務器返回的數據;響應代碼:HTTP的響應code(如:200;500;403等);響應信息:http的響應massage:OK,error等;

模式匹配規則和要測試的模式;

例子:

響應代碼 Equals 200;響應代碼 = 200

響應信息 Equals OK;響應信息 = OK

響應文本 包括 夜空黑;響應文本中包括 “夜空黑”三個字 這樣的HTTP請求即為成功的,否則失敗;

4.參數化

如圖:登錄名密碼為固定的20000000000/netease123,模擬的是同一個用戶對操作進行十次。如果要模擬不同用戶對頁面進行操作,就需要對用戶名密碼進行參數化;

先在系統中注冊10個用戶,用戶名密碼寫在一個txt文本中,如下圖,中間用英文的逗號隔開;


首先在線程組下添加>配置元件>CSV Data Set Config,這個組件可以幫助我們實現參數化

Filename:配置文件的絕對路徑;

File encoding:JMeter在讀取文件的時候使用的字符編碼方式;

Variable Names:配置文件中各列代表的數據項;

Delimiter:配置文件中不同列之間的分隔符

接下來的幾個配置項全部選用默認值

在login頁面的body中修改需要傳入的數據,為剛才測試組件中設置的項完全一致


5.HTTP?Cookie管理器:

>實際的登錄動作前后,進行了兩次checkLogin;

>在login操作時,開發者工具(F12)的ResponseHeaders中可以看到,進行了一些set-Cookie操作;換句話說,服務端會返回一些cookie信息給瀏覽器,瀏覽器會自動的在后續的所有請求中自動的帶上這些Cookie;

>但在Jmeter不會錄制下這些Cookie,正是因為缺少了這個cookie,我們的jmeter線程,即使成功執行了登錄操作,后續的請求,服務器依然會認為我們沒有登錄;

>那為什么Jmeter沒有錄制下這些cookie呢?因為這些cookie常常是不固定的,每次測試都有可能不一樣,把這些cookie錄制到Jmeter,反而會有些問題;

? ?>那當前的腳本需要進行怎樣的加工,才能生效呢?我們在此需要引入另一個測試組件:HTTP Cookie管理器

添加:

勾選“每次反復清除Cookies”,腳本反復執行登錄測試,每次執行主頁,登錄頁,登錄這一輪測試后,會清除cookie,下一次執行操作時,仍會以一個未登錄的狀態來執行主頁,登錄頁,登錄的操作;

添加HTTP Cookie管理器后執行測試,再查看結果樹checkLogin信息,可以看到服務端返回了用戶信息,此時服務端認為我們真正完成了登錄;

三、JMeter測試執行

查看結果樹

添加:

取樣器結果:

Load time:請求從發出到接收到完整的返回結果的時間;(即響應時間)

Latency:請求從發出到接收開始接收到響應,一般略小于Load time;

Connect Time:JMeter和服務端建立連接所花費的時間,這個時間端已經包含在Load time中了;

Size in bytes:這次請求的大小;

請求

響應數據:服務端返回的數據

查看結果樹這個監聽器,需要每個請求的詳細信息都顯示出來,所以對系統資源是有一定開銷的。如果在測試的時候,若系統的吞吐率很高,查看結果樹會對性能帶來比較大的影響,不建議用這個監聽器,以免影響測試結果;

聚合報告:

響應時間曲線

添加>監聽器>Response Time Graph

Interval(ms):橫坐標的統計間隔;Jmeter會在10秒內的執行的結果做一個平均值的聚合;

Sampler label

selection:可以設置過濾請求,只顯示一部分的請求;(如下圖:過濾以46和18開頭的請求)

只顯示46開頭的請求

常見問題和解決思路:

小壓力(如2個并發數)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,978評論 2 374

推薦閱讀更多精彩內容

  • 主要文體來自 CDNS:https://www.cnblogs.com/ceshisanren/p/5639895...
    Amano閱讀 11,033評論 3 27
  • JMeter有兩種類型的控制器:取樣器和邏輯控制器。 取樣器指示JMeter向一個服務器發送請求。例如,如果你想讓...
    七月尾巴_葵花閱讀 1,692評論 0 3
  • 早起,七點 八點左右開始學習 近兩個小時復習以及聽完EnglishPod C0022 而后是高數上習題1.1(B)...
    披著馬甲寫日記閱讀 209評論 0 0
  • 我曾經上過兩個學期的京劇選修課,一次在大二,一次在大四。大二的時候剛好香港回歸,大四又遇上八十年校慶,所以老師都組...
    auding閱讀 520評論 2 1
  • 君子最引以為恥的,就是自己的名聲超過了自己的實力,名聲超過了實力,就成了欺世盜名的小人了,那怎么受得了!毀譽是大事...
    華杉2009閱讀 1,236評論 0 2