RabbitMQ基本功能测试用例(Java实现)

为了测试RabbitMQ是否好用,编写了一个由Java语言编写的RabbitMQ基本功能测试用例,仅供参考。

代码说明:

由于实现语言是Java,因此有Java虚拟机(安装了JDK或JRE)即可测试,不需要像Python一样需要安装第三方模块,便于Docker环境下做简单测试。在此测试用例用用到了amqp-client-3.x.x.jar库,可以自行下载。

为实现一个java源文件中实现收与发(编译后还是3个Class文件),在main函数中起了两个线程,一个负责发,一个负责收,用来测试RabbitMQ消息的收与发。发送消息是每2s发一次(实现:Java Thread Sleep),为了每次发送消息内容的不同消息内容中加入了Java随机数(实现:Java Random)。

代码如下:

package com.devops.broker.rabbitmq.client;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.QueueingConsumer;

import java.io.IOException;
import java.util.Random;

class send extends Thread {
    private final static String QUEUE_NAME = "hello";

    public void run() {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("10.6.28.46");
        factory.setPort(5672);
        factory.setUsername("guest");
        factory.setPassword("guest");

        Random randomIntNumber = new Random();

        try {
            while (true) {
                Connection connection = factory.newConnection();
                Channel channel = connection.createChannel();

                channel.queueDeclare(QUEUE_NAME, false, false, false, null);
                String message = "Hello World!";
                Long ThreadID = send.currentThread().getId();
                message = message + " Thread ID: " + ThreadID.toString() + " Random Num: " + randomIntNumber.nextInt();
                channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
                System.out.println("Sent ‘" + message + "‘");
                System.out.println("");
                channel.close();
                connection.close();
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }

        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

class receiver extends Thread {
    private final static String QUEUE_NAME = "hello";

    public void run() {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("10.6.28.46");
        factory.setPort(5672);
        factory.setUsername("guest");
        factory.setPassword("guest");
        try {
            Connection connection = factory.newConnection();
            Channel channel = connection.createChannel();

            channel.queueDeclare(QUEUE_NAME, false, false, false, null);

            QueueingConsumer consumer = new QueueingConsumer(channel);
            channel.basicConsume(QUEUE_NAME, true, consumer);

            while (true) {
                QueueingConsumer.Delivery delivery = consumer.nextDelivery();
                String message = new String(delivery.getBody());
                System.out.println("Received ‘" + message + "‘");
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

}

public class Main {

    public static void main(String[] args) throws IOException {
        send send = new send();
        send.start();

        receiver receiver = new receiver();
        receiver.start();
    }
}

tag:RabbitMQ Java demo,测试用例,功能测试

--end--

时间: 2024-10-28 16:17:37

RabbitMQ基本功能测试用例(Java实现)的相关文章

RabbitMQ - Publish/Subscribe in Java

这次我们试试publish / subscribe模式, 也就是将一个消息发送给多个consumer. 这里用一个简单的小程序来说明publish / subscribe. 由一个provider提供消息,这个消息会被多个consumer接收. consumer对同一个消息做出不同的反应,比如打印.保存到文件.数据库什么的. 之前的例子可能会给人这种感觉: producer将消息发送到队列中,消息缓冲在队列中,consumer从队列获得消息. 但这并不正确. 在rabbit中,producer从

LotusScript提升大字符串拼接函数(功能类似java中StringBuffer)

LotusScript提升大字符串拼接函数(功能类似java中StringBuffer),代码如下: Class StringBuffer Public count As Integer Private arr() As String Private size As Integer Private increment As Integer Sub New(Byval a As Integer) Redim arr(a) increment=a count=0 End Sub Sub add(By

功能测试用例深入设计_花样案例汇总

一些定义: 客户端:安卓版app,IOS版app 服务器端:服务器服务范畴内的所有服务(不含数据库,不含nginx,不含防火墙) 接口文档:特指客户端和服务器端的接口文档(两个部门开发协商后的产物) 案例一.客户端行为与接口文档中某接口的极度隐晦关系 客户端结构:一层外壳Demo(有游戏,社交软件等),内部支付SDK(被外壳包围,需要支付时调用该SDK) Demo SDK 业务交互场景: 1.DemoA把一个加密后的token传递给服务器端,其中token=md5("DemoA的包名"

【tool】浅谈功能测试用例模板

[摘要]本文介绍测试用例一般要素,以及如何根据项目特点设计测试用例模板,用以提高测试用例设计效率和实现测试用例执行结果报告的自动化计算,分析测试用例覆盖率. 测试用例设计和执行是测试工作的核心,也是工作量最大的任务之一,设计良好的测试用例模板能提高测试用例的设计质量,便于跟踪测试用例的执行结果,自动生成测试用例覆盖率报告.这几年测试技术和理论有了长足的发展,就功能测试用例设计要素而言,样式上均大同小异,一般都包含主题.前置条件.执行步骤.期望结果等. 测试用例可以用数据库.Word .Excel

Dapr Pub/Sub 集成 RabbitMQ 、Golang、Java、DotNet Core

前置条件: <Dapr运用> <Dapr 运用之 Java gRPC 调用篇> <Dapr 运用之集成 Asp.Net Core Grpc 调用篇> 搭建 RabbitMQ Docker 搭建 RabbitMQ 服务 docker run -d --hostname my-rabbit --name some-rabbit -p 5672:5672 -p 15672:15672 rabbitmq:3-management 创建 rabbiqmq.yaml apiVers

功能测试用例的书写

功能性测试用例 1.测试的来源,及测试的需求 测试用力的主要来源有: 1)需求说明及相关文档 2)相关的设计说明(概要设计,详细设计等) 3)与开发组交流对需求理解的记录(可以是开发人员的一个解释) 4)已经基本成型的UI(可以有针对性的补充一些用例) 简而言之,所有你能得到的项目文档,都尽量拿到.从所得道德资料中分解出若干小的"功能点",理解"功能点",编写相应的测试用例. 2.用例的组织方式 不同的公司有不同的做法,原则上,只要方便管理和跟踪,怎么组织都可以.

Linux Eclipse代码提示功能设置(Java &amp; C/C++)

最近在Linux下开发,由于长期使用Visual Studio 2010,对代码提示功能情有独钟,现在在Linux下,使用Eclipse做开发,当然免不了怀念Visual Studio强悍的代码提示,于是在网上搜索了一些文章,整理出关于Eclipse代码提示功能设置的方法. Java: 增强Eclipse 的代码提示功能,具体怎么样来配置?下面开始说步骤: 1. 打开Eclipse,然后“window”→“Preferences” 2. 选择“java”,展开,“Editor”,选择“Conte

我的功能测试用例是怎么写

目前我见过的用例都有什么样的? 见过的第一份测试用例是一个用excel写的几千条,只有几个tab页简单的进行了分类,密密麻麻看的我头皮发麻,至今实在想不起当时是怎么执行完的了.大多数用例都是类似上面这种,也百度过各种测试用例的写法,都没有什么让人眼前一亮之处. 测试用例的作用: 1.由测试人员来执行 2.检验软件的准确性 3.让新员工熟悉业务 4.提交给客户 什么样的用例才是好用例? 首先还是百度了一下,资料不多,大概有以下几个点: 1.用例覆盖程度 2.用例是否已经达到工作量最小化, 3.用例

功能测试用例编写

学了很久的测试,第一次尝试自己写了一个web登入功能的用例测试: 1.单个模块的测试用例 测试类型 功能测试 模块名称 XXXXX系统用户登入 用例描述 该用例用来测试在登入界面,用户能否正常登入,如果出错,是否能给出出错信息 前置条件 存在正确的用户名和密码:登入页面正常加载,错误信息提示正确(数据库有用户信息test/12345Test) 编号 测试项 操作步骤 数据 期望结果 1 界面检查 1.界面装载 2.检查界面的标题 3.检查文本框默认的焦点 4.检查tab键的正常使用 1.登入界面