RabbitMQ是實現了高級消息隊列協議(AMQP)的開源消息中間件,它是基於Erlang語言編寫的,併發能力強,性能好,是目前主流的消息隊列中間件之一。
RabbitMQ的安裝可參照官網( https://www.rabbitmq.com/),安裝完以後啟動管理服務,RabbitMQ提供強大的管理功能。
在使用Jmeter處理RabbitMQ以前,首先需要了解AMQP協議關於隊列的規定,RabbitMQ支持下列幾種隊列:
• Basic queue 簡單隊列:一個Producer對一個Consumer,功能類似於ActiveMQ的P2P模式
• Work queue 輪詢分發 : 一個Producer對應多個 Consumer,可以採用輪詢或其他算法來設置Consumer進行消費,Producer的消息會被其中某一個Consumer消費
• Fanout Exchange:生產者不將消息發送到消息隊列,而是發送到交換機,每個隊列綁定到交換機,生產者發送的消息經過交換機到達隊列,實現一個消息被多個消費者消費的目的,功能類似於ActiveMQ的Topic/Subscriber模式
• Direct Exchange:路由模式,根據key進行交換機和隊列綁定
• Topic Exchange:通配符模式,一個消費者隊列可以有多個消費者實例,其中只有1個實例會接收到消息
較為常用的有Direct Exchange和FanoutMode,本文以DirectExchange為例說明如何使用Jmeter處理RabbitMQ消息中間件。在使用Jmeter發送和消費RabbitMQ消息以前,我們首先通過控制檯在RabbitMQ裡新建一個Direct Exchange的交換機,並通過Key綁定相應隊列
安裝JmeterRabbitMQ插件
Jmeter沒有內置對RabbitMQ的支持,在使用Jmeter發送和接受RabbitMQ以前,需要首先下載相應插件包編譯後放置到Jmeter的lib當中( https://github.com/jlavallee/JMeter-Rabbit-AMQP )安裝完插件包以後,新建Jmeter腳本,可以在腳本中看到AMQP Publisher和AMQP Consumer取樣器,分別對應AMQP協議的消息發送者和消息接受者。
Jmeter發送RabbitMQ消息
新建AMQP Publisher,因為本示例採用的是Direct Fanout模式,填寫完RabbitMQ連接信息以後,在Publisher裡需要指定對應的消費者的綁定Key以及交換機
Jmeter接受RabbitMQ消息
新建AMQP Consumer,此處指定RabbitMQ連接信息,交換機名稱,類型以及隊列名即可(需要和生產者匹配)
運行腳本,查看結果數,此時也可以通過RabbitMQ控制檯看到消息發送和接受的情況。
作 者:Testfan kitty
出 處:微信公眾號:自動化軟件測試平臺
閱讀更多 安然—Testfan 的文章