使用Gatling将消息发布到ActiveMQ

时间:2016-06-23 00:05:49

标签: scala jms activemq performance-testing gatling

我一直在使用 Gatling 向ActiveMq服务器发布消息。我得到" java.lang.SecurityException:无效的用户名:null或空" 我使用有效的用户名和密码。这是我的测试代码,抛出了异常。关于如何解决这个问题的任何意见都会有所帮助。

import io.gatling.core.Predef.Simulation
import io.gatling.core.Predef._
import io.gatling.jms.Predef._
import io.gatling.core.config.Credentials
import org.apache.activemq.ActiveMQConnectionFactory
import org.apache.activemq.jndi.ActiveMQInitialContextFactory
import javax.jms._ 
    class WebProducer extends  Simulation{
      val jmsUsername:String="userName"
      val jmsPwd:String="Password"
      val jmsConfig = jms
        .connectionFactoryName("ConnectionFactory")
        .url("ssl://message01-dev.platform.net:61617")
        .credentials(jmsUsername,jmsPwd)
        .disableAnonymousConnect
        .contextFactory(classOf[org.apache.activemq.jndi.ActiveMQInitialContextFactory].getName)
         .listenerCount(1)
        .usePersistentDeliveryMode
        .receiveTimeout(6000)

      val scn = scenario("JMS DSL test").repeat(1) {
        exec(jms("req reply testing").
          reqreply
          .queue("YourJMSQueueName")
          .replyQueue("YourJMSQueueName")
          .textMessage("payload To be posted")
          .property("company_id", "1234598776665")
          .property("event_type","EntityCreate")
          .property("event_target_entity_type","Account")    
        )
      }
      setUp(scn.inject(atOnceUsers(1)))
        .protocols(jmsConfig)         
    }

以下是引发的异常:

java.lang.SecurityException: Invalid username:  null or empty

1 个答案:

答案 0 :(得分:1)

好的,我的工作增加了两件事:

-  .disableAnonymousConnect after  .credentials(jmsUsername,jmsPwd)
-  .replyQueue(jmsQueueName) after .queue(jmsQueueName)

我编辑了上面的代码以反映相同的内容。 快乐的加特林!