JMeter: как утверждать для каждого значения записи при чтении тестовых данных из CSV в цикле - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть файл CSV, и я использую Loop Controller для циклического прохождения строк из файла CSV.Теперь мой вопрос: как я могу утверждать для каждого ответа для каждого значения, которое я получаю из файла CSV?Например, мой одиночный HTTP-запрос зацикливается 5 раз, поскольку в CSV-файле есть 5 значений, теперь как зацикливаться для каждой итерации, поскольку я не могу утверждать в HTTP-запросе, что только первый проход lop проходит, а остальные завершаются ошибкой.Дайте мне знать, если мне не ясно, чтобы я мог опубликовать свой пример в виде изображений.

Я пытался подтвердить запрос HTTP, но только первый сэмплер прошел бы, а остальные потерпели бы неудачу, потому что утверждение не было быдопустимо для второй итерации.

Я бы хотел, чтобы каждая итерация имела утверждение

1 Ответ

0 голосов
/ 18 февраля 2019

Не имея полной информации о вашем запросе, ответе и файле CSV, довольно сложно придумать точную и лучшую конфигурацию, однако, учитывая природу вашего запроса, я бы порекомендовал перейти, например, Утверждение JSR223 , который является наиболее гибким способом установки пользовательских критериев прохождения / неудачи.

Соответствующий код будет выглядеть примерно так:

switch (vars.get('__jm__Loop Controller__idx') as int) {
    case 0:
        log.info('Processing iteration 1')
        if (!prev.getResponseDataAsString().contains('specific value for iteration 1')) {
            AssertionResult.setFailure(true)
            AssertionResult.setFailureMessage('your custom failure message')
        }
        break
    case 1:
        log.info('Processing iteration 2')
        if (!prev.getResponseDataAsString().contains('specific value for iteration 2')) {
            AssertionResult.setFailure(true)
            AssertionResult.setFailureMessage('your custom failure message')
        }
        break
    case 2:
        //etc
        break
    case 3:
        break
    case 4:
        break
}

где:

  • __jm__Loop Controller__idx - предопределенная переменная JMeter , содержащая текущую итерациючисло
  • prev является сокращением для SampleResult экземпляра класса, его можно использовать для доступа к ответным данным родительского сэмплера, коду, заголовкам, метрикам и т. д.
  • AssertionResult - это сокращение для экземпляра класса AssertionResult , его можно использовать для установки результата сэмплера и сообщения об ошибке

Дополнительная информация: СценарииУтверждения JMeter в Groovy - учебное пособие

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