性能自动化测试平台依托于jmeter,在其上实现性能测试平台化管理。现在已实现了用例与测试数据管理、分布式压力测试、实时压测数据查看、测试结果查看与下载、历史测试数据查询和测试结果分析等功能。
平台技术栈为 vue + spring boot 前后端分离实现,数据库使用的是mysql、mongodb、influxdb,文件存储使用minio文件服务器。
源码地址:https://github.com/guojiaxing1995/easy-jmeter
原型地址:https://modao.cc/app/Qf56LAncrokbxs3iOBMRap
使用文档:https://blog.csdn.net/qq_36450484/article/details/136213502
用户访问web页面,再由页面通过http请求访问业务后端服务。每台压力机服务器(只支持linux)上有且仅有一个jmeter,同时安装一个agent来控制jmeter运行,agent和服务端使用socketio实时通讯,用于服务端下发指令和agent上报状态。业务数据使用mysql进行存储,测试结果的详细数据使用mongodb存储,压测过程中的热数据使用influxdb存储,测试用例脚本、压测数据文件和压测结果文件(日志、jtl、报告)使用minio文件服务器存储。
web(前端)
在 web 目录下执行
npm install
npm run serve
api(后端)
在 api 目录下启动EasyJmeterApplication server端启动修改配置文件
socket.server.enable=true
agent端启动修改配置文件
socket.client.enable=true
- 安装mysql5.7数据库
- 安装mongodb4.2数据库
- 安装influxdb1.8数据库
- 安装minio文件服务器,设置指定bucket的Access Policy为public
- 部署server、agent。代码结构中api目录下为后端目录,后端使用springboot,修改配置文件并打包。其中作为server启动时设置socket.server.enable为true,作为agent启动时设置socket.client.enable为true,agent需要设置服务端socketio地址serverUrl。agent所在压力机需要配置jmete安装路径作为环境变量JMETER_HOME.
- 前端服务打包。代码结构中web目录下为前端服务,前端使用vue,node版本v12.13.0,打包命令 npm run build。
- 安装nginx。将web目录下default.conf按照实际情况修改,将前端包和配置文件放入nginx指定目录下启动。
- 构建后端jar包,代码结构中api目录下为后端目录,后端框架springboot,maven构建命令,
mvn clean package
。 - 构建前端dist包,前端使用vue,node版本v12.13.0,打包命令
npm run build
。 - 编辑项目根目录下docker-compose.yaml 文件,修改environment中的minio地址和influxdb地址为实际地址,修改volumes中宿主机jmeter地址为实际地址。项目根目录下执行
docker-compose up -d
构建镜像并启动。