摘要:頁面數據說明性能測試參數請求的類型,例如。當前請求失敗的數量。中間值,單位毫秒,一半的服務器響應時間低于該值,而另一半高于該值。平均值,單位毫秒,所有請求的平均響應時間。單個請求的大小,單位字節。
寫在前面:此文章在通過學習、實踐網絡資料寫成,相關鏈接在文章結尾。一、簡介
1、locust是一種可用python編寫腳本的開源壓測工具(實質是由python下的一些庫構成),可定義用戶行為,模擬并發訪問,從而觀測系統的性能與瓶頸。
2、特點:
(1)完全基于python,且http請求完全基于Requests庫;除了http/https協議,locust也可測試其他協議的系統,只需采用python調用對應的庫進行請求描述即可;
(2)locust的并發機制摒棄了進程和線程,采用協程(gevent)機制,避免了系統級資源調度,可大幅提高單機的并發能力。
3、依賴的第三方的庫:(在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分布在多個進程/機器,最后安裝此庫。
1、安裝locust
locust可以通過python的pip命令安裝,因為我使用的是Mac,它是自帶python的,但并不含pip,所以還需下載pip包。打開終端,執行以下步驟:
a、安裝easy_install:
curl https://bootstrap.pypa.io/ez_... -o - | sudo python
b、安裝pip:
sudo easy_install pip(若不成功可嘗試sudo easy_install-3.6 pip 或者sudo easy_install-2.7 pip),執行后再輸入電腦密碼(不可見)再回車確認即可;
c、安裝locust:
方法一:pip install locustio
方法二(推薦python3使用):從GitHub項目地址:https://github.com/locustio/l...
下載項目,在終端下來到項目路徑,執行:python setup.py install
d、驗證是否安裝成功:locust --help
e、如果未來可能運行Locust 分布在多個進程/機器,建議安裝pyzmq:pip install pyzmq
2、補充(待學習)
(1)如果使用的Mac,其實不建議用其自帶的python,因為一旦將python折騰崩潰,將可能影響到系統。解決辦法是安裝homebrew(https://brew.sh),在終端中輸入:brew install python,還可指定python的版本,需要將此版本python的環境變量設置在系統自帶python的環境變量之前,且此方法安裝的python中將含有pip。
(2)可使用python的包管理工具anaconda。
1、創建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
2、在終端中來到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*
3、打開瀏覽器訪問: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請戳
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44521.html
摘要:發現一款很贊的壓力測試軟件,開源的哦,用編寫測試腳本,定義用戶行為,可以模擬數百萬用戶的訪問,從而觀測系統的性能與瓶頸官方網站特點編寫腳本,定義用戶的行為分布式,可擴展安裝使用簡單需求安裝命令參數編輯腳本執行腳本瀏覽器打開出現一個 發現一款很贊的壓力測試軟件Locust,開源的哦,用 python 編寫測試腳本,定義用戶行為,可以模擬數百萬用戶的訪問,從而觀測系統的性能與瓶頸! 官方網...
摘要:有向無環圖,以下簡稱是其中的代表之一。的去中心化和可擴展性可認為是一體兩面的,因為基于數據結構帶來的異步記賬特性,同時實現了高度的參與網絡節點的去中心化和交易的可擴展性。因此,目前對于雙花問題,需要綜合考慮實際情況進行設計。 本報告由火幣區塊鏈研究院出品,作者:袁煜明、胡智威。原文地址 相關報告: 【超越白皮書2】EOS主網上線前夕的實測分析與技術建議 【超越白皮書1】EOSIO程序實...
摘要:服務器市場份額。子進程負責創建由指令設置的服務器線程,同時還負責監聽接收到的請求,并將請求分發給處理線程。在版本引入了模塊,這個模塊基于模塊創建的,并加入了獨立的監聽線程來管理請求處理完成后的休眠的連接?;谑录姆掌魍陝?。 譯文首發于 Apache 與 Nginx 性能對比:Web 服務器優化技術,轉載請注明出處。 多年前 Apache 基金會 Web 服務器 簡稱「Apache」...
摘要:服務器市場份額。子進程負責創建由指令設置的服務器線程,同時還負責監聽接收到的請求,并將請求分發給處理線程。在版本引入了模塊,這個模塊基于模塊創建的,并加入了獨立的監聽線程來管理請求處理完成后的休眠的連接?;谑录姆掌魍陝佟? 譯文首發于 Apache 與 Nginx 性能對比:Web 服務器優化技術,轉載請注明出處。 多年前 Apache 基金會 Web 服務器 簡稱「Apache」...
閱讀 1860·2021-11-15 11:39
閱讀 1226·2021-10-18 13:29
閱讀 1187·2021-08-31 09:42
閱讀 2741·2019-08-30 11:11
閱讀 2116·2019-08-26 12:12
閱讀 2115·2019-08-26 10:17
閱讀 3391·2019-08-23 18:38
閱讀 3228·2019-08-23 18:38