最近學習了Jmeter的簡單操做,很想找點東西來實戰一下,由於我以前寫過一篇經過Python模擬登陸的文章,因而便想嘗試下學習經過Jmeter來模擬登陸。html
本人環境:Jmeter5.1.1git
關於Github登陸的過程,在這裏就不詳細說了,有興趣的能夠看我以前的文章: 利用Python模擬GitHub登陸 。github
經過Jmeter模擬Github登陸的全部設置以下:正則表達式
首先,咱們須要建立1個測試計劃(至關於測試項目),測試計劃下建立1個線程組(至關於測試場景),而後在線程組下設置請求頭(線程組->添加->配置元件->HTTP信息頭管理器),設置以下:cookie
在以前的Python文章中,我是設置Session會話對象來幫助自動保存cookies信息的,那麼在Jmeter中,咱們也能夠設置HTTP Cookies管理器來自動保存cookies。學習
爲了達到自動管理Cookies的需求,在設置Cookies管理器以前,咱們須要在Jmeter安裝路徑下bin目錄中的 jmeter.properties 文件中定義屬性:CookieManager.save.cookies=true。測試
接着,在Jmeter中設置Cookies管理器,(線程組->添加->配置元件->HTTP Cookies管理器),添加後不須要填寫內容,它會自動管理cookies。編碼
首先,設置1個HTTP請求(線程組->添加->取樣器->HTTP請求),在HTTP請求下依次設置 正則表達式提取器和調試後置處理程序 。其中,正則表達式提取器用於提取authenticity_token,而調試後置處理程序,用於查看提取的結果。最後,設置以下:線程
在上面的設置中,咱們的訪問 https://github.com/login ,而後返回的HTML界面中存在2個authenticity_token,所以經過正則返回的是一個長度爲2的列表,而GitHub在登陸時用到的是列表中的第二個元素,所以設置參數匹配數字(0表明隨機)的值爲2。調試
相似第二步,設置1個HTTP請求,並在HTTP請求下依次設置 正則表達式提取器和調試後置處理程序 ,這裏登陸的請求方式爲POST,最後設置以下:
在這裏,相似以前的Python文章中,添加POST登陸過程當中所需的參數,而authenticity_token的值,咱們能夠經過 ${authenticity_token} 來引用第二步驟中經過正則提取到的authenticity_token。
注意:在這裏,authenticity_token須要勾選編碼,若是不勾選的話,有時候可能會出現登陸失敗,這裏我暫時還不明確具體緣由,有大佬清楚的話煩請留言指導一下。
接下來,在HTTP請求下設置斷言來判斷是否登陸成功(HTTP請求->添加->取樣器->HTTP請求)。GitHub登陸成功後,界面的標題會顯示"GitHub",而登陸失敗時,通常顯示的標題則是"Sign in to GitHub · GitHub"。所以,咱們能夠設置響應斷言以下:
在這裏,咱們對第三步驟中正則提取的 title 進行斷言,當 title 變量的內容 和GitHub徹底相等時,斷言成功,不然失敗。
最後,爲了方便查看運行後的結果,咱們能夠設置監聽器,如圖形結果、察看結果樹、聚合報告等。如下是我本次設置的察看結果樹(線程組->添加->監聽器->察看結果樹),經過它,咱們能夠查看線程組中各請求的具體響應過程。
OK,以上就是經過Jmeter模擬GitHub登陸的過程,其實大體思路和利用Python來模擬相同,用Jmeter來模擬登陸,好處就是不須要寫代碼也能夠實踐,相信大多數人閱讀後都應該能夠進行實踐。
若有錯誤,歡迎指出!