Първо, малък отказ от отговорност: тази публикация първоначално е написана и публикувана на 25 януари 2016 г. и е мигрирана към среда.

Много хора не обичат да изпълняват или пишат тестове. Отнема време, понякога е разочароващо и доста повтаряща се работа.

Но защо? може да попитате.

Дълго време си мислех така, докато не открих едно красиво малко приложение, което може да озари деня ви. Всичко, което исках, беше инструмент, който ми помага да изпращам HTTP заявки към API. Попаднах на много приложения като „Advanced REST Client“ или „DHC — REST/HTTP API Client“. Всички вършат добра работа, някои от вас може да харесат някой от тях повече от Postman.

Работих с Postman около половин година, докато наистина открих пълния му потенциал – автоматизирани интеграционни тестове. След като открих тази функция, платих малката такса за Postman (като десет долара за доживотен лиценз, за ​​скептици: можете да тествате пълната версия за 14 дни) и започнах да се заблуждавам с функцията.

По принцип можете да използвате GUI на Postman, за да персонализирате напълно изпратените заявки. Можете да запазите тези заявки — и съответните конфигурации — в колекциите на Postman. Тези колекции служат за две цели: Повторно използване на вашите заявки за удобство и автоматизирани изпълнения. След като наборът от заявки е завършен — редът има значение! — можете да експортирате колекцията Postman в JSON файл. С този JSON и Newman (CLI частта на Postman) можете да използвате любимия си CI за изпълнение на автоматизирани HTTP заявки.

Всичко хубаво, но къде са тестовете? С платената версия на Postman във вашето приложение има нови два раздела: „Скрипт за предварителна заявка“ и „Тестове“. В скриптовете за предварителна заявка можете да задавате променливи или да зареждате неща, от които се нуждаете, но всъщност цялата магия се случва в тестове.

След като заявката бъде завършена, можете да стартирате тестове и следователно да проверите своя API за грешки. Има глобален речник „тестове“, който може да бъде попълнен с вашите твърдения. Тези твърдения трябва да са булеви и да се изпълняват синхронно. Такъв тестов сценарий може да бъде:

tests[‘Status code is 200’] = responseCode.code === 200;
tests[‘Response has a body’] = !!responseBody;

Има много библиотеки в пясъчника на пощальона, които ще опростят кода ви като:

  • Лодаш
  • jQuery
  • tv4 валидатор

С tv4 валидатора можете да използвате JSON схеми, за да потвърдите отговорите си, а с lodash и jquery имате властта да изпълнявате по-сложни тестове, както желаете.

Подготвих малка демо настройка за тези, които искат да опитат Postman и Newman. Можете да намерите кода в GitHub. API е доста тъп, той просто съхранява колекция от обекти, които могат да бъдат модифицирани, когато потребителят е влязъл. Избрах тази конкретна настройка, поради втората функция на Newman. Можете да стартирате колекцията си за повече от една итерация. Можете дори да започнете тестовете с различни данни за всяка итерация. Newman може да изпълнява един и същ набор от заявки с различни обекти с данни — съхранени в CSV или JSON масив — и по този начин да може да тества различни поведения на API. Пример може да бъде: Вземете продукт, актуализирайте го. Тази малка настройка може да бъде повторена 20 пъти и следователно да симулира реално използване на API.

Ще използвам Postman във всеки проект, който мога. Не само защото е полезно по време на процеса на разработка, но и с функцията за автоматизирани тестове можем да гарантираме качество и стабилна среда за нашия API. Много съм доволен от Postman и съм любопитен за бъдещето на това приложение.

И не на последно място една наистина добра причина, защо трябва да пишете интеграционни тестове, както и модулни тестове: