【壓力測試】Mac下進行locust的配置和測試

寫在前面:此文章在經過學習、實踐網絡資料寫成,相關連接在文章結尾。

1、簡介

一、locust是一種可用python編寫腳本的開源壓測工具(實質是由python下的一些庫構成),可定義用戶行爲,模擬併發訪問,從而觀測系統的性能與瓶頸。html

二、特色:
(1)徹底基於python,且http請求徹底基於Requests庫;除了http/https協議,locust也可測試其餘協議的系統,只需採用python調用對應的庫進行請求描述便可;
(2)locust的併發機制摒棄了進程和線程,採用協程(gevent)機制,避免了系統級資源調度,可大幅提升單機的併發能力。python

三、依賴的第三方的庫:(在https://github.com/locustio/l... 中的setup.py下查看:install_requires=["gevent>=1.2.2", "flask>=0.10.1", "requests>=2.9.1", "msgpack-python>=0.4.2", "six>=1.10.0", "pyzmq>=16.0.2"])
(1)gevent是python中實現協程(微線程)的一個第三方庫;
(2)flask是python的一個web開發框架;
(3)requests接口庫是python下可用來作http接口測試的庫;
(4)msgpack-python是一種快速緊湊二進制序列化結果,適用於相似json的數據;
(5)six:提供一些簡單工具來封裝python2和python3之間的差別;
(6)pyzmq:若是打算運行locust分佈在多個進程/機器,最後安裝此庫。git

2、安裝(*)

一、安裝locust
locust能夠經過python的pip命令安裝,由於我使用的是Mac,它是自帶python的,但並不含pip,因此還需下載pip包。打開終端,執行如下步驟:
a、安裝easy_install:
curl https://bootstrap.pypa.io/ez_... -o - | sudo pythongithub

b、安裝pip:
sudo easy_install pip(若不成功可嘗試sudo easy_install-3.6 pip 或者sudo easy_install-2.7 pip),執行後再輸入電腦密碼(不可見)再回車確認便可;web

c、安裝locust:
方法一:pip install locustio
方法二(推薦python3使用):從GitHub項目地址:https://github.com/locustio/l...
下載項目,在終端下來到項目路徑,執行:python setup.py installjson

d、驗證是否安裝成功:locust --helpflask

e、若是將來可能運行Locust 分佈在多個進程/機器,建議安裝pyzmq:pip install pyzmqbootstrap

二、補充(待學習)
(1)若是使用的Mac,其實不建議用其自帶的python,由於一旦將python折騰崩潰,將可能影響到系統。解決辦法是安裝homebrew(https://brew.sh),在終端中輸入:brew install python,還可指定python的版本,須要將此版本python的環境變量設置在系統自帶python的環境變量以前,且此方法安裝的python中將含有pip。
(2)可以使用python的包管理工具anaconda。瀏覽器

3、實踐——一個簡單的腳本與測試

一、建立load_test.py文件,內容爲:服務器

from locust import HttpLocust, TaskSet, task

class UserBehavior(TaskSet):

    @task(1)
    def baidu(self):
        self.client.get("/")

class WebsiteUser(HttpLocust):
    task_set = UserBehavior
    min_wait = 3000
    max_wait = 6000

二、在終端中來到load_test.py所在目錄下,輸入:
locust -f load_test.py --host=https://www.baidu.com
若正常運行則將看到:
[2017-11-28 17:39:47,262] appledeMacBook-Air-3.local/INFO/locust.main: Starting web monitor at :8089
[2017-11-28 17:39:47,263] appledeMacBook-Air-3.local/INFO/locust.main: Starting Locust 0.8.1*

三、打開瀏覽器訪問:http://127.0.0.1:8089
(1)設置模擬用戶數和每秒產生用戶數,而後點擊Start swarming 開始運行性能測試。

圖片描述

(2)頁面數聽說明——statistics:

圖片描述

<性能測試參數>

Type: 請求的類型,例如GET/POST。

Name:請求的路徑。這裏爲百度首頁,即:https://www.baidu.com/

request:當前請求的數量。

fails:當前請求失敗的數量。

Median:中間值,單位毫秒,一半的服務器響應時間低於該值,而另外一半高於該值。

Average:平均值,單位毫秒,全部請求的平均響應時間。

Min:請求的最小服務器響應時間,單位毫秒。

Max:請求的最大服務器響應時間,單位毫秒。

Content Size:單個請求的大小,單位字節。

reqs/sec:是每秒鐘請求的個數。

官方文檔
本文主要參考資料
進一步學習locust請戳

相關文章
相關標籤/搜索