如何对RabbitMQ服务器进行负载测试(使用JMeter、Python或任何其他工具)?

7
我被授权访问一个RabbitMQ服务器,以对其进行负载测试。我完全是新手,对服务器和AMQ协议一无所知。我正在在线研究有哪些不同的方法。到目前为止,我正在调查两种方法。
  1. JMeter; 我找到了这个项目:https://github.com/jlavallee/JMeter-Rabbit-AMQP#build-dependencies。它给了我一个jar文件,我可以创建JMeter AMQP消费者和发布者,但我不知道该在字段中放什么。(虚拟主机 vs 主机 - 不知道我的端口 -..) enter image description here

  2. Python; 使用Pika。 我有一个简单的发送器脚本,它从我的客户端连接到我的服务器,并向服务器发送“hello world”文本。还编写了一个接收器脚本来接收这些“hello world”。如果我打开多个终端并同时运行10个发送器脚本,这是否是负载测试的确定因素?

再次说明,我之所以提出所有这些问题,是因为我是新手,对服务器、云、负载测试和JMeter一无所知。这只是我必须完成的任务。
感谢您能为我澄清一些事情的任何答案。
2个回答

8
你可以使用RabbitMQ的Java客户端工具:
https://www.rabbitmq.com/java-client.html

它带有一个PerfTest:
https://www.rabbitmq.com/java-tools.html

你可以使用以下命令运行它:
./runjava.sh com.rabbitmq.examples.PerfTest \
-h amqp://<user>:<password>@<host>:<port>/<vhost> \
-x <number_of_producers> \
-y <number_of_consumers> \
-s <message_size> \
-C <total_number_of_message> \
-u <queue_name>

如果你查看文档或源代码,还可以使用其他标志。

更新/自我推销
我写了一个 Web 应用程序,将这些工具整合到一个地方 https://github.com/johnlonganecker/rabbitmq-performance-appenter image description here


看起来 PerfTest.java 现在已经移动到 com.rabbitmq.perf 包中了。您可能需要更新您的答案。 - Sanketh
谢谢你告诉我,我会在有机会的时候进行更新。 - jlonganecker

3
一旦您拥有了jar文件,请将其放置在jmeter/lib/ext文件夹下。现在打开Jmeter并准备一个测试计划。 步骤1:要点击测试计划,请右键单击测试计划,然后转到 添加->线程(用户)->线程组。给线程组命名:

enter image description here

步骤2:然后右键单击您的组并转到添加->采样器->AMQP发布者:

enter image description here

将主机设置为“localhost”,端口设置为“5672”,用户名和密码设置为“guest/guest”。
根据您的交换设置,还可以选择/取消选择“持久性”等功能。
步骤3:然后右键单击您的组,转到添加->监听器->图形结果:

enter image description here

步骤 4:现在保存测试计划并执行。

enter image description here

如果需要更详细的设置,请参考我的博客:

http://jatinanejablog.blogspot.in/2016/06/configure-jmeter-to-load-test-rabbit-mq.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接