Jmeter 物联平台MQTT 分布式多客户端压力测试----实战

前言:通过jmeter分布式压力测试部署方案可实现百万个设备同时上传数据到物联网服务器,同时可生成测试报告

一)Windows下安装Jmeter5.1.1

安装JDK

1、登录官网:www.oracle.com
2、登录用户
3、在这里插入图片描述
4、在这里插入图片描述
5、在这里插入图片描述
6、
在这里插入图片描述
7、在这里插入图片描述
8、运行该程序
9、配置环境变量
10、
这里补充说明一下,主机与压力机的jdk版本要保持一致,不然会出错
jmeter版本也要保持一致
jdk下载地址:https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html

安装Jmeter

1、官网下载 jmeter 安装 zip 包
打开链接:https://jmeter.apache.org/download_jmeter.cgi
找到:Apache JMeter 5.1.1
找到:Binaries
下载Apache JMeter 5.1.1.zip
在这里插入图片描述
2、配置系统环境变量
电脑搜索“高级系统设置”,查看高级系统属性,点击“环境变量”按钮,操作“系统属性”
在这里插入图片描述

3、设置jmeter解压目录的JMETER_HOME环境变量:
系统属性:
新建
变量名:JMETER_HOME
变量值:jmeter安装的路径(浏览目录:定位到jmeter-zip包的解压目录)
确定
在这里插入图片描述

4、设置jmeter的bin目录的path环境变量:
系统属性:
找到一个变量名为path(也可能是Path或PATH)的系统变量
编辑
新增变量值:变量值后加一个英文分号“;”,分号后输入jmeter的bin路径(浏览目录:定位到jmeter安装包下的bin目录)
确定
在这里插入图片描述

5、设置jmeter的classpath变量:
系统属性:
找到一个变量名为CLASSPATH的系统变量
编辑
变量值后新增:
;%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;
确定
在这里插入图片描述
6、最后点击所有弹出窗后的“确定”,确认保存所设置的3个系统变量。

7、运行jmeter
进入jmeter下的bin目录,点击打开jmeter.bat文件
在这里插入图片描述

jemeter汉化

option
choose language
Chinese simplified
在这里插入图片描述
bin目录下jmeter.properties用编辑器打开,搜索language,将注释去掉,zh_CN加上
在这里插入图片描述
重新启动JMeter

安装jmeter插件

1、登录:https://jmeter-plugins.org/wiki/PluginsManager/后下载插件jmeter-plugins-manager-1.3
2、将插件放入Jmeter安装目录下的lib/ext
在这里插入图片描述
3、重启jmeter
4、选项下打开jmeter管理器
5、下载插件
在这里插入图片描述

jmeter目录结构

在这里插入图片描述

二)安装MQTT插件

1、下载插件安装

链接: 下载地址.
在这里插入图片描述

2、将mqtt-xmeter-2.0.2-jar-with-dependencies.jar插件放入apache-jmeter-5.1.1\lib\ext目录下
在这里插入图片描述

验证

在这里插入图片描述

三)编写压力测试脚本

需求:47个客户端同时向物联平台上行数据,同时每隔3秒上行一次

1、添加线程组

在这里插入图片描述

2、CSV 数据文件设置

在这里插入图片描述
在这里插入图片描述

3、添加仅一次控制器

MQTT Connect只需要连接一次物联网,不需要重复连接,所以需要添加逻辑控制器

4、在仅一次控制器下添加MQTT Connect

server name or ip :服务器公网ip地址
user name :客户端的用户名填写位置,由于进行了csv参数化处理,这里填写变量名 ${product}
在这里插入图片描述

5、添加循环控制器

控制MQTT Pub Sampler组件无线循环发送数据到物联平台
在这里插入图片描述

6、在循环控制器下添加MQTT Pub Sampler

在这里插入图片描述

7、在MQTT Pub Sampler下添加固定定时器

控制MQTT Pub Sampler发送数据的时间间隔
在这里插入图片描述

8、根据业务实际需要添加监听器

9、测试是否成功

失败的话,检查下前面是否配置出错,业务不同配置的数据是不一样的,不能生搬硬套
在这里插入图片描述

四)使用centos作为分布式分机

1、使用软碟通将centos7.4写入u盘

2、配置网络服务

[root@localhost]# cd /etc/sysconfig/network-scripts
[root@localhost]# vi ifcfg-ens33
将ONBOOT=no 改为 ONBOOT=yes
[root@localhost]# service network restart
[root@localhost]# systemctl restart network.service
[root@localhost]# systemctl status network

3、使用xshell连接centos

查看网卡ip
[root@localhost]# ip addr

在这里插入图片描述

4、解决centos ifconfig无法使用问题

查找ifconfig命令在哪个包里
[root@localhost ~]# yum search ifconfig
[root@localhost ~]# yum install net-tools.x86_64

5、安装lrzsz

lrzsz可用于上下行文件

