MQ(message queue)消息队列,是基础数据结构 先进先出 的一种典型数据结构。一般用来解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。
MQ 主要产品包括:RabbitMQ、ActiveMQ、RocketMQ、ZeroMQ、Kafka
MQTT 是轻量的 (Lightweight)、发布订阅模式 (PubSub) 的物联网消息协议
至于现在企业中,特别是电商企业中,喜欢用 MQ 的原因,可以参考阅读:https://www.zhihu.com/question/54152397 文章写的不错,还挺有趣的
注意:如果已经有 MQTT 环境,环境搭建这一章节,可以跳过
准备一台 Linux 机器(以 centos7),搭建国内开源 emqx 项目,目前该项目最新版本,还未发布 centos8 版本,所以,如果您的电脑为 centos8,CentOS7 均可以执行:
如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386
【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337
执行:
MQTT 服务采用 TCP 协议传输数据,端口有多个,其中可以外部访问的端口默认 1883。
管理台访问端口 18083,用户:admin,密码:public
配置及日志
配置文件:/etc/emqx/emqx.conf
listener.tcp.external = 0.0.0.0:1883 # 可以外网访问的端口
listener.tcp.internal = 127.0.0.1:11883 # 只能本机访问
log.dir = /var/log/emqx # 日志文件路径
log.level = warning # 日志级别
log.file = emqx.log # 日志文件,会自动在后面增加数字
日志文件:/var/log/emqx
参考:
https://docs.emqx.io/broker/v3/cn/install.html#
https://docs.emqx.io/broker/latest/cn/
安装插件 MQTT Protocol Support
启动 jmeter,进入 选项(options) > Plugins Manager > Available Plugins 搜索 MQ, 选择 MQTT Portocol Support, 然后安装并重启 jmeter。
安装成功后,在 jmeter 的取样器中,新增了 MQTT Publisher、MQTT Subscriber
其中,MQTT Subscriber 是注册一个主题,MQTT Publisher 是使用主题发送消息。
添加 MQTT Subscriber 在 Provider URL 地址中,填写你的服务器 ip,然后点击右侧的 Generate ID 自动生成 Client ID,然后再在 Topic 中,输入一个主题信息,在 Text Message 中,填写要发布的信息。run 一下,就成功了。
使用 WebSocket 插件
在插件管理中,安装 WebSocket Samplers by Peter Doornbosch
安装成功后,在取样器中,添加 WebSocket Open Connection, 协议选择默认的 ws, ip 填写你的服务器 ip 地址,端口默认为 8083,Path 根据你的 MQ 的 socket 地址填写。
再添加 WebSocket Single Write Sample, Connection 选择 use existing connection, 在 Request data 中,填写要发送的信息,run 一下,搞定。
好了, 关于 Jmeter 如何调用 MQ 的测试方法,我们就介绍到这。你都掌握了吗?