我是gatling世界的新手,我尝试使用gatling JMS支持将消息发送到TIBCO ()。我能够发送消息,但我不知道如何打印请求答复。
对于http请求,我只是在logback-test.xml中取消注释,这行是:
<logger name="io.gatling.http.engine.response" level="TRACE" />
这是我的gatling JMS设置:
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)
}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")
)
}
}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))
}当我运行上面的代码时,我只得到以下内容:
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()方法进行检查:
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
}
}
}但是当我检查的时候,只是考试不及格,我不明白为什么.
---- Requests ------------------------------------------------------------------
> Global (OK=0 KO=5 )
> My test (OK=0 KO=5 )
---- Errors --------------------------------------------------------------------
> JMS check failed 5 (100.0%)有人能帮助我了解如何打印请求回复的信息吗?:)
发布于 2022-04-07 08:13:46
我找到了解决办法:
在src/test/resources/logback-test.xml中添加下一行:
<logger name="io.gatling.jms" level="TRACE"/>https://stackoverflow.com/questions/71768204
复制相似问题