利用Jmeter模擬Github登錄


最近學習了Jmeter的簡單操作,很想找點東西來實戰一下,因為我之前寫過一篇通過Python模擬登錄的文章,於是便想嘗試下學習通過Jmeter來模擬登錄。

本人環境:Jmeter5.1.1

關於Github登錄的過程,在這里就不詳細說了,有興趣的可以看我之前的文章: 利用Python模擬GitHub登錄

通過Jmeter模擬Github登錄的所有設置如下:

Jmeter模擬Github登錄

1. Jmeter設置請求頭和Cookies管理器

首先,我們需要創建1個測試計划(相當於測試項目),測試計划下創建1個線程組(相當於測試場景),然后在線程組下設置請求頭(線程組->添加->配置元件->HTTP信息頭管理器),設置如下:

HTTP信息頭管理器

在之前的Python文章中,我是設置Session會話對象來幫助自動保存cookies信息的,那么在Jmeter中,我們也可以設置HTTP Cookies管理器來自動保存cookies。

為了達到自動管理Cookies的需求,在設置Cookies管理器之前,我們需要在Jmeter安裝路徑下bin目錄中的 jmeter.properties 文件中定義屬性:CookieManager.save.cookies=true

修改屬性

接着,在Jmeter中設置Cookies管理器,(線程組->添加->配置元件->HTTP Cookies管理器),添加后不需要填寫內容,它會自動管理cookies。

HTTP Cookies管理器

2. 獲取authenticity_token

首先,設置1個HTTP請求(線程組->添加->取樣器->HTTP請求),在HTTP請求下依次設置 正則表達式提取器和調試后置處理程序 。其中,正則表達式提取器用於提取authenticity_token,而調試后置處理程序,用於查看提取的結果。最后,設置如下:

HTTP請求

正則提取authenticity_token

調試后置處理程序

在上面的設置中,我們的訪問 https://github.com/login ,然后返回的HTML界面中存在2個authenticity_token,因此通過正則返回的是一個長度為2的列表,而GitHub在登錄時用到的是列表中的第二個元素,因此設置參數匹配數字(0代表隨機)的值為2。

3. 模擬登錄

類似第二步,設置1個HTTP請求,並在HTTP請求下依次設置 正則表達式提取器和調試后置處理程序 ,這里登錄的請求方式為POST,最后設置如下:

HTTP請求-模擬登錄

在這里,類似之前的Python文章中,添加POST登錄過程中所需的參數,而authenticity_token的值,我們可以通過 ${authenticity_token} 來引用第二步驟中通過正則提取到的authenticity_token。

注意:在這里,authenticity_token需要勾選編碼,如果不勾選的話,有時候可能會出現登錄失敗,這里我暫時還不明確具體原因,有大佬清楚的話煩請留言指導一下。

正則提取title

調試后置處理程序

4. 斷言,判斷是否登錄成功

接下來,在HTTP請求下設置斷言來判斷是否登錄成功(HTTP請求->添加->取樣器->HTTP請求)。GitHub登錄成功后,界面的標題會顯示"GitHub",而登錄失敗時,一般顯示的標題則是"Sign in to GitHub · GitHub"。因此,我們可以設置響應斷言如下:

對 title 進行斷言

在這里,我們對第三步驟中正則提取的 title 進行斷言,當 title 變量的內容 和GitHub完全相等時,斷言成功,否則失敗。

5. 添加監聽器

最后,為了方便查看運行后的結果,我們可以設置監聽器,如圖形結果、察看結果樹、聚合報告等。以下是我本次設置的察看結果樹(線程組->添加->監聽器->察看結果樹),通過它,我們可以查看線程組中各請求的具體響應過程。

察看結果樹

OK,以上就是通過Jmeter模擬GitHub登錄的過程,其實大致思路和利用Python來模擬相同,用Jmeter來模擬登錄,好處就是不需要寫代碼也可以實踐,相信大多數人閱讀后都應該可以進行實踐。

如有錯誤,歡迎指出!


免責聲明!

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



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