Gatling — проверка значений в SOAP ResponseBoxy

#scala #soap #wsdl #load-testing #gatling

#scala #soap #wsdl #нагрузочное тестирование #gatling

Вопрос:

Я хочу проверить значение, которое возвращается в responsbody из веб-службы SOAP.

Вот пример ResponseBody из веб-службы:

 <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
     <ns5:getUserResponse xmlns:ns5="http://<someservice>" xmlns:ns3="java:com.mywebservice">
     <ns3:resultCode>0</ns3:resultCode>
   </S:Body>
</S:Envelope>
  

У меня есть следующее:

 ....//snipped for brevity
.check(regex("""<ns3:resultCode>(d*)</ns3:resultCode""").saveAs("resCode"))
.check("""${resCode}""".in(0 to 200))
....//snipped for brevity
  

Я получаю сообщение об ошибке о том, что .in недоступно для строкового типа, но я не уверен, как еще проверить, что ответ xml содержит определенные значения.

Любая помощь была бы потрясающей, и все остальное, что мне нужно, я должен более чем с радостью выполнить. Заранее спасибо.

РЕДАКТИРОВАТЬ: я забыл упомянуть, что я использую gatling версии 2.0.0-M3a — заранее спасибо.

Ответ №1:

С текущим 2.0.0-МОМЕНТАЛЬНЫМ СНИМКОМ это:

 .check(regex("""<ns3:resultCode>(d*)</ns3:resultCode""")
       .transform(_.toInt)
       .in(0 to 200))
  

С 2M3a это:

 .check(regex("""<ns3:resultCode>(d*)</ns3:resultCode""")
       .transform(_.map(_.toInt))
       .in(0 to 200))
  

Комментарии:

1.Я забыл упомянуть, что я использую 2.0.0-M3a. Я попробовал приведенный выше код, и это привело к: 38: error: value toInt is not a member of Option[String] .check(regex("""resultCode>(d )<""").transform(_.toInt).in(0 to 200))

2. Большое вам спасибо, это сработало. Я пробовал так много других способов, которые просто стали смешными.