性能测试工具 Jmeter 测试 JMS (Java Message Service)/ActiveMQ 性能

目录

前言

ActiveMQ 介绍

准备工作

编写jndi.properties添加到ApacheJMeter.jar 中

下载 ActiveMQ

配置 Jmeter 进行测试 点对点 (Queues 队列)

配置 Jmeter 进行测试 发布/订阅 (Topic 队列)

配置发布 Publisher

配置订阅 Subscriber

总结


前言

 JMeter是一个功能强大的性能测试工具,可以用于测试各种应用程序的性能,包括JMS(Java Message Service)和ActiveMQ。JMS是一种Java平台上的消息传递标准,而ActiveMQ是一个流行的开源JMS消息代理。

ActiveMQ 介绍


JMS 常见 2 种消息模型:

  1. 点对点 (Queues 队列)
    生产者产生消息,仍 1 条消息给 ActiveMQ,消费者监听 ActiveMQ,从 ActiveMQ 中取走 1 条消息,并销毁这个消息,且只会有一个监听的消费者取走.其他消费者不会取走信息
  2. 广播/订阅 (Topics 队列)
    广播出 1 条消息给 ActiveMQ,订阅监听 ActiveMQ,所有当时监听 ActiveMQ 的订阅都可以取到这条消息,并销毁这个消息,

3 . 虚拟 Topics
为什么说 2 种消息模型,这里会有第三种,因为 Topics 队列的性质决定,当我要发消息给很多订阅,但是如果订阅监听服务挂掉,就不能收到这个消息,导致消息未发布到这个订阅,所以引申出第三个消息模型,虚拟 Topics.
广播出 1 条消息给 ActiveMQ Topics 队列,ActiveMQ 会自动转换给要分发消息的订阅 Queues 队列.然后订阅监听 Queues 队列去取走消息.这 2 种消息模型的结合,产生出第三种消息模型,虚拟 Topics.

准备工作


以 ActiveMQ 为例子,使用 jmeter 测试 JMS.

  • Jmeter 版本:3.2
  • ActiveMQ 版本 5.14.5
编写jndi.properties添加到ApacheJMeter.jar 中
  • 新建jndi.properties到 jmeter/bin 目录下
  • 复制内容为:
java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory
java.naming.provider.url = tcp://IP:61616 connectionFactoryNames = connectionFactoryqueue.T_MDM_Q = Queue.T_MDM
queue.T_IPS_Q= Queue.T_IPStopic.T_MDM_T= VirtualTopic.T_MDM
topic.T_IPS_T= VirtualTopic.T_IPS

java.naming.factory.initial:ActiveMQ jar包中 init 所需的 类名
java.naming.provider.url:ActiveMQ的地址
connectionFactoryNames:链接工厂名称
queue.T_MDM_Q:队列名称
queue:说明是queue队列
T_MDM_Q:自定义字段,在后面用来指向队列名称
同理topic.T_MDM_T

  • 把配置文件打到ApacheJMeter.jar 中 在 jmeter/bin 目录下运行
    jar uf ApacheJMeter.jar jndi.properties
下载 ActiveMQ

把 ActiveMQ 下 activemq-all-x.x.x.jar放到 Jmeter/lib 下

配置 Jmeter 进行测试 点对点 (Queues 队列)


  1. 待测消息模型:点对点 (Queues 队列)
  2. 待测队列名称:Queue.T_MDM

右键》添加》sampler》JMS point-to-point 添加一个队列的界面
 

QueueConnection Factory:jndi.properties中 connectionFactoryNames 字段
JNDI Name Request queue:生产者向哪个队列插入消息,jndi.properties中对应待测队列名称的 queue.xxxxx
JNDI Name Reply queue:消费者从哪个队列取消息,jndi.properties中对应待测队列名称的 queue.xxxxx
Content:消息内容
InitialContextFactory:org.apache.activemq.jndi.ActiveMQInitialContextFactory
Provider URL:ActiveMQ 地址

配置 Jmeter 进行测试 发布/订阅 (Topic 队列)


  1. 待测消息模型:发布/订阅 (Topic 队列)
  2. 待测队列名称:VirtualTopic.T_MDM
配置发布 Publisher

右键》添加》sampler》JMS Publisher 添加一个 Publisher 界面
 


InitialContextFactory:org.apache.activemq.jndi.ActiveMQInitialContextFactory
Provider URL:ActiveMQ 地址
QueueConnection Factory:jndi.properties中 connectionFactoryNames 字段
Destination:发布往队列的名称,jndi.properties中对应 Topic 队列名称的 topic.xxxx
Text Massage:发布的消息

配置订阅 Subscriber

右键》添加》sampler》JMS Subscriber 添加一个 Publisher 界面
 