[root@localhost ~]# yum -y install lrzsz

下载文件,执行命令sz
上传文件,执行命令rz

6、上传文件

链接: 下载地址.

上传apache-jmeter-5.1.1.tgz 与 jdk-8u261-linux-x64.tar.gz 文件到/home目录
在这里插入图片描述

7、安装jdk1.8

[root@localhost ~]# tar -zxvf jdk-8u261-linux-x64.tar.gz 
[root@localhost ~]# java -version
[root@localhost ~]# mv jdk1.8.0_261/ jdk1.8
[root@localhost ~]# yum -y install vim
[root@localhost ~]# vim /etc/profile
加入以下内容:
export JAVA_HOME=/home/jdk1.8
export JRE_HPME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
[root@localhost ~]# source /etc/profile
[root@localhost ~]# java -version

8、安装jmeter

[root@localhost ~]# tar -zxvf apache-jmeter-5.1.1.tgz 
[root@localhost ~]# vim /etc/profile
加入以下内容:
export JMETER=/home/apache-jmeter-5.1.1
export CLASSPATH=$JMETER/lib/ext/ApacheJMeter_core.jar:$JMETER/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar:$CLASSPATH
export PATH=$JMETER/bin/:$PATH
[root@localhost ~]# source /etc/profile
[root@localhost ~]# jmeter -v
出现以下内容才成功:
[root@localhost home]# jmeter -v
    _    ____   _    ____ _   _ _____       _ __  __ _____ _____ _____ ____     
   / \  |  _ \ / \  / ___| | | | ____|     | |  \/  | ____|_   _| ____|  _ \   
  / _ \ | |_) / _ \| |   | |_| |  _|    _  | | |\/| |  _|   | | |  _| | |_) | 
 / ___ \|  __/ ___ \ |___|  _  | |___  | |_| | |  | | |___  | | | |___|  _ <  
/_/   \_\_| /_/   \_\____|_| |_|_____|  \___/|_|  |_|_____| |_| |_____|_| \_\ 5.1.1 r1855137  

Copyright (c) 1999-2019 The Apache Software Foundation

五)控制机与压力机联合配置

通过前面的配置,Windows为主机控制端,centos为肉鸡,当然Windows也可以作为肉鸡

1、修改主机控制端配置文件

修改apache-jmeter-5.1.1\bin目录下的jmeter.properties文件

# Remote Hosts - comma delimited
remote_hosts=192.168.5.227:2099,192.168.5.200:2099
#remote_hosts=localhost:1099,localhost:2010

# RMI port to be used by the server (must start rmiregistry with same port)
server_port=2099

# Set this if you don't want to use SSL for RMI
server.rmi.ssl.disable=true
#---------------------------------------------------------------------------
#         Include Controller
#---------------------------------------------------------------------------

192.168.5.227:2099为主机控制端IP与RMI的端口号
192.168.5.200:2099为肉鸡的IP与RMI的端口号
server.rmi.ssl.disable=true的注释去掉
使用2099端口而没有使用1099的原因是最后远程控制的时候肉鸡拒绝了主机控制端,没搞懂是啥原因,如果你们1099能用就用1099吧…

2、修改肉鸡的配置文件

[root@localhost bin]# cd /home/apache-jmeter-5.1.1/bin/
[root@localhost bin]# vim jmeter.properties
修改内容如下:
# Remote Hosts - comma delimited
remote_hosts=192.168.5.200:2099
#remote_hosts=localhost:1099,localhost:2010

# RMI port to be used by the server (must start rmiregistry with same port)
server_port=2099

# Set this if you don't want to use SSL for RMI
server.rmi.ssl.disable=true
#---------------------------------------------------------------------------
#         Include Controller
编辑文件jmeter-server
[root@localhost bin]# vim jmeter-server
修改内容如下:
# One way to fix this is to define RMI_HOST_DEF below
RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.5.200

3、生成分布式测压安全密钥

运行主机控制端apache-jmeter-5.1.1\bin目录下的create-rmi-keystore.bat脚本,生成密匙时会问一些问题 设置答案,最后输入Y 敲击键盘enter键确认即可
在当前目录下会生成rmi_keystore.jks密钥文件
在这里插入图片描述
将此密钥文件放入肉鸡的/home/apache-jmeter-5.1.1/bin/目录下

chmod 777 rmi_keystore.jks

在这里插入图片描述

六)分布式压力测试

1、执行肉鸡服务器启动

[root@localhost bin]# cd /home/apache-jmeter-5.1.1/bin/
[root@localhost bin]# ./jmeter-server

2、主机控制端启动

在这里插入图片描述

3、运行脚本查看是否成功

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、主机端作为肉鸡

需要启动 jmeter-server.bat
然后启动 jmeter.bat
在这里插入图片描述

文章知识点与官方知识档案匹配,可进一步学习相关知识
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小桃子的思念

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值