我也不知道為什么喜歡在博客開頭用一個引用,反正看著舒服。
JMeter系列第一篇,安裝篇。轉載請注明出處http://blog.lzoro.com
碎碎念
前段時間公司的新項目上線了一段時間之后,隨著運營規模的變大,老大要求對系統進行一個摸底,那么肯定有人要為這個偉大的工作獻身了,是的,那個人就是我。誰讓我是就是打雜的呢。消消氣好了,畢竟代碼只是副業。
摸底,那是摸什么底呢,當然是我們系統的底啦,知(看)己(bug)知(好)彼(多),方(需)能(要)百(好)戰(好)百(改)勝(進)。所以就有了以下內容的誕生。
說實話,從事Java的時間也不算短了,但是以前還真的很少進行性能測試有關的工作,趁這次好好惡補了一下,寫幾篇博客沉淀一下,不然牛都白吹了。
什么是性能測試
是不是很一板一眼,沒錯,我也這么覺得。<百度百科>性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。負載測試和壓力測試都屬于性能測試,兩者可以結合進行。通過負載測試,確定在各種工作負載下系統的性能,目標是測試當> 負載逐漸增加時,系統各項性能指標的變化情況。壓力測試是通過確定一個系統的瓶頸或者不能接受的性能點,來獲得系統能提供的最大服務級別的測試。
性能測試,就個人的理解通俗來講,在單元測試和集成測試和回歸測試等常規測試的基礎上(就是代碼邏輯在正常情況下表現正常的情況),模擬大量用戶高并發(短時間)地對系統進行訪問,來收集系統在高并發情況下可能出現的問題,以及各項系統性能指標。
那么,問題來了。該怎么進行性能測試呢,所謂磨刀不誤砍柴工,當然要是你是牛逼得上天了的人,完全可以自己寫代碼來處理,但考慮到牛逼到上了天的人應該不會來看我這篇博客。
所以工具還是要有的,所以主角就要登場了,有請,JMeter先生,請發表。
什么是JMeter
嗯,大家好,我是JMeter,在介紹我自己之前,有句話不知當講不當講(作者:講)。本來我想介紹一下我一個同行,他叫LoadRunner,HP家的小伙子,聽說好像比我牛逼一點,反正我是不服,所以還想說要不介紹一下他,大家對比一下。
簡單來說,JMeter就是一個Java開發的性能測試工具,嗯。(JMeter:就這樣?)<還是來自百度百科(作者懶)>本工具是Apache組織開發的基于Java的壓力測試工具。用于對軟件做壓力測試,它最初被設計用于Web應用測試,但后來擴展到其他測試領域。 它可以用于測試靜態和動態資源,例如靜態文件、Java 小服務程序、CGI 腳本、Java 對象、數據庫、FTP 服務器, 等等。JMeter 可以用于對服務器、網絡或對象模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體性能。另外,JMeter能夠對應用程序做功能/回歸測試,通過創建帶有斷言的腳本來驗證你的程序返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正則表達式創建斷言。
Apache jmeter 可以用于對靜態的和動態的資源(文件,Servlet,Perl腳本,java 對象,數據庫和查詢,FTP服務器等等)的性能進行測試。它可以用于對服務器、網絡或對象模擬繁重的負載來測試它們的強度或分析不同壓力類型下的整體性能。你可以使用它做性能的圖形分析或在大并發負載測試你的服務器/腳本/對象。
下載安裝
環境說明
1、Windows10 雙核 8G
2、JDK1.8
3、JMeter3.2
JMeter是利用Java進行開發的,所以JDK環境也是必備的,如果你的機子沒有JDK環境,那么請安裝一個,如果你不會安裝JDK,那么請放棄吧
JMeter
- 下載地址:官網
-
安裝步驟:不好意思,沒有安裝步驟。
1、下載
2、存放到自己喜歡的軟件目錄
3、解壓縮
4、進入bin目錄
5、雙擊jmeter.bat
6、是不是很驚喜
寫了這么多,安裝(根本就沒有安裝)就這么一點,是不是有種被騙的感覺。鑒于你看到這里了,博主肯定不能讓你失望,所以祭出優下面的大招。優化配置
鑒于個人自己是跑過測試的,所以深知上萬并發測試跑到一半OOM(內存溢出)那種痛苦,所以決定分享一下優化配置(我知道你們可能已經看過了,但是請你裝作不知道再往下看看吧,會有驚喜的)
1、進入JMeter的bin目錄
2、找到jemeter.bat,并用文本編輯器打開
3、找到set HEAP那行
3.1、修改為:set HEAP=-Xms1024m –Xmx1024m
3.2、或調整堆內存中新生代:set NEW=-XX:NewSize=256m-XX:MaxNewSize=256m。
3.3、或調整永久代:set PERM=-XX:PermSize=128m-XX:MaxPermSize=256m
注:具體的值示自己機器而定,3.2和3.3在JMeter3.2中好像已經去除了,可以自己動手實驗一下。
分布式使用
單臺機器可以跑的并發量和配置有很大關系,但是也是有上限的,所以JMeter也有提供分布式使用,Apache家果然是良心出品。
介紹一下怎么配置:
1、進入JMeter的bin目錄
2、找到jmeter.properties,并用記事本打開
3、找到remote_hosts那行,進行修改,格式:remote_hosts=127.0.0.1:1099,192.168.1.1:1099,192.168.1.2:1099
表示有三臺遠程機器,一臺本機,兩臺局域網內機器,機器之前用","分隔,端口默認1099
5、分別在配置的機器上安裝JMeter,并啟動jmeter-server.bat(Linux下是.sh)
6、在本機啟動jmeter.bat
7、配置好測試計劃后,按下圖啟動就OK了
注意:可以會有部分從機器無法通信,這個時候就需要檢查防火墻有沒有開放相應的端口了,Good luck~~
好了,本篇博客教學到此為止,如果有描述不對的地方,歡迎指正,反正我是不會改的。
等一下,是不是看了這么久,心里臥槽:說好的驚喜呢,一點都沒有好嗎?
沒錯,我就是要騙你看完的
[自娛自樂,其實根本就沒人看]
下回預告
下篇博客:Jmeter的具體使用,包括新建測試計劃,Beanshell和CSV進行參數化,結果監聽,服務器監控等,不定期更新,敬請期待。