1. 下載JMeter包,而後直接解壓值電腦某個地方:web
https://jmeter.apache.org/download_jmeter.cgiapache
如今最新的版本是4.0了,可是我是用3.3版本爲例子給你們演示一遍如何建立性能測試Project並添加測試用例的哈。瀏覽器
2. 如何打開JMeter呢?服務器
方式一: 雙擊Jmeter解壓之後bin目錄下的ApacheJMeter.jar文件就能夠打開了。cookie
方式二:在cmd窗口輸入jmeter,而後回車,就會自動打開應用界面:多線程
固然,這種方式可能不太好,由於萬一關掉這個cmd窗口了,這個JMeter程序就自動退出了,因此建議第一種。併發
若是以爲每次都去這個目錄下面打開程序不方便,那就右鍵該jar包->發送至桌面快捷方式,而後每次都雙擊桌面上的快捷方式就能夠了哦。app
3. JMeter的工做原理是什麼?工具
The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.性能
Apache JMeter may be used to test performance both on static and dynamic resources, Web dynamic applications.
It can be used to simulate a heavy load on a server, group of servers, network or object to test its strength or to analyze overall performance under different load types.
JMeter is not a browser, it works at protocol level. As far as web-services and remote services are concerned, JMeter looks like a browser (or rather, multiple browsers); however JMeter does not perform all the actions supported by browsers. In particular, JMeter does not execute the Javascript found in HTML pages. Nor does it render the HTML pages as a browser does (it's possible to view the response as HTML etc., but the timings are not included in any samples, and only one sample in one thread is ever displayed at a time).
就是說Jmeter工做在協議層,可以不啓動應用程序,而只是在後臺模擬應用程序發送的協議請求給服務器。
Jmeter應用程序自己只是一個進程,它所控制的是不少線程。
具體怎麼發送請求就看你對這個API的模擬參數設置了,例如:
情景一:測試某個API在30個(或很是多個)用戶同時併發請求時的情景,記錄服務器各項性能指標。
情景二:測試某個API在某段時間內持續不間斷被多個用戶訪問時的場景,記錄服務器各項性能指標。
4. JMeter包含哪些基本功能塊呢?
一:各類元器件:(右鍵Test Plan->Add,全部的菜單都有子菜單,這些都是元器件)
Thread : 用來定義你是準備用什麼測試場景去測一個功能點,性能測試是在功能測試之上的,因此說性能測試的時候,是必定要有功能測試用例的哦,而後你就根據這個用例選定Thread 類型。
Config Element : 是用來給Test Plan或者Test API添加各類類型參數,header,cookie之類的。
Timer : 顧名思義,就是定時器嘍。
Pre Processors : 就是在進程啓用之前要作的一些預處理操做了。
Post Processors : 就是在進程結束之後要作的一些善後操做了。
Assertions : 就是一個線程的斷言,程序並不能本身去判斷一個現成怎樣纔是成功或者失敗,因此須要咱們去幹涉一下。
Listener : 就是對Thread Group的監聽。由於一個線程組有不少性能參數,每次都要把數據保存而且進行一些簡單的處理,才能轉換成咱們肉眼能夠看懂的table,chart之類的信息。這個獲取響應參數而且轉換過程就能夠認爲是Listener要作的事情了。
二: 工具條:
可讓咱們快速對項目或者線程組進行一些操做,而且在最右側的0/170部分是顯示 「咱們此次一共有多少個線程,如今還剩下多少個沒運行「 。
感嘆號那裏提示有多少個錯誤。
時間那一塊提示咱們花了多長時間來運行選擇的Test Plan。
掃把那裏就是清除以前的結果記錄。
三 : 最上面的菜單我就很少說了,本身點吧。
四 : 工做區:
5. 如何快速建立一個測試用例呢?
我這裏設置20個用戶一塊兒併發,而且一個線程有錯誤的話也繼續執行下一個線程。
而後添加Basic 信息:
上圖具體什麼意思,我想作過API測試的都知道,因此就很少強調了。
不過必定要注意:
Server Name or IP必定要去掉「http://「這個URL前綴哈。
Path就是去掉protocol, server name以後剩下的URL部分。
Port Number看本身測試的URL是否有來決定是否添加。
Method就是Get , Post之類的了。
具體的URL中的參數能夠直接放到Path裏,也能夠添加到下面的Parameters區域哈。
好比說Header:
好比說從csv文件中讀取參數而且參數化:
好比說添加Response Assertion斷言:
JMeter每次只能打開一個Test Plan,
每一個Test Plan至針對一個Test API,
一個Test API能夠有多個測試情景,
一個測試情景對應一個Thread Group,
一個Thread Group能夠看作一個Test Case。
一個Thread Group的測試結果能夠用多個結果查看器(Listener)展現。
Listener添加越多,該Test Plan執行起來就耗時越久。
一. Summary Report : 是最經常使用最直接的展現組件:
每一個Case都會在這裏有一行結果。
另外會加上總的Test Plan的執行結果。
我沒有執行,因此這裏是空的。
二. View Results Tree : 用來查看每一個線程請求的具體信息 :
若是執行了,這裏的結果就是每一個URL測試狀況,相似Postman或者在瀏覽器控制檯看到的請求列表。
這個組件在debug的時候很必要,可是調試完了就Disable吧,太費時。。。
我還添加了別的展現組件,這個是JMeter沒有的,我下載的其餘插件。具體如何操做請看個人另外文章,由於這個內容太多了。
謝謝閱讀哦~~