一、如何测试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中的交换机

RabbitMQ系列二(构建消息队列)

RabbitMQ之PublisherConfirm实战总结

RabbitMQ功能测试+性能测试简单方法的更多相关文章

  1. rabbitMQ消息队列 – Message方法解析

    消息的创建由AMQPMessage对象来创建$message = new AMQPMessage("消息内容");是不是很简单. 后边是一个数组.可以对消息进行一些特殊配置$mes ...

  2. Xcode7使用插件的简单方法&&以及怎样下载到更早版本的Xcode

    Xcode7自2015年9上架以来也有段时间了, 使用Xcode7以及Xcode7.1\Xcode7.2的小伙伴会发现像VVDocumenter-Xcode\KSImageNamed-Xcode\HO ...

  3. chm转换为html的超简单方法

    在Windows下chm转换为html的超简单方法(反编译CHM文件的方法) 通过调用Windows命令,将chm 文件转换为html 文件. 方法: 命令行(cmd),输入hh -decompile ...

  4. JS去掉首尾空格 简单方法大全(原生正则jquery)

    JS去掉首尾空格 简单方法大全 var osfipin= ' http://www.cnblogs.com/osfipin/ '; //去除首尾空格 osfipin.replace(/(^\s*)|( ...

  5. python反转字符串(简单方法)及简单的文件操作示例

    Python反转字符串的最简单方法是用切片: >>> a=' >>> print a[::-1] 654321 切片介绍:切片操作符中的第一个数(冒号之前)表示切片 ...

  6. 使用strace工具故障排查的5种简单方法

    使用strace工具故障排查的5种简单方法 本文源自5 simple ways to troubleshoot using strace strace 是一个非常简单的工具,用来跟踪可执行程序的系统调 ...

  7. PhotoShop中画圆角矩形最简单方法(图文并茂)!

    PhotoShop中画圆角矩形最简单方法(图文并茂)! 1. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHhubjUyMA==/font/5a6L5L ...

  8. ASP.net中导出Excel的简单方法介绍

    下面介绍一种ASP.net中导出Excel的简单方法 先上代码:前台代码如下(这是自己项目里面写的一点代码先贴出来吧) <div id="export" runat=&quo ...

  9. 两个简单方法加速DataGridView

    两个简单方法加速DataGridView (2009-03-24 16:57:13) 转载▼ 标签: 杂谈 分类: .NET DataGridView虽然好用,但是如果数据量比较大的话就会出现性能的问 ...

随机推荐

  1. html控件使用

    <html> <head> <title>登录页面</title> </head> <body> <form action ...

  2. Vue.js之父子组件

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. 关于JAVA SESSION的小测试

    手生就要多练啊... package com.jeelearning.servlet; import java.io.IOException; import java.io.PrintWriter; ...

  4. 最新版 VS2015|Visual Studio Enterprise 2015简体中文版(企业版)

    Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品. Visual Studio 2015 是一个丰富的集成开发环境,可用于创建出色的 Windows.And ...

  5. FZU-2219 StarCraft(贪心)

     Problem 2219 StarCraft Accept: 294    Submit: 860Time Limit: 1000 mSec    Memory Limit : 32768 KB   ...

  6. Xamarin XAML语言教程基本页面ContentPage占用面积

    Xamarin XAML语言教程基本页面ContentPage占用面积 基本页面和基本视图都是在开发应用程序时最为常用的.本章将讲解有关基本页面ContentPag.基本视图ContentView.控 ...

  7. 将一个txt里的A和B谈话内容获取出来并分别保存到A和B的txt文件中

    import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream;import java.io.Fi ...

  8. COCOS2d 标准 android.MK

    LOCAL_PATH := $(call my-dir) include$(CLEAR_VARS) LOCAL_MODULE := game_shared PP_CPPFLAGS := -frtti ...

  9. Runtime对象

    Runtime简单概念: Runtime:每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接. * 这也是jvm实现跨平台的一个重要原因. * 可以通过 ge ...

  10. Bluetooth篇 开发实例之七 匹配&UUID

    匹配和通信是两回事. 1.用过Android系统设置(Setting)的人都知道蓝牙搜索之后可以建立配对和解除配对,但是这两项功能的函数没有在SDK中给出.但是可以通过反射来获取. 知道这两个API的 ...