服務(wù)端的性能測試(三)

本文章轉(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ā)的同學可以抓緊研究下啦~下期大家期望講點什么的話可以在底下留言評論~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Locust文件就是一般的Python文件。唯一的需求就是它至少需要一個繼承于Locust的類. Locust類 ...
    Yuan_Jie閱讀 4,175評論 0 7
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,094評論 25 709
  • Locust是什么? Locust 是一個開源負載測試工具。使用 Python 代碼定義用戶行為,也可以仿真百萬個...
    zychen143閱讀 7,407評論 1 2
  • 今天在微信上碰到一個人,因為不認識嗎,聊了幾句之后,我就問他你是做什么的。他說你問這個干嘛,不說。然后我就以為是冒...
    f9d3b6cba36a閱讀 240評論 0 0

友情鏈接更多精彩內(nèi)容