1. 程式人生 > > 基於python的性能測試工具–locust

基於python的性能測試工具–locust

說我 代理 ans 裝飾 word 幹什麽 基於 配置 朋友

現在有很多的性能測試工具,比如說我們熟悉的loadrunner、jmeter、ab、webbench等等,這些工具如果對一個沒用過的朋友來說,學習起來比較不容易,但是如果你能看懂python代碼,會寫就更好了,就可用嘗試一下今天的主角Locust,一款基於python的性能測試工具,它的優點是學習起來比較簡單,功能完全自定制,使用比較靈活,支持分布式。

所有的性能測試工具都至少包含這3塊:

1、壓力產生器,也就是可以指定產生多大的壓力,多少並發;

2、數據統計,也就是結果的展示,要統計TPS是多少,響應時間多少等等,這些數據;

3、代理功能,代理功能呢說白了就一句話,分攤壓力。比如說你壓測的時候要用1000個並發,但是你的電腦(壓力機)配置比較弱,只支持500並發,再大電腦就死掉了,完犢子,壓測不了。那怎麽辦呢,就得分攤壓力,再管你同事借一臺電腦,倆電腦發壓力,那就可以了,每個人的電腦上500個並發,人多好幹活嘛,代理就是幹這個的,把這個上面的壓力分攤到別的電腦上。

當然Locust這3個功能都是有的。

Locust是python的一個第三方模塊,安裝很簡單,直接pip install locust即可,或者自己下載安裝包,手動安裝。安裝完成後,就有locust命令,在命令行裏面輸入 locust --help,有幫助信息就安裝成功了。如下圖:

技術分享圖片

locust的官網是 www.locust.io,上面也有怎麽安裝和例子。

怎麽用呢,很簡單,只需要幾行代碼就可以實現,並且有漂亮的web界面,可以設置並發數,和查看結果,首先我們寫幾行簡單的代碼,寫一個打開BestTest首頁的腳本。

代碼寫好了,下面運行一下,看看結果,但是運行的時候不是像一個普通的python腳本一樣運行了, 得使用locust命令,在命令行裏運行

這樣就可以運行,運行完之後,就可以在瀏覽器裏面打開locust的控制臺了,locust的默認端口號是8089,運行完之後,訪問的時候用ip:8090就可以訪問了,如下圖:

啟動locust:

技術分享圖片

locust控制臺頁面:

技術分享圖片

開始測試後的頁面:

技術分享圖片

tps圖和響應時間圖:

技術分享圖片

但是locust不像loadrunner和jmeter一樣可以設置開始時間和結束時間,只能你自己點stop的時候停止測試,這一點比較煩,所以在使用過程中還是需要自己註意一下測試時間。

剛才上面寫的例子是單個接口壓測, 或者更說單場景的,如果想做混合場景的壓測,比如說是一個業務流程,先登錄、然後下單、購物這樣的怎麽辦呢?

只需要寫多個task就可以了,也就是在類裏面寫多個函數,想誰想執行,標上數字就行了,1,2,3,4代碼如下:

關於Locust就說這麽多,是不是很簡單呢,快去試試吧,有問題的小夥伴可以留言哦~

基於python的性能測試工具–locust