Проверьте строку в симуляции Гатлинга - PullRequest
0 голосов
/ 11 октября 2019

Попытка проверить, существует ли строка в теле. Аналогично проверке статуса .check(status.is(200)). Я также хочу проверить строку. пробовал .check(bodyString.is("greeting")) но получил ошибку:

val scn = scenario("GreetingPages")
.during(testTimeSecs) {
  exec(
    http ("greeting")
      .get("/greeting")
      .check(status.is(200))
      .check(bodyString.is("Greeting"))
  ).pause(minWaitMs,maxWaitMs)
  .exec(
    http("greeting1")
      .get("/greeting1")
      .check(status.is(200))
      .check(bodyString.is("Greeting1"))
  ).pause(minWaitMs,maxWaitMs)
  .exec(
    http("Third page")
      .get("/greeting2")
      .check(status.is(200))
      .check(bodyString.is("Greeting2"))
  ).pause(minWaitMs,maxWaitMs)

}

---- Ошибки --------------------------------------------------------------------

bodyString.find.is (Greeting), но на самом деле найдено {"message": "G 9 (47,37%) повторяется"} bodyString.find.is (Greeting1), но фактически найдено {"message": "5 (26,32%)Greeting1 "} bodyString.find.is (Greeting2), но фактически найдено {" message ":" 5 (26.32%) Greeting2 "}

1 Ответ

0 голосов
/ 11 октября 2019

Причина в том, что bodyString возвращает полное тело ответа, как описано в документации .

. Вы можете использовать in matcher (вы можете увидеть реализацию здесь - ищите InMatcher [A] , но он не будет работать, потому что вам нужно переключить expected.contains(actualValue) с expected.contains(expected)

Я предлагаю вам реализовать свой собственный MyOwnInMatcher:

class MyOwnInMatcher[A](expected: Seq[A]) extends Matcher[A] {

  def name: String = "customIn"

  protected def doMatch(actual: Option[A]): Validation[Option[A]] = actual match {
    case Some(actualValue) =>
      if (expected.contains(actualValue))
        actual.success
      else
        s"found $actualValue".failure
    case _ => Validator.FoundNothingFailure
  }
}

и используйте его:

.check(jsonPath("$.message").validate(customIn("Greeting")))), который проверяет, существует ли «Приветствие» в атрибуте message тела ответа json.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...