快捷搜索:  汽车  科技

jmeter容器部署,部署MeterSphere分布式环境全流程

jmeter容器部署,部署MeterSphere分布式环境全流程下载一份metersphere-release-v1.8.0-offline.tar.gz到虚拟机192.1.1.10目录/var/softwares下面,然后远程拷贝到192.1.1.11,192.1.1.12和192.1.1.13下。提取码:lgnz。https://github.com/metersphere/metersphere/releases本次选择v1.8.0版本进行安装。链接:https://pan.baidu.com/s/1LNquYhdZ-I4Q586j0Ifl9A

以下文章来源于CSDN博客分享,作者Wickor。

由于性能测试所需并发量大,压力机又不止一台,所以在这里介绍下使用MeterSphere的分布式部署方案。

jmeter容器部署,部署MeterSphere分布式环境全流程(1)

Step 1:准备机器

首先,准备3台虚拟机当做压力机Slave,IP分别为192.1.1.11,192.1.1.12和192.1.1.13。一台虚拟机当做控制器Web端Master,IP为192.1.1.10。

在MeterSpere官网下载离线安装包,访问网址:

https://github.com/metersphere/metersphere/releases

本次选择v1.8.0版本进行安装。链接:

https://pan.baidu.com/s/1LNquYhdZ-I4Q586j0Ifl9A

提取码:lgnz。

下载一份metersphere-release-v1.8.0-offline.tar.gz到虚拟机192.1.1.10目录/var/softwares下面,然后远程拷贝到192.1.1.11,192.1.1.12和192.1.1.13下。

Step 2:设置路径权限

这个是把metersphere-release-v1.8.0-offline.tar.gz去解压/var/softwares/metersphere目录,要把权限掩码设置为0022:

#umask0022

加这个参数可以看清楚是什么权限:

# umask -S u=rwx g=rx o=rx

运行完可以看出:所有者是读写执行权限,组用户是读执行权限,其它用户是读执行权限。

解压metersphere-release-v1.8.0-offline.tar.gz文件:

#tar-xvzfmetersphere-release-v1.8.0-offline.tar.gz-C./metersphere

如果运行ls -ll后发现文件夹metersphere-release-v1.8.0-offline没有执行权限,需要接着运行下面命令赋予执行权限:

# ls -ll /var/softwares/metersphere/ drwxr-xr-x 5 root root 4096 3月 30 13:35 metersphere-release-v1.8.0-offline #sudochmod-R755/var/softwares/metersphere/Step 3:免密访问设置

首先在每个Linux虚拟机,运行ssh-keygen生成秘钥文件,~代表你Linux虚拟机上的个人登录home目录:

# cd ~/.ssh #ssh-keygen

一路回车后可以看到有私钥文件id_rsa,公钥文件id_rsa.pub生成。

接着拷贝公钥到远程主机,这是一个疏漏点,切记。如果配置不当,在v1.7.3版本安装后总是报错:

#NonHTTPresponsecode:org.apache.http.conn.HttpHostConnectException

Master要给每个Slave发送调度命令和传输脚本,接着每个Slave要回传压测数据给Master上的Kafka,所以使用如下命令把Master和Slave的公钥互相拷贝至~/.ssh/authorized_keys里:

#ssh-copy-id<主机名或ip>

使用vi命令查看Master或Slave虚拟机里面的~/.ssh/authorized_keys文件,两个文件中互相有对方公钥即可。

注:增加一个小知识,ssh会把你每个访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。

Step 4:Master安装

在/var/softwares/metersphere/metersphere-release-v1.8.0-offline文件夹下,找到install.conf,打开后确定安装模式为allinone:

MS_MODE=allinone

然后执行命令:

#sudoshquick_start.sh

由于重启机器,控制台信息没有保存下来,只有一个较早版本v1.7.3安装截屏。

jmeter容器部署,部署MeterSphere分布式环境全流程(2)

运行检查状态命令:

# sudo msctl status Name Command State Ports ------------------------------------------------------------------------------------------------------------------- kafka /opt/bitnami/scripts/kafka ... Up (healthy) 0.0.0.0:19092->19092/tcp 9092/tcp ms-data-streaming /deployments/run-java.sh Up (healthy) 0.0.0.0:8084->8084/tcp 0.0.0.0:8085->8085/tcp ms-node-controller /deployments/run-java.sh Up (healthy) 0.0.0.0:8082->8082/tcp ms-server /deployments/run-java.sh Up (healthy) 0.0.0.0:8081->8081/tcp mysql docker-entrypoint.sh mysqld Up (healthy) 0.0.0.0:3307->3306/tcp 33060/tcp zookeeper/opt/bitnami/scripts/zooke...Up(healthy)2181/tcp 2888/tcp 3888/tcp 8080/tcp

注:状态显示healthy表示正常,如果是starting就需要等等,如果是exited说明有问题。

Step 5:Slave安装

在/var/softwares/metersphere/metersphere-release-v1.8.0-offline文件夹下,找到install.conf,打开后确定安装模式为allinone:

MS_MODE=node-controller

