Jmeter:使用 JMeter 進行壓力測試

原文:# 使用 JMeter 進行壓力測試

一.前言

壓力測試是每一個Web應用程序上線之前都需要做的一個測試,他可以幫助我們發現系統中的瓶頸問題,減少發布到生產環境后出問題的幾率;預估系統的承載能力,使我們能根據其做出一些應對措施。所以壓力測試是一個非常重要的步驟,下面我帶大家來使用一款壓力測試工具JMeter。

二.關于JMeter

Apache JMeter是Apache組織開發的基于Java的壓力測試工具。用于對軟件做壓力測試,它最初被設計用于Web應用測試,但后來擴展到其他測試領域。 它可以用于測試靜態和動態資源,例如靜態文件、Java 小服務程序、CGI 腳本、Java 對象、數據庫、FTP 服務器, 等等。JMeter 可以用于對服務器、網絡或對象模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體性能。另外,JMeter能夠對應用程序做功能/回歸測試,通過創建帶有斷言的腳本來驗證你的程序返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正則表達式創建斷言。
Apache jmeter 可以用于對靜態的和動態的資源(文件,Servlet,Perl腳本,java 對象,數據庫和查詢,FTP服務器等等)的性能進行測試。它可以用于對服務器、網絡或對象模擬繁重的負載來測試它們的強度或分析不同壓力類型下的整體性能。你可以使用它做性能的圖形分析或在大并發負載測試你的服務器/腳本/對象。

官網:http://jmeter.apache.org/download_jmeter.cgi

這里我選用了 4.0 版本的二進制包:http://mirror.bit.edu.cn/apache//jmeter/binaries/apache-jmeter-4.0.zip

更多內容介紹 https://baike.baidu.com/item/Jmeter/3104456

三.準備工作

因為JMeter是使用JAVA寫的,所以使用JMeter之前,先安裝JAVA環境,本文就不講不如安裝JAVA環境了。.

JAVA環境變量配置:https://jingyan.baidu.com/article/fd8044fa2c22f15031137a2a.html

解壓下載的二進制包,進入bin目錄,使用jmeter.bat啟動程序。

啟動之后會有兩個窗口,一個cmd窗口,一個JMeter的 GUI。前面不要忽略CMD窗口的提示信息:

image

JMeter:

image

CMD窗口的提示信息

================================================================================
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use NON GUI Mode:
   jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
   Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
================================================================================

上面的意思就是:不要使用GUI運行壓力測試,GUI僅用于壓力測試的創建和調試;執行壓力測試請不要使用GUI。使用下面的命令來執行測試:

 jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]

并且修改JMeter批處理文件的環境變量:HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"

更改語言為中文

官方默認為我們提供了簡體中文。通過 【Options】->【Choose Language】變更為簡體中文

image

四.創建測試

1.創建線程組

在“測試計劃”上右鍵 【添加】-->【Threads(Users)】-->【線程組】。

image

設置線程數和循環次數。我這里設置線程數為500,循環一次。

image

2.配置元件

在我們剛剛創建的線程組上右鍵 【添加】-->【配置元件】-->【HTTP請求默認值】。

image

配置我們需要進行測試的程序協議、地址和端口

image

當所有的接口測試的訪問域名和端口都一樣時,可以使用該元件,一旦服務器地址變更,只需要修改請求默認值即可。

3.構造HTTP請求

在“線程組”右鍵 【添加-】->【samlper】-->【HTTP 請求】設置我們需要測試的API的請求路徑和數據。我這里是用的json

image

4.添加HTTP請求頭

在我們剛剛創建的線程組上右鍵 【添加】-->【配置元件】-->【HTTP信息頭管理器】。

因為我要傳輸的數據為json,所以設置一個 Content-Type:application/json

image

5.添加斷言

在我們剛剛創建的線程組上右鍵 【添加】-->【斷言】-->【響應斷言】。

根據響應的數據來判斷請求是否正常。我在這里只判斷的響應代碼是否為200。還可以配置錯誤信息

image

6.添加察看結果樹

在我們剛剛創建的線程組上右鍵 【添加】-->【監聽器】-->【察看結果樹】。

直接添加,然后點擊運行按鈕就可以看到結果了。

image

7.添加Summary Report

在我們剛剛創建的線程組上右鍵 【添加】-->【監聽器】-->【Summary Report】。

直接添加,然后點擊運行按鈕就可以看到結果了。

image

為了不引起不必要的爭論,隱藏了TPS。此數據不具備任何價值,僅僅為文章演示。

8.測試計劃創建完成

記得點保存。

五.執行測試計劃

前面我們說過,執行測試計劃不能用GUI,需要用命令行來執行。

image

我這里執行的命令為:

jmeter -n -t testplan/RedisLock.jmx -l testplan/result/result.txt -e -o testplan/webreport

說明:

testplan/RedisLock.jmx 為測試計劃文件路徑
testplan/result/result.txt 為測試結果文件路徑
testplan/webreport 為web報告保存路徑。

Web報告如下:

image

六.寫在最后

線程數量和循環次數將會影響最終的測試報告,請大家多多測試。

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

推薦閱讀更多精彩內容