Установите параметризованную проверку responseCode.code на уровне коллекции

Немного устал менять statusCode тестов ответа после смены конечной точки.

Хотите установить тест responseCode.code на уровне сбора только для двух кодов состояния - допустимый 200 и 204.

Теперь на уровне Коллекции я написал вот это:

if (responseCode.code === 204) {
    console.log("204");
} else {
    if (responseCode.code !== 200){
        pm.test("Status code is 200", function () {
        pm.response.to.have.status(200);
    });
        let responseJSON = JSON.parse(responseBody);
        console.log(responseJSON); 
        return;
    }
}

он проверяет статус правильно, но выдает его как ошибку кода в случае ошибки (например, возвращается ошибка сервера 500), а не как ожидаемый сбой. Соответственно, в TeamCity CI он не помечается как неудавшийся тест.

Кто-то использует что-то подобное для вашей коллекции с использованием:

pm.response.to.have.status(200);

or

responseCode.code

person Alexander Tunick    schedule 05.10.2018    source источник


Ответы (1)


Не могли бы вы просто использовать это:

pm.test("Check response code", () => {
    pm.expect(pm.response.code).to.be.oneOf([200, 204])
})

Довольно простой и может быть не тем, что вам нужно, но он не удастся, если возвращенный код ответа не равен 200 или 204.

person Danny Dainton    schedule 05.10.2018
comment
Уххх, почему это так просто :) Спасибо, чувак. это помогло. Единственное, что здесь немного неясно, что вы используете pm.expect вместо того, чтобы просто ожидать вместо pm.test, никогда не использовали эту опцию, необходимо прочитать об этом. - person Alexander Tunick; 05.10.2018
comment
Это не проблема, хотя не был уверен, что это все, что вам нужно. Это довольно простая проверка. Он просто использует синтаксис chaijs - chaijs.com/api/bdd - person Danny Dainton; 05.10.2018
comment
Ага, как я уже сказал, знаю, просто не умел пользоваться этим простым. Мне немного непонятно, что вы использовали pm.expect вместо того, чтобы просто ожидать, что почтальон предложит, и поведение в обоих вариантах различается. Но все равно что все, что мне было нужно - принять всего 2 варианта кода ответа в одном месте на всю коллекцию - person Alexander Tunick; 06.10.2018
comment
Почтальон использует pm.expect() для ссылки на библиотеку chai. Если вы использовали только expect в тесте, он, вероятно, потерпел неудачу. Я думаю, что старый модуль PostmanBDD, который использовался, просто ожидал, но сейчас кажется бессмысленным использовать его. - person Danny Dainton; 06.10.2018