1. 程式人生 > 其它 >效能測試利器-Locust框架解析

效能測試利器-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/關注碼同學公眾號:自動化軟體測試

本文著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。