博客 / 詳情

返回

每週讀書與學習->JMeter性能測試腳本編寫實戰(一)-如何實現用户需先登錄,然後再請求別的接口

每週讀書與學習是由清華大學出版社出版的《JMeter核心技術、性能測試與性能分析》一書的作者推出,分享作者多年的IT從業經歷,希望對很多計算機科學技術IT類專業畢業生以及IT從業者有所幫助。

在前面的學習中,介紹了很多Jmeter的理論知識,包括Jmeter中很多不同元件的詳細介紹以及每個元件的作用,本次主要從實踐的角度來介紹怎麼用這些元件來完成常見性能測試腳本的編寫,將會介紹一些常見的性能測試腳本編寫案例。

1、如何實現用户需先登錄,然後再請求別的接口

在性能測試中,如果對一個系統進行性能壓測時,往往經常會需要先進行一次登錄,在登錄完成後,才能去對接下來的接口進行性能壓測,因為如果沒有登錄成功的話,就無法完成後續的步驟,而且這也符合真實的用户場景,用户訪問一個系統時,通常都是需要先登錄後,才能進入到系統中做其他的操作,如下圖所示。

在Jmeter中,如果要完成這樣一個常見場景的性能測試腳本的編寫,主要需要用到Jmeter的邏輯控制器中的僅一次控制器以及配置管理器下的HTTP Cookie管理器,如下圖所示,是以先登錄CSDN(網址:https://blog.csdn.net/)博客,然後再進行關鍵字搜索的真實案例的性能測試腳本的編寫過程,每個主要元件的作用描述如下。

  • 僅一次控制器:主要是用於控制每次需要先進行一次登錄,而且一旦登錄完成後,後面就不需要再進行登錄了。
  • HTTP Cookie管理器:主要用於自動存儲登錄成功後的Cookie,並且讓取樣器在調用後續的接口做性能壓測時,每次都會自動帶上這個Cookie,如下圖所示。
  • HTTP請求取樣器:由於CSDN博客網站是通過https協議在瀏覽器中進行訪問,所以需要使用Jmeter中的HTTP請求取樣器來模擬登錄請求和關鍵字的搜索請求。
  • 查看結果樹:主要用於在調試Jmeter測試計劃中的腳本時,通過查看結果樹來查看取樣器發出請求的請求報文和響應結果等信息。

從上圖中可以看到,登錄CSDN時,需要以POST的請求的形式調用CSDN博客網站的登錄接口/v1/register/pc/login/doLogin,並且以Body消息體數據的形式傳入登錄請求的參數。

從上圖中可以看到,當HTTP請求是一個通用的標準的Cookie管理形式時,只需要添加HTTP Cookie管理器,在HTTP Cookie管理器中不需要做任何的其他配置。

如下圖所示,為調用CSDN的搜索接口進行搜索,由於該搜索是一個GET形式的請求,所以在HTTP請求取樣器中,選擇了GET請求,並且在路徑中,輸入CSDN的搜索接口的請求路徑/api/v1/search_top_data,請求參數中,分別填入:

  • 請求參數q:填入需要進行搜索的關鍵字 。
  • 請求參數t:填入需要進行搜索的範圍。

在完成上述的Jmeter元件添加以及配置後,即可運行Jmeter性能測試計劃,並且通過查看結果樹來查看取樣器的運行的結果,如下圖所示。

從上圖中可以看到,HTTP請求取樣器在發起對CSDN的搜索請求時,已經自動攜帶了登錄後的Cookie數據了。

如下圖所示,當將HTTP Cookie管理器禁用後,然後再重新發起請求後,通過查看結果樹查看取樣器的運行結果時發現此時取樣器發起對CSDN的搜索請求中,不再會自動攜帶登錄後的Cookie數據,從圖中可以看到此時顯示的是no cookies,從這個示例中也可以直接看出HTTP Cookie管理器的直接作用就是自動存儲登錄成功後的Cookie,並且讓取樣器在調用後續的接口時,每次都會自動帶上這個Cookie。

2、本次學習總結

讀者們需要能在Jmeter工具下完成常見的性能測試腳本的編寫,能完成一些常見的HTTP請求以及數據庫請求的性能壓測,每天學習一個知識點,持續讓自己提高和進步。

出處:本次學習的內容參考自清華大學出版社出版的《JMeter核心技術、性能測試與性能分析》一書

user avatar digiproto 頭像
1 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.