本文章轉(zhuǎn)載于搜狗測試
上一篇我們講了性能測試的測試工具,當時對大家推薦了性能測試工具Locust,上期評論時候大家反響都很熱烈希望看到Locust的使用過程,這期帶給大家的就是Locust的使用方法~
Locust的安裝過程:
Locust是一個依賴python所以使用Locust的時候必須要有個python的環(huán)境,需要注意的是python2.6以下的版本是不知Locust的,而且python3.0及其以上的是暫時不支持Locust的。個人推薦使用的python版本為2.7
當我們有了python環(huán)境我們安裝Locust就很輕松了,安裝一個pip,然后執(zhí)行下面的命令:
pip install locustio
安裝完成如下顯示
我們可以執(zhí)行一下命令來確定安裝是否正常
locust -h
以上就是安裝Locust的全過程。
Locust安裝我們介紹完了,說一下locust的使用過程::
腳本編寫:
編寫Locust腳本是使用Locust的第一步,也是最關(guān)鍵的一步。
示例:
先來看一個最簡單的例子:
from locust import HttpLocust, TaskSet, task
class WebsiteTasks(TaskSet):
@task
def index(self):
self.client.get("/index")
@task
def about(self):
self.client.post("/about")
class WebsiteUser(HttpLocust):
task_set = WebsiteTasks
min_wait = 1000
max_wait = 3000
示例的解釋:
從上面的例子可以看出來腳本中主要包含了兩個類:WebsiteTasks和WebsiteUser,其中WebsiteTasks 是繼承了TaskSet 而WebsiteUser是繼承了HttpLocust。事實上我們利用Locust腳本測試的時候,所有的場景都是依賴這兩個基類來進行描述的。
那么我們來分析下上述的腳本是什么意思呢。WebsiteTasks類中定義的是指我們測試任務(wù)中的具體業(yè)務(wù)操作,上面的腳本的意思就是訪問一個url路徑下/index請求和/about請求,其中index的路徑是get請求而about路徑下是post的請求,其中兩個請求最小間隔1000ms最大的間隔為3000ms,兩個請求比例為1比1。
運行示例:
當我們寫完這個腳本的時候?qū)⑺4嬖谝粋€路徑下,打開CMD進入這個路徑下執(zhí)行命令:
locust -H http://www.baidu.com -f locustfile.py
會得到以下的反饋:
這時候locust已經(jīng)是啟動成功,我們打開瀏覽器輸入 http://127.0.0.1:8089/
Number of users to simulate的意思是我們需要多少的并發(fā)用戶。
Hatch rate (users spawned/second)每秒發(fā)送多少請求。
接下來點擊Start swarming就可以開始測試啦。
運行結(jié)果:
運行的結(jié)果直接在網(wǎng)頁上就可以查看:
·? ?其中Statistics是用來查看總體的運行報告
Failures是運行中報錯的請求
這樣就是使用Locust進行一次壓測的全過程, 在locust的運行界面,可以下載當前的運行結(jié)果到本地,但是這兩份csv中的測試結(jié)果不夠詳細,不利于分析系統(tǒng)的瓶頸,也是locust的不足之處。正常的單機用Locust達到千級的并發(fā)數(shù)量,所以需要高并發(fā)的同學可以抓緊研究下啦~下期大家期望講點什么的話可以在底下留言評論~