03.03 Jmeter中間件處理-RabbitMQ

Jmeter中間件處理-RabbitMQ

RabbitMQ是實現了高級消息隊列協議(AMQP)的開源消息中間件,它是基於Erlang語言編寫的,併發能力強,性能好,是目前主流的消息隊列中間件之一。

Jmeter中間件處理-RabbitMQ


Jmeter中間件處理-RabbitMQ


RabbitMQ的安裝可參照官網( https://www.rabbitmq.com/),安裝完以後啟動管理服務,RabbitMQ提供強大的管理功能。


Jmeter中間件處理-RabbitMQ


在使用Jmeter處理RabbitMQ以前,首先需要了解AMQP協議關於隊列的規定,RabbitMQ支持下列幾種隊列:


Jmeter中間件處理-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綁定相應隊列


Jmeter中間件處理-RabbitMQ


Jmeter中間件處理-RabbitMQ

安裝JmeterRabbitMQ插件

Jmeter沒有內置對RabbitMQ的支持,在使用Jmeter發送和接受RabbitMQ以前,需要首先下載相應插件包編譯後放置到Jmeter的lib當中( https://github.com/jlavallee/JMeter-Rabbit-AMQP )安裝完插件包以後,新建Jmeter腳本,可以在腳本中看到AMQP Publisher和AMQP Consumer取樣器,分別對應AMQP協議的消息發送者和消息接受者。


Jmeter中間件處理-RabbitMQ


Jmeter中間件處理-RabbitMQ

Jmeter發送RabbitMQ消息

新建AMQP Publisher,因為本示例採用的是Direct Fanout模式,填寫完RabbitMQ連接信息以後,在Publisher裡需要指定對應的消費者的綁定Key以及交換機


Jmeter中間件處理-RabbitMQ


Jmeter中間件處理-RabbitMQ

Jmeter接受RabbitMQ消息

新建AMQP Consumer,此處指定RabbitMQ連接信息,交換機名稱,類型以及隊列名即可(需要和生產者匹配)

Jmeter中間件處理-RabbitMQ


運行腳本,查看結果數,此時也可以通過RabbitMQ控制檯看到消息發送和接受的情況。


Jmeter中間件處理-RabbitMQ

作  者:Testfan kitty

出  處:微信公眾號:自動化軟件測試平臺


分享到:


相關文章: