
01 認識Locust
說起性能測驗工具,大家肯定想到的都是Jmeter,是的,由于其簡單易用、功能強大,已經變成主流的壓測工具之一,當需要實作一些高級功能的時候,可以使用Java語言對Jmeter進行擴展,
但是很多小伙伴只會Python,不會Java,可不可使用Python語言來做性能測驗呢?答案是肯定的,今天我們就來介紹下基于Python的強大的性能測驗框架Locust,
Locust直譯是“蝗蟲”的意思,意在壓測時產生的壓力就像是漫天蝗蟲一樣,鋪天蓋地,Locust是 用Python實作的開源性能測驗框架 ,不同于其他壓測工具基于行程/執行緒產生壓力,Locust是完全 基于事件,支持分布式 ,一個Locust節點可以在一個行程中輕松支持上千并發用戶,從這一點來看,它的設計思路要遠優于Jmeter、Loadrunner之類的工具,
02 Locust環境搭建
- 安裝Python,建議使用Python3.6+
- 安裝Locust及其依賴:pip3 install -i http://pypi.douban.com/simple locust
- 驗證是否安裝成功,執行命令:locust -V,如果能看到版本資訊,即代表安裝成功
03 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秒
04 Locust腳本運行
腳本寫好后,需要在命令列上去運行Locust腳本,在cmd下(或者Mac的終端、Linux命令列),進入到腳本目錄,執行命令

然后在瀏覽器上訪問URL:http://localhost:8089/,就可以打開Locust的壓測控制頁面

05 Locust壓測執行
在Locust的壓測控制頁面打開后,就可以針對腳本做一些壓測的配置了,比如并發數,壓測持續時間,host等,其中:
- Number of total users to simulate:并發數,代表模擬了多少虛擬用戶
- Hatch rate:每秒產生的用戶數
- Host:目標服務器的ip或域名
點擊"Start swarming",即可開始壓測,在web頁面會上統計出實時的性能匯總資料
欄位解釋:

TPS和回應時間曲線圖:

好啦,關于Locust的入門,今天就介紹這么多啦,后續會繼續介紹Locust的高級特性和詳細功能,敬請期待!
下面是測驗資料,對于做【軟體測驗】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!

最后: 可以在公眾號:傷心的辣條 ! 免費領取一份216頁軟體測驗工程師面試寶典檔案資料,以及相對應的視頻學習教程免費分享!,其中包括了有基礎知識、Linux必備、Shell、互聯網程式原理、Mysql資料庫、抓包工具專題、介面測驗工具、測驗進階-Python編程、Web自動化測驗、APP自動化測驗、介面自動化測驗、測驗高級持續集成、測驗架構開發測驗框架、性能測驗、安全測驗等,
學習不要孤軍奮戰,最好是能抱團取暖,相互成就一起成長,群眾效應的效果是非常強大的,大家一起學習,一起打卡,會更有學習動力,也更能堅持下去,你可以加入我們的測驗技術交流扣扣群:914172719(里面有各種軟體測驗資源和技術討論)
喜歡軟體測驗的小伙伴們,如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “點贊” “評論” “收藏” 一鍵三連哦!
好文推薦
轉行面試,跳槽面試,軟體測驗人員都必須知道的這幾種面試技巧!
面試經:一線城市搬磚!又面軟體測驗崗,5000就知足了…
面試官:作業三年,還來面初級測驗?恐怕你的軟體測驗工程師的頭銜要加雙引號…
什么樣的人適合從事軟體測驗作業?
那個準點下班的人,比我先升職了…
測驗崗反復跳槽,跳著跳著就跳沒了…
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/323409.html
標籤:其他
上一篇:月薪10k,20k,30k及以上的軟體測驗工程師分別有何不同?
下一篇:Git的基本使用
