【NO.9】jmeter - 一個完整的接口測試的腳本


    使用Jmeter對一個接口地址或者一個頁面地址執行N次請求,下面來說說怎么建立一個測試腳本(也稱為”測試計划”)。

1.    運行Jmeter.bat

    雙擊"Jmeter.bat"文件,稍等片刻后Jmeter會被啟動,如下圖所示:

2.    建立線程組

    在節點"測試計划"下,建立1個被稱作"線程組"的東西,如下圖所示:

    這個"線程組"的作用是什么呢?

    它的作用就是控制線程的數量。

    單擊"線程組"之后,就算建立完成了。效果如下圖所示:

3.    建立HTTP請求默認值

         在節點"線程組"下,建立1個被稱作"HTTP請求默認值"的東西,如下圖所示:

    單擊"HTTP請求默認值"之后,就算建立完成了。效果如下圖所示:

4.    填寫"HTTP請求默認值"的表單(以”豆瓣-電影”為例)

    "服務器名稱或IP"寫:movie.douban.com

    其它地方依照下圖所示寫,同時當然要符合項目需求,只是大部分的接口測試是這樣的而已。

    這樣寫好后,就可以為接下來的工作減輕工作量

5.    建立單個請求

    在節點"線程組"下,建立1個被稱作"HTTP請求"的東西,如下圖所示:

    我想建立2個"HTTP請求",這樣才能體現出"HTTP請求默認值"的效果。

    單擊"HTTP請求"之后,就算建立完成了。效果如下圖所示:

    前面已經說過"我想建立2個'HTTP請求',這樣才能體現出'HTTP請求默認值'的效果。",所以我建立了2個'HTTP請求'。

6.    填寫"HTTP請求"的表單(以”豆瓣-電影”為例)

    第1個HTTP請求的表單

    "路徑"寫:/subject/1835843/

    其它地方保持默認的值就可以了

    第2個HTTP請求的表單

    "路徑"寫:/subject_search?search_text=Night+at+the+Museum

    其它地方保持默認的值就可以了

    為什么不需要寫表單的其它域值?

    因為在"HTTP請求默認值"已經寫過了。

 

    為什么要在"HTTP請求默認值"提前寫這一切?

    因為通常情況下,需求是對同一個網站的不同頁面執行性能測試。那么其實通用的一些域值都是相同的,為了減輕工作量沒必要每次都寫,而是寫在"HTTP請求默認值"這1個東西里面就可以了。

 

    為什么路徑只寫了一半?

    因為前一半"movie.douban.com"已經在"HTTP請求默認值"寫過了。

7.    建立1個監聽器

    在節點"測試計划"下,建立1個被稱作"查看結果樹"的東西,如下圖所示:

    當然了你也可以建立"圖形結果"、"斷言結果"、"聚合報告"、"用表格查看結果"等等其它形式的監聽器。每個類型的監聽器的作用都是收集性能測試結果,只是呈現結果的樣式不同,這個要結合具體的業務來定,或要結合開發人員"希望觀察到哪些數據"來定。

    單擊"查看結果樹"之后,就算建立完成了。效果如下圖所示:

8.    只保留1個HTTP請求

    因為,每1個性能測試腳本,只是針對1個接口(或1個頁面)執行1次或N次請求。

    所以,需要在測試腳本執行之前,只保留待測接口(或頁面)的這1個"HTTP請求"。

    那么,我們可以看到當前的這個測試計划內,包含了2個"HTTP請求"。

    於是,我們暫且"禁用"其中的1個就可以了。效果如下圖所示:

    其中1個"HTTP請求"被"禁用"后的效果。如下圖所示:

9.    執行1次測試腳本

    切換到"線程組"

    可以看到默認的線程數是"1",循環次數是"1"

    Ramp-Up Period(in seconds)的意思是指"希望在幾秒內啟動所有的線程"

    執行腳本的操作:Ctrl+R

    在執行腳本前可先執行"清空測試結果"的操作:Ctrl+E

10.    查看測試結果

    切換到"查看結果樹"

    單擊右側列表內的這1個"HTTP請求"

    右側可以分別查看"取樣器結果"、"請求"、"響應數據"TAB下的數據

11.    執行另1個HTTP請求

    方法同第8小節的內容。

    具體就是:

    步驟[1]      -        啟用另1個HTTP請求

    步驟[2]      -        同時禁用其它的HTTP請求

12.    20個線程數+循環2次的方法

    切換到"線程組"

    設置線程數寫"20",循環次數寫"2"

    由於線程數比較少,所以不需要考慮如何設置Ramp-Up Period(in seconds)。

13.    20個線程+腳本運行60秒

    切換到"線程組"

    設置線程數寫"20"

    循環次數寫"永遠"

    勾選"調度器"->持續時間(秒)寫"60"

    由於線程數比較少,所以不需要考慮如何設置Ramp-Up Period(in seconds)。

-end

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM