首页 > 解决方案 > Gatling 3.3.1/Scala:答案验证块没有获取我需要收到的答案

问题描述

尝试测试基于 socket.io 技术的程序,我尝试制作“exec”块序列,其中包含“sendText”函数和答案验证。

.exec(
ws("write first number")
.sendText("""424["/answer/Session", {"message":"message text"}]""")
  .await(30 seconds)( ws.checkTextMessage("server answer")
     .check(
     regex("""server answer text""")))
)

但是根据我的参数,加特林并没有抓住答案。它还忽略传出和传入消息的代码编号来选择答案。它选择一些似乎匹配的传入消息,然后根据我的参数进行验证并给出错误。

对于单线程,可以通过对每个传入消息进行多次验证来解决问题,这似乎与 gatling 匹配。喜欢

.exec(
ws("write first number")
.sendText("""424["/answer/Session", {"message":"message text"}]""")
  .await(30 seconds)( ws.checkTextMessage("server question was answered")
    .check(
      regex("""answered""")))
  .await(30 seconds)( ws.checkTextMessage("answer was displayed")
    .check(
      regex(""""data":"message text"""")))
  .await(30 seconds)( ws.checkTextMessage("receive success status")
    .check(
      regex(""""success":true""")))
  .await(30 seconds)( ws.checkTextMessage("server answer")
     .check(
     regex("""server answer text""")))

直到我得到必要的服务器答案。

但是当我尝试将线程数至少增加到 50 时,多重检查就成了问题。有没有办法更精确地指定验证消息?

标签: gatlingscala-gatlinggatling-plugin

解决方案


您必须定义匹配条件才能对正确的消息应用检查。


推荐阅读