Тест почтальона - тест автоматизации - PullRequest
0 голосов
/ 23 января 2020

Как я могу написать Почтальон тест, который проверяет, содержит ли мое тело ответа nets": {"4": "1"}? У меня есть проблема, чтобы поместить эту "parameter_list": { "2": ... часть в pm.expect(). «parmeter_list» может содержать много объектов с именем «число»

{
    "request_id": 358624578,
    "product_list": [
        {
            "symbol": "AX-174",
            "value_ids": [
                271,
                1437038,
                .
                .
                .
                1757620
            ],
            "id": 65869
        }
    ],
    "do_show": true,
    "do_show_list": {
        "do_show_products": true,
        "do_show_parameters": true,
        "do_show_parameter_values": true,
        "do_show_flags": false
    },
    "parameter_list": {
        "2": {
            "value_type_id": 0,
            "name_full_txt": "Producent",
            "unit_text": null,
            "product_count": 1,
            "nets": {
                "3": "1"
            },
            "pos": 0,
            "id": 2
        }
    }
}

1 Ответ

1 голос
/ 23 января 2020

Если вам нужно протестировать только с ключом "2" в parameter_list , я бы предложил следующее решение:

const jsonBody = pm.response.json();
const parameterList = jsonBody.parameter_list["2"];
const nets = {
    "nets": {
        "4": "1"
    }
};

pm.test("check parameter '2' contains nets",  () => pm.expect(parameterList).to.deep.include(nets));

Я считаю, что вы можете легко изменить оба nets и parameterList в соответствии с вашим фактическим регистром.

РЕДАКТИРОВАТЬ: Если вам нужно перебрать все объекты в parameter_list , вы можете использовать for..in l oop в вашем тесте:

const jsonBody = pm.response.json();
const nets = {
    "nets": {
        "3": "1"
    }
};

pm.test("check all parameters contains nets",  () => {
    for(let parameter in jsonBody.parameter_list) {
        pm.expect(jsonBody.parameter_list[parameter]).to.deep.include(nets);
    }
});

Или для большей читабельности используйте tests[]:

for(let parameter in jsonBody.parameter_list) {
    tests[`Check 'nets' object is in ${parameter} parameter`] = pm.expect(jsonBody.parameter_list[parameter]).to.deep.include(nets);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...