Size: a a a

Postman | Community

2020 May 19

NV

Nick Verbitsky in Postman | Community
В большинстве случаев делать тест на то, что у нас парсится JSON избыточно.
Если JSON, то тесты не упадут.
Если не JSON, то упадет с json parse error и дальше код не будет исполняться, быстрее перейдем к другой итерации (если конечно там нет уже осмысленных трай кетчей)
источник

S

Sulaiman in Postman | Community
Nick Verbitsky
> Думаю, тут мы должны спросить его, что могло поломаться при деплое в qa и от этого понять, что тестить помимо фичи?

Я бы сказал, что стоит уточнить, конечно, но брать ответ на веру не стоит.
Лучше самому глянуть на PR, какие функциональности были затронуты и от этого плясать.
С другой стороны, если есть регрессионный пак и есть время его пройти, то стоит это сделать.
пo API пока нет, только приступил к обязанностям, но могу спросить коллекции у dev'а. Спасибо
источник

S

Sulaiman in Postman | Community
Nick Verbitsky
Я бы сказал, что такое лучше нигде не использовать и никому не показывать.
:)) я не автор, просто один qa поделился. Тогда не включаю в тесты
источник

S

Sulaiman in Postman | Community
Nick Verbitsky
> это занимает 1-2 минуты авто теста или проверить парочку итераций (когда настраиваю Runner)?

Если занимает 1-2 минуты на одного пользователя или целиком?
Если целиком, то конечно прогонять.
Если на пользователя, то получается прогон займет максимум 300 минут - 5 часов. Тут уже от проекта зависит.
Можно прогнать на парочке записей смоуком, а потом на ночь оставить полный пак.
то есть в идеале такие лучше прогонять, даже если выборочные проходят? не, ну запрос занимает 69-100 мс примерно, получается 150*100мс. Просто лучшая практика и адекватность-проверять по макс?
источник

S

Sulaiman in Postman | Community
а когда они могут занимать столько аж 5 часов или около? бывают запросы обрабатываются так долго?
источник
2020 May 20

SH

Sha743 Hun in Postman | Community
Hi, in postman for a user need to create three billing address, how to write a loop for this scenario
источник

NV

Nick Verbitsky in Postman | Community
Sha743 Hun
Hi, in postman for a user need to create three billing address, how to write a loop for this scenario
Could you provide a more information?
There are several ways to implement loops, but it's not clear what you're trying to achieve.
источник

NV

Nick Verbitsky in Postman | Community
Sulaiman
то есть в идеале такие лучше прогонять, даже если выборочные проходят? не, ну запрос занимает 69-100 мс примерно, получается 150*100мс. Просто лучшая практика и адекватность-проверять по макс?
Что значит "выборочные проходят?".
источник

NV

Nick Verbitsky in Postman | Community
Sulaiman
а когда они могут занимать столько аж 5 часов или около? бывают запросы обрабатываются так долго?
Регрессионные паки могут идти по 5 часов, если их в 1 поток запускать.
источник

S

Sulaiman in Postman | Community
Спасибо! Подскажите, пожалуйста, кажется простой вопрос, но мне надо было проверить в одном тесте сразу 4 условия как oneOf и один из них пустой объект, чтобы тест проходил. То есть проверяем 150 человек, которые должны иметь в response body новый ключ (property) или иметь пустое тело вообще. И на момент запроса, значение этого ключа может быть любое (1,0, '', вообще пустой объект). Я перепробовал многое, но один из вариантов сделал так:
const jsonBody=pm.response.json();
if (jsonBody!== null) {
pm.expect(jsonBody.newProperty).to.be.oneOf([0,1,'']).

Не сработало, как быть?:) Этот тест не прокрывает пустой {} ответ. Как его включить как проходящее условие теста?
источник
2020 May 21

NV

Nick Verbitsky in Postman | Community
Потому что null это не {}.
источник

NV

