JMeter json path assert json или array в ответе

Я провожу тестирование api с помощью Jmeter и использую утверждение пути json к телу ответа. Проблема в том, что тело ответа дает два варианта ответа, основанные на успехе и неудаче.

за неудачу

{
    "response": {
        "error_message": "Invalid input data.",
        "error_code": "Invalid_input",
        "error": true
    }
}

для успеха

{
    "response": [
        {
            "attachment_name": "num1.png",
            "attachment_id": 2547,
            "error": false
        },
        {
            "attachment_name": "num2.png",
            "attachment_id": 2548,
            "error": false
        },
        {
            "attachment_name": "num3.png",
            "attachment_id": 2549,
            "error": false
        }
    ]
}

Здесь я добавляю утверждение о пути и значении "ошибки", но путь меняется в результате. Добавлено$.response.error но это работает только в случае отказа

Пожалуйста, помогите мне найти правильный путь и отстоять оба условия. Спасибо.

2 ответа

Решение

Вы можете использовать оператор глубокого сканирования ..соответствующая конфигурация утверждения JSON будет выглядеть примерно так:

всякий раз, когда вы получаете error Атрибут JSON со значением trueУтверждение не сможет выполнить соответствующий Сэмплер (ы) в своей области

Вы можете использовать регулярное выражение для проверки обоих значений (истина или ложь) в утверждении JSON.

Пример плана тестирования доступен для справки на GitHub.

Надеюсь, это будет полезно.

Другие вопросы по тегам