Гатлинг. Проверить, содержит ли результат HTML некоторую строку

Программирование теста производительности Gatling Мне нужно проверить, содержит ли HTML, возвращаемый сервером, предопределенную строку. Это так, сломайте тест с ошибкой.

Я так и не узнал, как это сделать. Это должно быть примерно так:

  val scn = scenario("CheckAccess")
    .exec(http("request_0")
      .get("/")
      .headers(headers_0)
      .check(css("h1").contains("Access denied")).breakOnFailure()
      )

Я назвал желаемые функции «содержит» и «breakOnFailure». Есть ли у Гатлинга что-то подобное?


person 30thh    schedule 24.02.2016    source источник


Ответы (3)


Лучшие решения:

с одним селектором CSS:

.check(css("h1:contains('Access denied')").notExists)

с подстрокой:

.check(substring("Access denied").notExists)

Примечание: если то, что вы ищете, встречается только в одном месте в вашем ответе, подстрока, безусловно, более эффективна, поскольку ей не нужно анализировать ее в DOM.

person Stephane Landelle    schedule 01.03.2016
comment
Можно ли выполнить эту проверку после публикации? Я могу связать эту проверку с получением, но не с постом ... Спасибо - person Y-B Cause; 22.01.2018

Вот решение

.check(css("h1").transform((s: String) => s.indexOf("Access denied"))
.greaterThan(-1)).exitHereIfFailed
person 30thh    schedule 01.03.2016

Вы можете написать это очень просто, например:

.check(css("h1", "Access denied").notExists)

Если вы не уверены в H1, вы можете использовать:

.check(substring("Access denied").notExists)    

Сервер IMO должен ответить правильным статусом, таким образом:

.check(status.not(403))

Наслаждайтесь и смотрите http://gatling.io/docs/2.1.7/http/http_check.html для подробностей.

РЕДАКТИРОВАТЬ: Мое использование селектора CSS неверно, см. Решение Stephane Landelle с CSS. Большую часть времени я использую подстроку :)

person Teliatko    schedule 29.02.2016
comment
css (h1, Доступ запрещен) ищет атрибут Доступ запрещен внутри тега h1. - person 30thh; 01.03.2016