魔改 Locust:不寫程式碼,可以輕鬆構建簡單的 http 介面壓力測試
github:https://github.com/mao303mao/locust-hazard
基本說明
基於locust和boomer核心,使用基於etcd做為壓測機服務發現,使用gRPC推送http請求事務描述資訊,讓壓測機自己構造http介面測試任務。
使用postman類似的節目管理http請求事務描述資訊。
只要啟動master端,提供給他人web頁面,其他任何人如果想要利用自己的環境進行壓力測試的話,他只要去下載壓測機管理頁面上的可執行程式,執行頁面提示的命令就可以變成壓測機了(注,html上的etcd的地址ip要改成你實際部署的ip)
目前是核心且基本框架及功能的完成,如有更多的要求比如任務隔離,執行歷史管理......這就是你的事了。
說明
拷貝了原版locust的main.py及webUI和前端部分程式碼進行修改。
在boomer之上增加了gRPC服務,能解析master發來的http介面測試任務描述資訊並生成boomer的任務
boomer及grequests原始碼部分地方做了小改動--主要避免異常退出--如果work端編譯失敗,請將錯的地方(主要是grequests配置連線數上限的地方)刪除即可
啟動參考:這裡的ip、port都是例子,請根據實際情況設定
### 1-先下載etcd並啟動etcd:etcd.exe --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://0.0.0.0:2379
etcd下載地址: https://github.com/etcd-io/etcd/releases/download/v3.3.25/etcd-v3.3.25-windows-amd64.zip
### 2-在服務上啟動matser(假定伺服器ip:192.168.23.222):python3 main.py --master-host=192.168.23.222
### 3-可以直接從web頁面的壓測機管理下載編譯好的exe(在/master/slaveEXE下面),或者編譯壓測機(worker)端應用程式:go build boomerHazardServer
### 4-壓測機端執行此程式(假定etcd的ip:192.168.23.222):boomerHazardServer.exe -EtcdAddr 192.168.23.222:2379 [-Host 壓測機ip] [-Port 3000]
### 5-其他操作與原版一致
based open source project
## golang
"github.com/levigross/grequests"
"github.com/myzhan/boomer"
"go.etcd.io/etcd/v3/clientv3"
"golang.org/x/net/context"
"google.golang.org/grpc"
## python
pip安裝:
pip install grpcio
pip install grpcio-tools
pip install etcd3
pip install locust==1.1.1
## 前端
layui
部分程式碼摘抄和參考了網路上的文章,致謝
go-etcd-grpc :"https://www.cnblogs.com/wujuntian/p/12838041.html"
相關文章
- 魔改 locust:基於 locust 和 boomer 核心,構建一個簡單 http 介面壓測共享平臺OOMHTTP
- 高效易用的C++單元測試框架:輕鬆構建高質量程式碼C++框架
- 效能測試——壓測工具locust——指令碼初步編寫指令碼
- 簡單的Shell指令碼實戰演練,測試菜鳥也可以輕鬆學會指令碼
- 在Rainbond上使用Locust進行壓力測試AI
- 今天寫了一個可以測試併發數和執行次數的壓力測試程式碼。(Java)Java
- 年輕時,我不寫單元測試
- 前端搬磚工三天入門Locust壓力測試前端
- locust壓測
- 面向Web應用的併發壓力測試工具——Locust實用攻略Web
- 輕鬆構建基於 Serverless 架構的小程式Server架構
- substrate輕鬆學系列6:編寫簡單的pallet
- 介面測試,負載測試,併發測試,壓力測試區別負載
- Eolink Apikit:HTTP 介面測試,零程式碼、快速上手APIHTTP
- 壓力測試工具ab - Apache HTTP server benchmarking toolApacheHTTPServer
- apache ab壓力測試工具-批次壓測指令碼Apache指令碼
- 面試小能手速成,介面測試指令碼如何編寫?其實很簡單面試指令碼
- 程式碼來構建一個簡單的compilerCompile
- 壓力測試
- 軟體壓力測試流程和測試工具分享,讓你寫壓力測試報告再也不愁測試報告
- 不用寫程式碼,也能做好介面測試
- 如何編寫優秀的測試程式碼|單元測試
- 程式碼重構與單元測試——重構1的單元測試(四)
- 如何提高 Locust 的壓測效能
- [python] request 介面測試自動化指令碼轉化為 [locust] 效能測試指令碼Python指令碼
- ubuntu20.04 安裝 wrk 壓力測試工具以及簡單使用Ubuntu
- 如何做程式碼單元壓力測試?【JWordPress前臺專案實戰】
- 簡單幾行程式碼輕鬆實現大文字平行計算行程
- 不寫程式碼輕鬆實現資料視覺化,這款基於SpringBoot的神器,簡直絕了!視覺化Spring Boot
- sysbench 壓力測試
- MACOSXApacheab壓力測試MacApache
- ORACLE壓力測試Oracle
- laravel壓力測試Laravel
- 介面壓測實踐-壓力測試常見引數解釋說明
- Locust 壓測websocket協議Web協議
- 開源API測試工具 Hitchhiker v0.6更新 – 改進壓力測試API
- 不寫程式碼不用 Excel, 如何輕鬆搞定各種圖形化展現Excel
- 用Java構建一個簡單的WebSocket聊天專案之新增HTTP介面排程JavaWebHTTP