RabbitMQ功能测试+性能测试简单方法
一、如何测试RabbitMQ的功能
1、联系开发找到队列的名称;登录MQ后台管理地址;点击Queues页,输入队列名搜索出目标队列(支持模糊查询)
2、准备测试数据
(1)已知json格式时,根据不同的场景,提前准备各种格式的json;
(2)未知json格式时,点击队列名,在Get Messages输入数量,点击Get Message(s)按钮,下方显示数据。复制出格式后,根据不同的场景,提前准备各种格式的json;
图1
图2
3、启动tomcat,如无异常,消费者线程已自动启动,重点关注自启动消费者
4、产生消息
(1)运行QueueTest中的producer产生消息(从代码层测试时)
(2)RabbitMQ上面直接publish
(3)产生MQ消息的地方操作产生
5、验证程序是否正确消费此消息
异常场景:
1、消费者启动后,未显示在队列的Consumers
2、消费者启动后,消费入库时报错
3、消费者启动后,输入正确的json,重复入库
4、消费者启动后,消费但未入库
5、消费者启动后,消费者刚开始显示,但后来消失(消费者假死)
6、消费者启动后,输入错误的json,消费失败
7、消费者启动后,消费者堵塞(队列阻塞,无法继续添加数据,可能导致服务挂掉)
二、如何测试 rabbitmq 的性能
测试持久化和非持久化状态下上述场景的收/发性能、不同消息大小状态的收/发性能。
轮持久化的重要性:持久化的服务器收到消息后就会立刻将消息写入到硬盘,就可以防止突然服务器挂掉,而引起的数据丢失了。但是服务器如果刚收到消息,还没来得及写入到硬盘,就挂掉了,这样还是无法避免消息的丢失。
Rabbitmq原生是非持久化状态,需要重新封装才能为持久化状态。常用的exchange类型有三个direct(发布与订阅)、fanout(广播)、topic(主题)
测试方法(百度知道搜索的,未亲自实践):
1、声明7个具有不同属性的queue,分别和名为test_exchage的exchange进行绑定(因为exchange为fanout类型,所以测试代码中的routing_key其实是不起作用的);
2、向exchange发送具有persistent属性的消息(delivery_mode=2);
3、创建7个消费者分别从上述7个queue中获取消息;
4、测试结果如下
三、学习资料
RabbitMQ功能测试+性能测试简单方法的更多相关文章
- rabbitMQ消息队列 – Message方法解析
消息的创建由AMQPMessage对象来创建$message = new AMQPMessage("消息内容");是不是很简单. 后边是一个数组.可以对消息进行一些特殊配置$mes ...
- Xcode7使用插件的简单方法&&以及怎样下载到更早版本的Xcode
Xcode7自2015年9上架以来也有段时间了, 使用Xcode7以及Xcode7.1\Xcode7.2的小伙伴会发现像VVDocumenter-Xcode\KSImageNamed-Xcode\HO ...
- chm转换为html的超简单方法
在Windows下chm转换为html的超简单方法(反编译CHM文件的方法) 通过调用Windows命令,将chm 文件转换为html 文件. 方法: 命令行(cmd),输入hh -decompile ...
- JS去掉首尾空格 简单方法大全(原生正则jquery)
JS去掉首尾空格 简单方法大全 var osfipin= ' http://www.cnblogs.com/osfipin/ '; //去除首尾空格 osfipin.replace(/(^\s*)|( ...
- python反转字符串(简单方法)及简单的文件操作示例
Python反转字符串的最简单方法是用切片: >>> a=' >>> print a[::-1] 654321 切片介绍:切片操作符中的第一个数(冒号之前)表示切片 ...
- 使用strace工具故障排查的5种简单方法
使用strace工具故障排查的5种简单方法 本文源自5 simple ways to troubleshoot using strace strace 是一个非常简单的工具,用来跟踪可执行程序的系统调 ...
- PhotoShop中画圆角矩形最简单方法(图文并茂)!
PhotoShop中画圆角矩形最简单方法(图文并茂)! 1. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHhubjUyMA==/font/5a6L5L ...
- ASP.net中导出Excel的简单方法介绍
下面介绍一种ASP.net中导出Excel的简单方法 先上代码:前台代码如下(这是自己项目里面写的一点代码先贴出来吧) <div id="export" runat=&quo ...
- 两个简单方法加速DataGridView
两个简单方法加速DataGridView (2009-03-24 16:57:13) 转载▼ 标签: 杂谈 分类: .NET DataGridView虽然好用,但是如果数据量比较大的话就会出现性能的问 ...
随机推荐
- (wifi)wifi移植之命令行调试driver和supplicant
前言 小弟从事android wifi framework部分开发已经有一年的时间了,虽然感觉什么都没有学习到,但是回想起刚接手android wifi时候的那份无知,其实肚子里面还是有点东西的,本着 ...
- css3实现图片划过一束光闪过效果
该效果在京东里的图片有. .img { display:block; position: relative; width:800px; height:450px; margin:0 auto; } . ...
- App接口加密解密方法
//加密 function encrypt($data) { $key = md5("safregr"); $str = base64_encode($data); $res = ...
- (10)C#静态方法,静态字段,静态类,匿名类
6.静态方法 使用静态方法就可不必用类的实例化调用次函数 class Test { public static void method() { ........ } //当调用一个method()时就 ...
- linux-配置字符串-grep
grep -rn "hello,world!" * * : 表示当前目录所有文件,也可以是某个文件名 -r 是递归查找 -n 是显示行号 -R 查找所有文件包含子目录 -i 忽略大 ...
- Handler嵌套--可以
package com.example.handlernestdemo; import android.support.v7.app.ActionBarActivity; import android ...
- 为Chrome多账户添加单独的快捷方式
Chrome的多账户功能非常好用,每个账户都有自己的独立的收藏夹.个人设置等.但是,当你要使用的账户不是默认账户时,必须经过一个切换的操作.本文将简单的介绍一个如何各账户添加快捷方式,从而实现直接登陆 ...
- Linux系统入门命令100条 转
https://www.howtoforge.com/linux-commands/ 2017-04-27 RiboseYim 睿哥杂货铺 Author : Himanshu Arora 原文:htt ...
- ArcMAP定义投影坐标
WGS84形式的高斯克吕格投影在ArcGIS系统中是不存在的,需要自己去定义.下面为MARK的定义过程.
- VUE -- 自定义控件(标签)
首先我们在 src目录下新建一个目录 叫”component”,建一个mycomponent.vue文件,然后也让他打2句话吧 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 ...