魔改 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
- 效能測試——壓測工具locust——指令碼初步編寫指令碼
- 高效易用的C++單元測試框架:輕鬆構建高質量程式碼C++框架
- 簡單的Shell指令碼實戰演練,測試菜鳥也可以輕鬆學會指令碼
- 在Rainbond上使用Locust進行壓力測試AI
- 今天寫了一個可以測試併發數和執行次數的壓力測試程式碼。(Java)Java
- HTTP/FTP壓力測試工具siegeHTTPFTP
- 前端搬磚工三天入門Locust壓力測試前端
- 壓力測試指令碼指令碼
- 面向Web應用的併發壓力測試工具——Locust實用攻略Web
- Http壓力測試工具HttpTest4NetHTTP
- 介面測試,負載測試,併發測試,壓力測試區別負載
- apache ab壓力測試工具-批次壓測指令碼Apache指令碼
- 輕鬆構建基於 Serverless 架構的小程式Server架構
- 軟體壓力測試流程和測試工具分享,讓你寫壓力測試報告再也不愁測試報告
- 無需寫程式碼,輕鬆建網站:設計師的福音!網站
- 最簡單的jquery測試程式碼jQuery
- 壓力測試工具ab - Apache HTTP server benchmarking toolApacheHTTPServer
- ORACLE壓力測試Oracle
- laravel壓力測試Laravel
- MACOSXApacheab壓力測試MacApache
- NGINX壓力測試Nginx
- mysqlslap壓力測試MySql
- 壓力測試工具
- mysql單例項壓力測試在青雲MySql單例
- 不用寫程式碼,也能做好介面測試
- 如何編寫優秀的測試程式碼|單元測試
- EST——編寫Less程式碼更輕鬆!
- 程式碼重構與單元測試——重構1的單元測試(四)
- (一)Jmeter簡單介面測試JMeter
- [python] request 介面測試自動化指令碼轉化為 [locust] 效能測試指令碼Python指令碼
- 介面壓測實踐-壓力測試常見引數解釋說明
- Eolink Apikit:HTTP 介面測試,零程式碼、快速上手APIHTTP
- 使用 Twisted Python 和 Treq 進行 HTTP 壓力測試PythonHTTP
- 面試小能手速成,介面測試指令碼如何編寫?其實很簡單面試指令碼
- ubuntu20.04 安裝 wrk 壓力測試工具以及簡單使用Ubuntu
- nginx壓力測試方法:Nginx
- .NET重構—單元測試的程式碼重構