总结


上面只介绍了 ActiveMQ 的配置方法,因为我也只调了 ActiveMQ,其他 JMS 中间件没有试过,如果你们项目中需要,可以试一下.

  作为一位过来人也是希望大家少走一些弯路

在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。

(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等)

相信能使你更好的进步!

点击下方小卡片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/22585.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机械设计制造及其自动化专业向PLC方向发展的可行性

是的,机械设计制造及其自动化专业往PLC(可编程逻辑控制器)方向发展是可行的。PLC是一种用于控制和自动化各种机械设备和工业过程的计算机控制系统。它被广泛应用于工业自动化领域,包括制造业、能源行业、交通运输等。 我这里刚好…

ECMAScript 6 之二

目录 2.6 Symbol 2.7 Map 和 Set 2.8 迭代器和生成器 2.9 Promise对象 2.10 Proxy对象 2.11 async的用法 2.22 类class 2.23 模块化实现 2.6 Symbol 原始数据类型,它表示是独一无二的值。它属于 JavaScript 语言的原生数据类型之一,其他数据类型…

将媒体公司资产迁移到 Amazon S3 的技术方案

随着媒体公司的发展,他们在仓库中积累了大量的旧磁带和未数字化的视频。这些资产可能很有价值,但以目前的形式很难访问和货币化。此外,将这些资产存储在仓库中既有风险又昂贵。 媒体企业可以通过将其资产迁移到云存储来解决这些问题&#xf…

i.MX6ULL(十五) 根文件系统

Linux“三巨头”已经完成了 2 个了,就剩最后一个 rootfs( 根文件系统 ) 了,本章我们就来学 习一下根文件系统的组成以及如何构建根文件系统。这是 Linux 移植的最后一步,根文件系统 构建好以后就意味着我们已经拥有了一个完整的、可以运…

Android13 编译错误汇总

1. error: New setting keys are not allowed 一版是在Settings中添加了新的字段导致的 解决: 在你的字段上面加上SuppressLint("NoSettingsProvider") 继续编译应该会出现 按照提示 make api-stubs-docs-non-updatable-update-current-api 然后再…

Java反射与“整活--(IOC容器)”

文章目录 前言反射什么是反射基本操作获取类对象获取类属性获取类方法方法的执行对构造方法的操作 注解定义获取注解 整活(IOC容器)项目结构IOC/DI流程ApplicationContextBeanDefinitionReaderBeanDefinitionBeanWrappergetBean()…

【C++顺序容器】forward_list的成员函数和非成员函数

目录 forward_list 1. forward_list的成员函数 1.1 构造、析构和赋值运算符重载 1.1.1 构造函数 1.1.2 析构函数 1.1.3 赋值运算符重载 1.2 迭代器 1.3 容量 1.4 元素访问 1.4.1 遍历方法 1.5 修改器 1.6 操作 1.7 观察者 2. forward_list的非成员函数 forward_l…

3.SpringBoot 返回Html界面

1.添加依赖spring-boot-starter-web <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>2.创建Html界面 在Resources/static 文件夹下面建立对应的html&#xff0c…

实验:如何在YOLO8中添加PnP算法来实现Head Pose Estimation

目录 前言一、步骤二、PnP估计Head Pose&#xff0c;并显示1.引入库2.结果展示 总结 前言 YOLO&#xff18;的集成度比较高&#xff0c;如何在简洁的代码中加入Head Pose的东西&#xff0c;不是一件简单的事情&#xff0e;这里介绍如何插入PnP算法实现头部姿态估计的代码&…

Linux学习之vim在光标所在处写入内容,保存退出

vim insertTest使用vim打开一个叫做insertTest新文件。 输入命令之后&#xff0c;按下Enter&#xff08;回车键&#xff09;&#xff0c;就可以进入下边的操作页面。 按i在当前光标位置处&#xff0c;就可以插入内容了。 接下来写入内容跟记事本里边是差不多的。 按一下…

python_day8_综合案例

综合案例&#xff0c;全球GDP排行榜 1、知识点补充&#xff1a;sort()方法 sort()方法&#xff1a; 列表.sort(key选择排序依据的函数,reverseTrue|False) my_list [[a, 33], [b, 55], [c, 11]]def choose_sort_key(element):return element[1] # 列表中每个元素传进来&am…

Office如何通过VSTO进行PPT插件开发?

文章目录 0.引言1.工具准备2.PPT外接程序创建和生成3.外接程序生成并使用 0.引言 VSTO&#xff08;Visual Studio Tools for Office &#xff09;是VBA的替代&#xff0c;是一套用于创建自定义Office应用程序的Visual Studio工具包。VSTO可以用Visual Basic 或者Visual C#扩展O…