JMS 消息在 Gatling 中发送,但未收到回复 - 我哪里出错了?

JMS message sent in Gatling, but reply not received - Where am I going wrong?

我刚开始使用 Gatling 和 JMS 进行测试。从长远来看,我将寻找 Gatling 来让 JMS 侦听器等待 JMS 消息从我们的 AUT 放入队列,但现在我只是在沙盒中玩游戏以尝试掌握 Gatling 的 JMS 处理.我一直在查看谷歌搜索抛给我的各种例子,我想出的最好的例子如下:

package jmspublisher

import io.gatling.core.Predef._
import io.gatling.jms.Predef._
import javax.jms._
import scala.concurrent.duration._

    class WebProducer extends  Simulation{

  // create a ConnectionFactory for ActiveMQ
  // search the documentation of your JMS broker
  val connectionFactory =
    new org.apache.activemq.ActiveMQConnectionFactory("tcp://localhost:61616")


  val jmsUsername:String="admin"
  val jmsPwd:String="admin"

  val jmsConfig = jms
    .connectionFactory(connectionFactory)
    .usePersistentDeliveryMode
    .matchByCorrelationId

  val scn = scenario("JMS DSL test").repeat(1) {
    exec(jms("req reply testing").requestReply
      .queue("jmstestq")
      .replyQueue("repQueue")
      .textMessage("hello from gatling jms dsl")
      .jmsType("textMessage")
      .check(simpleCheck(checkBodyTextCorrect)))
  }
      setUp(scn.inject(atOnceUsers(1))).protocols(jmsConfig)         

  def checkBodyTextCorrect(m: Message) = {
    print ("here")
    print (m);  
    // this assumes that the service just does an "uppercase" transform on the text
    m match {
      case tm: TextMessage => tm.getText == "HELLO FROM GATLING JMS DSL"
      case _               => false
    }
  }
}

我可以在我的 activeMQ 控制台中看到创建了两个队列,一条消息在 jmstestq 上排队,并且 repQueue 在 运行 期间连接了一个侦听器 - 但是 repQueue 似乎从未收到来自 jmstestq 的消息,因此从未接收到响应,也从未进行过检查。

我确定我错过了一些简单的东西 - 但它是什么?!

你确定你有一个从 repQueue 读取然后在 repQueue 中写入响应消息的示例 AUT 吗? 如果没有,加特林只是在等待永远不会到达的响应。