然后执行命令:

#sudoshquick_start.sh

控制台信息如下:

--2021-03-31 18:06:08-- https://github.com/metersphere/metersphere/releases/latest/download/metersphere-release-.tar.gz 正在解析主机 github.com (github.com)... 52.74.223.119 正在连接 github.com (github.com)|52.74.223.119|:443... 失败:拒绝连接。 tar (child): metersphere-release-.tar.gz:无法 open: 没有那个文件或目录 tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error is not recoverable: exiting now quick_start.sh: 第 15 行:cd: metersphere-release-: 没有那个文件或目录 ======================= 开始安装 ======================= time: 2021年 03月 31日 星期三 18:06:22 CST [MeterSphere Log]: 检测到 Docker 已安装,跳过安装步骤 [MeterSphere Log]: 启动 Docker Redirecting to /bin/systemctl start docker.service [MeterSphere Log]: 检测到 Docker Compose 已安装,跳过安装步骤 [MeterSphere Log]: 加载镜像 Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/jmeter-master:5.3-ms15 Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/kafka:2 Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/metersphere:v1.8.0 Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/ms-data-streaming:v1.8.0 Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/ms-node-controller:v1.8.0 Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/mysql:5.7.25 Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/zookeeper:3 [MeterSphere Log]: 启动服务 Removing network metersphere_ms-network Removing volume metersphere_ms-conf Removing volume metersphere_ms-logs Removing volume metersphere_ms-data Removing volume metersphere_ms-jmeter-data Creating network "metersphere_ms-network" with the default driver Creating volume "metersphere_ms-conf" with default driver Creating volume "metersphere_ms-logs" with default driver Creating volume "metersphere_ms-data" with default driver Creating volume "metersphere_ms-jmeter-data" with default driver no such image: registry.cn-qingdao.aliyuncs.com/metersphere/ms-node-controller:: invalid reference format Name Command State Ports ------------------------------ ======================= 安装完成 ======================= 请通过以下方式访问: URL: http://$LOCAL_IP:8081 用户名: admin 初始密码: metersphere 您可以使用命令'msctlstatus'检查服务运行情况.

运行检查状态命令:

# sudo msctl status Name Command State Ports ------------------------------------------------------------------------------------- ms-node-controller/deployments/run-java.shUp(healthy)0.0.0.0:8082->8082/tcp

注:状态显示healthy表示正常,如果是starting就需要等等,如果是exited说明有问题。

Step 6:添加资源

登录任何一台机器的浏览器,输入http://localhost:8081或http://<master_ip>:8081访问web端,用户名:admin,密码:metersphere。

访问【系统设置】→【系统】→【测试资源池】,单击【创建资源池】,配置JMeter HEAP的JVM运行参数和GC策略:

jmeter容器部署,部署MeterSphere分布式环境全流程(3)

同时添加Slave压力机,填写IP,Port和最大并发数。

添加后,注意【测试资源池】页面会显示“修改成功”提示信息,如果发现【启用/禁用】选项没有高亮显示紫色,则需要点击那个开关使刚才设置的压力资源生效,否则是不能在压测过程中使用刚才配置的压力资源的

jmeter容器部署,部署MeterSphere分布式环境全流程(4)

Step 7:升级

如果安装完之后有版本升级,可以通过运行以下命令升级Master和Slave:

#sudomsctlupgrade

因为我是全新安装的v1.8.0所以并没有进行升级。但是一定确保Master和Slave的版本要一致。

Step 8:开始分布式测压

点击【性能测试】→【创建测试】:

jmeter容器部署,部署MeterSphere分布式环境全流程(5)

点击【场景配置】→【加载JMX文件】→【上传JMX文件】添加压测脚本:

jmeter容器部署,部署MeterSphere分布式环境全流程(6)

这里上传的是bzm - Concurrency Thread Group阶梯发压线程组脚本,令人惊奇的是MeterSphere居然自动识别出来了,然后点击【压力配置】标签页设置发压参数设置,比如选择资源池,并发用户数,时长等:

jmeter容器部署,部署MeterSphere分布式环境全流程(7)

第3个标签页是【高级配置】,我暂时没有用到,以后会介绍这个,来个截图吧。

jmeter容器部署,部署MeterSphere分布式环境全流程(8)

好了,点击【保存并执行】按钮,过一会MeterSphere切换至报告页面,展示压测实时数据如下:

【测试概览】标签页

jmeter容器部署,部署MeterSphere分布式环境全流程(9)

【请求统计】标签页

jmeter容器部署,部署MeterSphere分布式环境全流程(10)

【错误记录】标签页

jmeter容器部署,部署MeterSphere分布式环境全流程(11)

【日志详情】标签页

jmeter容器部署,部署MeterSphere分布式环境全流程(12)

如果你想快速搭建一个压测平台,MeterSphere无疑是最有效的开源工具,感兴趣的朋友不妨试试!感谢MeterSphere的团队的无私奉献!

————————————————
版权声明:本文为CSDN博主「Wickor」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

https://blog.csdn.net/gocode/article/details/115362745

猜您喜欢: