JMeter基礎(chǔ)知識入門

摘要: 說起接口性能測試,大家第一個想到的應(yīng)該就是JMeter這個厲害的工具了吧,但是這個工具是什么呢,包含什么功能呢?

1. 下載JMeter包,然后直接解壓值電腦某個地方:

https://jmeter.apache.org/download_jmeter.cgi

現(xiàn)在最新的版本是4.0了,但是我是用3.3版本為例子給大家演示一遍如何創(chuàng)建性能測試Project并添加測試用例的哈。

2. 如何打開JMeter呢?

方式一: 雙擊Jmeter解壓以后bin目錄下的ApacheJMeter.jar文件就可以打開了。

方式二:在cmd窗口輸入jmeter,然后回車,就會自動打開應(yīng)用界面:

當(dāng)然,這種方式可能不太好,因為萬一關(guān)掉這個cmd窗口了,這個JMeter程序就自動退出了,所以建議第一種。

如果覺得每次都去這個目錄下面打開程序不方便,那就右鍵該jar包->發(fā)送至桌面快捷方式,然后每次都雙擊桌面上的快捷方式就可以了哦。

3. JMeter的工作原理是什么?

TheApache 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工作在協(xié)議層,能夠不啟動應(yīng)用程序,而只是在后臺模擬應(yīng)用程序發(fā)送的協(xié)議請求給服務(wù)器。

Jmeter應(yīng)用程序本身只是一個進程,它所控制的是很多線程。

具體怎么發(fā)送請求就看你對這個API的模擬參數(shù)設(shè)置了,例如:

情景一:測試某個API在30個(或非常多個)用戶同時并發(fā)請求時的情景,記錄服務(wù)器各項性能指標(biāo)。

情景二:測試某個API在某段時間內(nèi)持續(xù)不間斷被多個用戶訪問時的場景,記錄服務(wù)器各項性能指標(biāo)。

4. JMeter包含哪些基本功能塊呢?

一:各種元器件:(右鍵Test Plan->Add,所有的菜單都有子菜單,這些都是元器件)

Thread : 用來定義你是準(zhǔn)備用什么測試場景去測一個功能點,性能測試是在功能測試之上的,所以說性能測試的時候,是一定要有功能測試用例的哦,然后你就根據(jù)這個用例選定Thread 類型。

Config Element : 是用來給Test Plan或者Test API添加各種類型參數(shù),header,cookie之類的。

Timer : 顧名思義,就是定時器嘍。

Pre Processors : ?就是在進程啟用以前要做的一些預(yù)處理操作了。

Post Processors : 就是在進程結(jié)束以后要做的一些善后操作了。

Assertions : 就是一個線程的斷言,程序并不能自己去判斷一個現(xiàn)成怎樣才是成功或者失敗,所以需要我們?nèi)ジ缮嬉幌隆?/p>

Listener : 就是對Thread Group的監(jiān)聽。因為一個線程組有很多性能參數(shù),每次都要把數(shù)據(jù)保存并且進行一些簡單的處理,才能轉(zhuǎn)換成我們?nèi)庋劭梢钥炊膖able,chart之類的信息。這個獲取響應(yīng)參數(shù)并且轉(zhuǎn)換過程就可以認為是Listener要做的事情了。

二: 工具條:

可以讓我們快速對項目或者線程組進行一些操作,并且在最右側(cè)的0/170部分是顯示 “我們這次一共有多少個線程,現(xiàn)在還剩下多少個沒運行“ 。

感嘆號那里提示有多少個錯誤。

時間那一塊提示我們花了多長時間來運行選擇的Test Plan。

掃把那里就是清除之前的結(jié)果記錄。

三 : 最上面的菜單我就不多說了,自己點吧。

四 : 工作區(qū):

5. 如何快速創(chuàng)建一個測試用例呢?

1. 郵件測試計劃-》添加一個線程組-》修改線程組基本設(shè)置或者直接使用默認值:

我這里設(shè)置20個用戶一起并發(fā),并且一個線程有錯誤的話也繼續(xù)執(zhí)行下一個線程。

2.添加一個HTTP協(xié)議的request請求:

然后添加Basic 信息:

上圖具體什么意思,我想做過API測試的都知道,所以就不多強調(diào)了。

不過一定要注意:

Server Name or IP一定要去掉“http://“這個URL前綴哈。

Path就是去掉protocol, server name之后剩下的URL部分。

Port Number看自己測試的URL是否有來決定是否添加。

Method就是Get , Post之類的了。

具體的URL中的參數(shù)可以直接放到Path里,也可以添加到下面的Parameters區(qū)域哈。

3. 添加HTTP Request相關(guān)的元器件:

比如說Header:

比如說從csv文件中讀取參數(shù)并且參數(shù)化:

比如說添加Response Assertion斷言:

4. 若是針對這一個API有多個測試情形,就添加多個Thread Group哦。

JMeter每次只能打開一個Test Plan,

每個Test Plan至針對一個Test API,

一個Test API可以有多個測試情景,

一個測試情景對應(yīng)一個Thread Group,

一個Thread Group可以看做一個Test Case。

一個Thread Group的測試結(jié)果可以用多個結(jié)果查看器(Listener)展示。

Listener添加越多,該Test Plan執(zhí)行起來就耗時越久。

5. 對所有的Thread Group來個統(tǒng)計并展示統(tǒng)計結(jié)果:

一. Summary Report : 是最常用最直接的展示組件:

每個Case都會在這里有一行結(jié)果。

另外會加上總的Test Plan的執(zhí)行結(jié)果。

我沒有執(zhí)行,所以這里是空的。

二. View Results Tree : 用來查看每個線程請求的具體信息 :

如果執(zhí)行了,這里的結(jié)果就是每個URL測試情況,類似Postman或者在瀏覽器控制臺看到的請求列表。

這個組件在debug的時候很必要,但是調(diào)試完了就Disable吧,太費時。。。

我還添加了別的展示組件,這個是JMeter沒有的,我下載的其他插件。具體如何操作請看我的另外文章,因為這個內(nèi)容太多了。

謝謝閱讀哦~~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在使用Jmeter進行接口的性能測試時,由于Jmeter 是JAVA應(yīng)用,對于CPU和內(nèi)存的消耗比較大,所以,當(dāng)需...
    燕京博士閱讀 4,304評論 0 16
  • 主要文體來自 CDNS:https://www.cnblogs.com/ceshisanren/p/5639895...
    Amano閱讀 11,310評論 3 27
  • 筆者混跡于測試行業(yè)挺長一段時間了,一直想寫一篇關(guān)于軟件測試人員危機感的文章,但苦于工作原因遲遲未下筆。最近終于有...
    Tomandy閱讀 1,620評論 4 17
  • 小時候, 過年是期盼已久的新衣裳, 過年是幾毛錢的壓歲錢, 過年是熱鬧的鑼鼓和社火, 過年是吃在嘴里的糖葫蘆。 現(xiàn)...
    非洲鯽魚閱讀 389評論 1 6
  • 最近封裝一個網(wǎng)絡(luò)請求庫的時候,觀摩別人的代碼時候發(fā)現(xiàn)用到了很多ES6語法,確實很實用,總結(jié)如下: 變量的解構(gòu)賦值(...
    LazzMan閱讀 2,606評論 0 1

友情鏈接更多精彩內(nèi)容