為了測試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--
本文出自 “通信,我的最愛” 博客,請務必保留此出處http://dgd2010.blog.51cto.com/1539422/1794635
Tags: private factory package public Random
文章來源: