效能測試利器-Locust框架解析
每天進步一點點,關注我們哦,每天分享測試技術文章
本文章出自【碼同學軟體測試】
碼同學公眾號:自動化軟體測試,領取資料可加:magetest
碼同學抖音號:小碼哥聊軟體測試
1認識Locust說起效能測試工具,大家肯定想到的都是Jmeter,是的,由於其簡單易用、功能強大,已經變成主流的壓測工具之一。當需要實現一些高階功能的時候,可以使用Java語言對Jmeter進行擴充套件。
但是很多小夥伴只會Python,不會Java,可不可使用Python語言來做效能測試呢?答案是肯定的,今我們就來介紹下基於Python的強大的效能測試框架Locust。
Locust直譯是“蝗蟲”的意思,意在壓測時產生的壓力就像是漫天蝗蟲一樣,鋪天蓋地。Locust是用Python實現的開源效能測試框架,不同於其他壓測工具基於程序/執行緒產生壓力,Locust是完全基於事件,支援分散式,一個Locust節點可以在一個程序中輕鬆支援上千併發使用者。從這一點來看,它的設計思路要遠優於Jmeter、Loadrunner之類的工具。
2
Locust環境搭建
1、安裝Python,建議使用Python3.6+
2、安裝Locust及其依賴:pip3 install -i https://pypi.douban.com/simple locust
3、驗證是否安裝成功,執行命令:locust -V,如果能看到版本資訊,即代表安裝成功
3
Locust指令碼編寫
不同於Jmeter的介面化指令碼配置,Locust的指令碼需要完全寫Python程式碼,雖然從一定程度提高了指令碼編 寫的門檻,但是對於熟悉Python的人來說還是比較簡單的,況且自己寫程式碼的話,指令碼的靈活性更高。
Locust指令碼就是一個普通的Python檔案,但是在指令碼中必須先定義一個類,然後繼承Locust提供的一個HttpUser類。在測試類裡,將壓測的請求封裝到一個函式裡,一個簡單的Locust指令碼就完成了。
看個實際的例子,比如現在要測試這樣一個介面
URL:http://192.168.2.130:8080/pinter/login
引數:userName=admin&password=1234
在上面指令碼中,login_test是自定義的測試函式,函式上添加了一個裝飾器@task,標明此函式是需要
Locust併發執行。在函式內呼叫了父類的client物件中post方法,發起了一次HTTP post請求。
在MyTest類裡,必須新增一個wait_time屬性,此屬性設定了迴圈呼叫login_test之間的等待時間,
between(1,1)代表等待時間為1秒
4
Locust指令碼執行
指令碼寫好後,需要在命令列上去執行Locust指令碼,在cmd下(或者Mac的終端、Linux命令列),進入到指令碼目錄,執行命令
然後在瀏覽器上訪問URL:http://localhost:8089/,就可以開啟Locust的壓測控制頁面
5
Locust壓測執行
在Locust的壓測控制頁面開啟後,就可以針對指令碼做一些壓測的配置了,比如併發數,壓測持續時間,
host等,其中:
Number of total users to simulate:併發數,代表模擬了多少虛擬使用者
Hatch rate:每秒產生的使用者數
Host:目標伺服器的ip或域名
免費領取碼同學軟體測試課程筆記+超多學習資料+完整視訊+面試題,可加微信:magetest
點選"Start swarming",即可開始壓測,在web頁面會上統計出實時的效能彙總資料
欄位解釋
TPS和響應時間曲線圖
好啦,關於Locust的入門,今天就介紹這麼多啦,後續會繼續介紹Locust的高階特性和詳細功能,敬請期待!
免費領取碼同學軟體測試課程筆記+超多學習資料+學習完整視訊 ☞ 可加:magetest/關注碼同學公眾號:自動化軟體測試
本文著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。