首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何打印Gatling JMS请求答复

如何打印Gatling JMS请求答复
EN

Stack Overflow用户
提问于 2022-04-06 14:03:03
回答 1查看 138关注 0票数 0

我是gatling世界的新手,我尝试使用gatling JMS支持将消息发送到TIBCO ()。我能够发送消息,但我不知道如何打印请求答复。

对于http请求,我只是在logback-test.xml中取消注释,这行是:

<logger name="io.gatling.http.engine.response" level="TRACE" />

这是我的gatling JMS设置:

代码语言:javascript
复制
object GetEMSConn {


  val jndiBasedConnectionFactory = jmsJndiConnectionFactory
    .connectionFactoryName("FACTORY_NAME")
    .url("tibjmsnaming://JNDI-A.company-name")
    .credentials("anonymous", "xxx")
    .contextFactory("com.tibco.tibjms.naming.TibjmsInitialContextFactory")

  val jmsProtocol = jms
    .connectionFactory(jndiBasedConnectionFactory)
    //    .matchByCorrelationId
    .matchByMessageId
    .useNonPersistentDeliveryMode
    //    .usePersistentDeliveryMode
    .credentials("credentials", "password")
    .listenerThreadCount(1)
    .replyTimeout(1000.seconds)
}
代码语言:javascript
复制
object JMSScenario {

  val feedData = csv("testData/data.csv").circular

val jmsScenario = scenario("JMS DSL test")
    .repeat(5) {
      feed(feedCID)
        .exec(jms("My test")
          .requestReply
          .queue("MY_QUEUE")
          .textMessage("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope</soapenv:Body>\n</soapenv:Envelope>")
          .jmsType("SoapAction")
        )
    }
}
代码语言:javascript
复制
class JMSSimulation extends Simulation {

  private val jmsEx = JMSScenario.jmsScenario
    .inject(
      atOnceUsers(1)
    ).protocols(GetEMSConn.jmsProtocol)

setUp(
    jmsEx
  )
    .maxDuration(10.seconds)
    .assertions(global.responseTime.max.lt(5000))
}

当我运行上面的代码时,我只得到以下内容:

代码语言:javascript
复制
Simulation com.simulations.JMSSimulation started...

================================================================================
2022-04-06 12:17:03                                           0s elapsed
---- Requests ------------------------------------------------------------------
> Global                                                   (OK=5      KO=0     )
> My test                                                  (OK=5      KO=0     )

---- JMS DSL test --------------------------------------------------------------
[##########################################################################]100%
          waiting: 0      / active: 0      / done: 1     
================================================================================

Simulation com.simulations.JMSSimulation completed in 0 seconds
Parsing log file(s)...
Parsing log file(s) done
Generating reports...

================================================================================
---- Global Information --------------------------------------------------------
> request count                                          5 (OK=5      KO=0     )
> min response time                                     20 (OK=20     KO=-     )
> max response time                                     46 (OK=46     KO=-     )
> mean response time                                    28 (OK=28     KO=-     )
> std deviation                                          9 (OK=9      KO=-     )
> response time 50th percentile                         24 (OK=24     KO=-     )
> response time 75th percentile                         28 (OK=28     KO=-     )
> response time 95th percentile                         42 (OK=42     KO=-     )
> response time 99th percentile                         45 (OK=45     KO=-     )
> mean requests/sec                                      5 (OK=5      KO=-     )
---- Response Time Distribution ------------------------------------------------
> t < 800 ms                                             5 (100%)
> 800 ms < t < 1200 ms                                   0 (  0%)
> t > 1200 ms                                            0 (  0%)
> failed                                                 0 (  0%)
================================================================================

我还尝试使用simpleCheck()方法进行检查:

代码语言:javascript
复制
object JMSScenario {

  val feedData = csv("testData/data.csv").circular

val jmsScenario = scenario("JMS DSL test")
    .repeat(5) {
      feed(feedCID)
        .exec(jms("My test")
          .requestReply
          .queue("MY_QUEUE")
          .textMessage("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope</soapenv:Body>\n</soapenv:Envelope>")
          .jmsType("SoapAction")
          .check(simpleCheck(checkBodyTextCorrect))
        )
    }

  def checkBodyTextCorrect(m: Message) = {
    // this assumes that the service just does an "uppercase" transform on the text
    print("in check \n")
    m match {
      case tm: TextMessage => tm.getText == "<"
      case _ => false
    }
  }
}

但是当我检查的时候,只是考试不及格,我不明白为什么.

代码语言:javascript
复制
---- Requests ------------------------------------------------------------------
> Global                                                   (OK=0      KO=5     )
> My test                                                  (OK=0      KO=5     )
---- Errors --------------------------------------------------------------------
> JMS check failed                                                    5 (100.0%)

有人能帮助我了解如何打印请求回复的信息吗?:)

EN

回答 1

Stack Overflow用户

发布于 2022-04-07 08:13:46

我找到了解决办法:

src/test/resources/logback-test.xml中添加下一行:

代码语言:javascript
复制
<logger name="io.gatling.jms" level="TRACE"/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71768204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档