locsut 入門與實踐
基本介紹
Locust是開源的、使用python開發、基於事件、支援分散式並且提供webUI進行測試執行和結果展示的效能測試工具
注:locust1.x相比較於0.x變化較大,具體可參考:https://blog.csdn.net/kk_gods/article/details/110237549
locust特性
模擬使用者操作:支援多協議,locust可以壓測任意協議型別的系統
併發機制:摒棄了程式和執行緒,採用協程(gevent)機制,單臺測試機可以產生數千併發壓力
Locust核心庫
1、 gevent:gevent是一種基於協程的Python網路庫,它用到Greenlet提供的,封裝了libevent事件迴圈的高層同步API。
2、flask:Python編寫的輕量級Web應用框架。
3、requests:Python Http庫
4、msgpack-python:MessagePack是一種快速、緊湊的二進位制序列化格式,適用於類似JSON的資料格式。msgpack-python主要提供MessagePack資料序列化及反序列化的方法。
5、pyzmq:pyzmq是zeromq(一種通訊佇列)的Python實現,主要用來實現Locust的分散式模式執行
壓測工具比對
locust實踐
安裝
Pip install locust
注:mac通過軟連線方式配置環境變數 ln -s xxxx/bin/locust /usr/local/bin/locust
locust簡單指令碼
from locust import HttpUser, TaskSet, task
import logging
class UserBehave(TaskSet):
@task(1)
def get_books(self):
response = self.client.get("/bookstore/api/v1/books")
assert '200' in str(response), logging.info("failed")
class WebsiteUser(HttpUser):
tasks = [UserBehave]
min_wait = 1000
max_wait = 3000
host = "http://127.0.0.1:5000/"
if __name__ == '__main__':
import os
os.system(r'locust -f F:\code\perform\locusts.py --web-host="127.0.0.1" -P 8091')
訪問locust: http://127.0.0.1:8091
結果分析
New test:點選該按鈕可對模擬的總虛擬使用者數和每秒啟動的虛擬使用者數進行編輯;
Statistics:類似於jmeter中Listen的聚合報告;
Charts:測試結果變化趨勢的曲線展示圖,分別為每秒完成的請求數(RPS)、響應時間、不同時間的虛擬使用者數;
Failures:失敗請求的展示介面;
Exceptions:異常請求的展示介面;
Download Data:測試資料下載模組, 提供三種型別的CSV格式的下載,分別是:Statistics、responsetime、exceptions;
- 核心指標:併發數、RPS、響應時間、異常率
相關文章
- Kafka 入門與實踐Kafka
- TypeScript入門與實踐TypeScript
- Docker 入門與實踐Docker
- GitOps快速入門與實踐Git
- Git與Github入門實踐(上)Github
- 微信小程式入門與實踐微信小程式
- Kubeflow實戰: 入門介紹與部署實踐
- 《Django入門與實踐教程》完整版Django
- 《Kafka入門與實踐》讀書筆記Kafka筆記
- Kafka v2.3 快速入門與實踐Kafka
- Docker入門實踐Docker
- BoltDB 入門實踐
- MQ 入門實踐MQ
- babel 修改抽象語法樹——入門與實踐Babel抽象語法樹
- Docker基礎、Machine、Compose、Swarm入門與實踐DockerMacSwarm
- 入門看看?Chrome外掛初窺與實踐Chrome
- redux 入門到實踐Redux
- GitHub Actions 入門實踐Github
- Docker入門實踐(三)Docker
- Docker入門實踐(四)Docker
- Nginx入門實踐(二)Nginx
- 最火的容器技術|Docker入門與實踐Docker
- Spring Boot Docker入門模板與4個最佳實踐Spring BootDocker
- Spring Security系列之極速入門與實踐教程Spring
- 單元測試的入門實踐與應用
- Android入門(五):實踐技巧Android
- RPC協議實踐入門RPC協議
- GraphQL 從入門到實踐
- Nacos入門學習&實踐
- Mybatis-Plus入門實踐MyBatis
- 《GitHub 入門與實踐》閱讀筆記(第4章)Github筆記
- Redis入門與實踐(附專案真實案例程式碼)Redis
- 【機器學習入門與實踐】合集入門必看系列,含資料探勘專案實戰,適合新人入門機器學習
- Mobx入門和較佳實踐
- Jenkins持續整合 入門實踐Jenkins
- Dubbo入門(2) - 簡單實踐
- PM2入門實踐指南
- Dubbo入門(2) – 簡單實踐