Nick Verbitsky in Postman | Community
Sulaiman
Спасибо! Подскажите, пожалуйста, кажется простой вопрос, но мне надо было проверить в одном тесте сразу 4 условия как oneOf и один из них пустой объект, чтобы тест проходил. То есть проверяем 150 человек, которые должны иметь в response body новый ключ (property) или иметь пустое тело вообще. И на момент запроса, значение этого ключа может быть любое (1,0, '', вообще пустой объект). Я перепробовал многое, но один из вариантов сделал так:
const jsonBody=pm.response.json();
if (jsonBody!== null) {
pm.expect(jsonBody.newProperty).to.be.oneOf([0,1,'']).

Не сработало, как быть?:) Этот тест не прокрывает пустой {} ответ. Как его включить как проходящее условие теста?
const jsonBody=pm.response.json();
if (!_.isEmpty(jsonBody)) {
   pm.expect(jsonBody.newProperty).to.be.oneOf([0,1,'']);
}
источник

NV

Nick Verbitsky in Postman | Community
Sulaiman
Спасибо! Подскажите, пожалуйста, кажется простой вопрос, но мне надо было проверить в одном тесте сразу 4 условия как oneOf и один из них пустой объект, чтобы тест проходил. То есть проверяем 150 человек, которые должны иметь в response body новый ключ (property) или иметь пустое тело вообще. И на момент запроса, значение этого ключа может быть любое (1,0, '', вообще пустой объект). Я перепробовал многое, но один из вариантов сделал так:
const jsonBody=pm.response.json();
if (jsonBody!== null) {
pm.expect(jsonBody.newProperty).to.be.oneOf([0,1,'']).

Не сработало, как быть?:) Этот тест не прокрывает пустой {} ответ. Как его включить как проходящее условие теста?
источник

NV

Nick Verbitsky in Postman | Community
jfyi: _.isEmpty() делает что-то в духе Object.keys(emptyObject).length === 0 && emptyObject.constructor === Object;
источник

NV

Nick Verbitsky in Postman | Community
И советую прочитать про coercion в JS.
источник

NV

Nick Verbitsky in Postman | Community
источник

S

Sulaiman in Postman | Community
Nick Verbitsky
const jsonBody=pm.response.json();
if (!_.isEmpty(jsonBody)) {
   pm.expect(jsonBody.newProperty).to.be.oneOf([0,1,'']);
}
а как ты понимаешь какой синтаксис использовать? Где это взять !_.isEmpty()? и зачем там Underscore _? Плюс, если приходит пустой объект, он тоже должен быть как проходной тест, тут этого условия же нет?
источник

NV

Nick Verbitsky in Postman | Community
Nick Verbitsky
Собрал для нас список полезных материалов.

Документация
Postman
* [Postman Learning Center]
* [Postman on GitHub]

Postman Built-In Libraries
* [List of Postman Built-In Libraries]
* [chai.js]
* [ajv]
* [crypto-js]
* [uuid]
* [xml2js]
* [moment.js]
* [lodash]

Newman
* [Newman on GitHub]
* [Newman HTML Reporter on GitHub]

JS
* [developer.mozilla.org]

Статьи
Postman
* [Postman Blog]
* [Введение в Postman]

Newman
* [REST API Testing using Postman & Newman Essential Guide]

Книги
Postman
* [Postman Quick Reference Guide]
* [JavaScript for impatient programmers]

REST
* [Automating and Testing a REST API]

JS
* [You don't know JS: first edition]

Митапы
Postman
* [POST/CON 2019 - Workshops]

Youtube
Postman
* [New to Postman]
* [Postman Youtube Channel]
* [Valentin Despa Learn Postman]

Курсы
Postman
* [Postman: The Complete Guide - REST API Testing]

JS
* [Freecodecamp]
* [W3C JavaScript Tutorial]
* [Курс лекций по JavaScript и Node.js в КПИ]
* [Основы ES6]

FAQ
Postman
* [How to Write Global Functions in Postman]

Если хотите дополнить список - обращайтесь к @evgeny_shandrik /@nverbitsky или добавляйте изменения на GitHub.
up
источник

NV

Nick Verbitsky in Postman | Community
Ответы на все эти вопросы есть в доке.
источник

S

Sulaiman in Postman | Community
Nick Verbitsky
const jsonBody=pm.response.json();
if (!_.isEmpty(jsonBody)) {
   pm.expect(jsonBody.newProperty).to.be.oneOf([0,1,'']);
}
Плюс, если приходит пустой объект, он тоже должен быть как проходной тест, тут этого условия же нет?
источник