🔥 部署架构
- 如果是单节点压测,只需要在Master节点上安装部署平台(包括压测引擎),通过平台来调用本地压测引擎进行单节点压测,返回压测结果
- 如果是分布式压测,除了Master节点安装部署平台(包括压测引擎)外,还要在Slave节点上部署压测引擎,启动jmeter-server服务
🔥 安装部署
⚙️ Master节点:平台Docker-Compose部署方式(推荐,一键部署)
容器化部署通过docker-compose方式在Master节点一键部署压测平台,如果拉镜像不畅,可以直接load附件的离线镜像,包括x86和arm
- 平台部署
- git clone https://github.com/100ZZ/mysterious.git
- cd mysterious/docker
- sh init.sh amd64|arm64 (参数:x86传amd64,arm传arm64;init.sh可自定义平台数据目录)
- cd ./mysterious
- git clone https://github.com/100ZZ/mysterious-jmeter.git
- docker-compose up -d
- 访问平台
- 平台访问:http://xx.xx.xx.xx:1234
- Swagger文档:http://xx.xx.xx.xx:4321/swagger-ui.html
- 运行配置
- 内存配置:docker-compose.yml里后端服务预分配了1G内存,可根据需求调整
- 引擎内存:mysterious-jmeter/bin/jmeter里配置HEAP内存2g-4g-512m,可根据需求自行调整
- 配置管理:MASTER_HOST_PORT修改为本地IP:PORT,作为压测报告预览的路径前缀,修改完重启容器
- 运行路径:Master和Slave节点有关引擎的执行路径都可以在配置管理里进行修改,然后重启容器
- 版本更新
- 后端更新:更新mysterious容器(最新的docker/${架构}.env配置覆盖${BASE_DIR}/.env),重启容器
- 前端更新:更新dist目录,覆盖docker/mysterious/nginx/html/dist,重启mysterious-nginx容器
- 库表变更:检查数据库脚本(docker/init.sql),执行变更部分的sql即可;因为db容器初始化sql只首次生效
⚙️ Slave节点:压测引擎部署(分布式压测,Slave作为压力机,启动Jmeter-Server服务)
- 无特殊情况,推荐高配置单节点部署来进行压测就行了,因为分布式压测交互也有开销
- 无Slave节点Agent服务启用,就只有Master单节点进行压测
- 只要有Slave节点Agent服务启用,就会进行分布式压测,Master节点作为Client
如果需要分布式压测,找到和Master节点网络互通的Slave节点进行部署,最好是局域网,否则网络开销太大;无论Master节点是二进制还是Docker-Compose部署,Slave节点部署方式都如下
- mkdir /opt/mysterious
- cd /opt/mysterious
- git clone https://github.com/100ZZ/mysterious-jmeter.git
- 如果之前有一些测试用例,可以页面节点管理,先点击一下节点同步,会将Master节点用例数据都同步到Slave节点,然后启用Slave节点即可
- 只要有Slave节点启用,压测都会是分布式压测,如果全都禁用,压测就只是Master单节点压测
- 具体Slave节点的目录结构都是可配置的,具体可以参考配置管理页面
- 同样的内存配置相关的,参考docker-compose部分的说明