На сьогоднішній день процес тестування API є найбільш популярною та обговорюваною темою в сфері інтеграційного тестування. У наступних розділах ми детально розберемо програмні можливості утиліти Postman, яка використовується саме як основний компонент для тестування REST API, детально вивчимо деякі методи написання таких тестів на прикладі реального проекту (взятого, звичайно ж, з мережі - Яндекс. Словник).
Процес планування тестування
Перш ніж писати програмний код, слід відповісти на кілька запитань: “які методи будуть використовуватися в першу чергу”, “як саме буде виконуватися процес тестування”, “які можуть виникнути труднощі і складнощі”.
Розберемо кожну деталь.
Які методи будуть використовуватися в першу чергу?
Відповідаючи на це питання, слід насамперед звернутися до документації проекту. У нашому випадку “Яндекс. Словник” описує лише 2 методи(lookup та getLangs) та деякі параметри для кожного з них.
Як саме відбуватиметься процес тестування?
Перш за все, перед тим, як вибрати найбільш підходящий метод тестування, слід ретельно проаналізувати доступні параметри для кожного методу API. Початкові значення параметрів насправді різні, це може бути просте число, об’єкт зі списку значень або інші типи даних.
Для того, щоб використовувати кожен подібний параметр, ви повинні використовувати свій власний унікальний підхід: наприклад, якщо параметр є простим числом з допустимим значенням (максимальним), що станеться після відправки запиту у вигляді простого числа, яке набагато більше цього значення? Якщо наш API працює коректно, то ми отримаємо відповідь, яка покаже критичну помилку з таким значенням; повна відсутність помилки буде прямо означати, що API працює некоректно.
Для створення групи тестів з вихідними параметрами ми можемо використовувати різні методи конструювання тестів (наприклад, групи еквівалентності, валідні значення та методи подвійних тестів).
Які потрясіння та труднощі можуть статися?
Завжди потрібно враховувати кінцевий дедлайн, можливі проблеми з сервером та API, збої в роботі інтернету, швидку зміну значень API. Невеликий досвід в такому типі тестування і незнання мови програмування Javascript може збільшити час, необхідний для написання автоматизованих тестів.
Це означає, що витрачаючи час на створення та перевірку тестів, ви повинні врахувати максимальну кількість можливих ситуацій, які можуть трапитися на етапі розробки програмного забезпечення.
Оптимізована структура
До розробки тестів слід підходити дуже ретельно. Уявіть, що дизайн тестів - це частина вашого горезвісного баг-звіту.
Хороший код має добре продуману структуру, легко читається і є оптимальним.
Щоб зробити код завжди читабельним, варто використовувати деякі ефективні практики:
- Завжди намагайтеся дотримуватися інтервалів між функціональними блоками, заданими критеріями та циклами;
- Давати змінним короткі та зрозумілі назви;
- Не варто створювати численні логічні вирази всередині модальної конструкції;
- Використовуйте типові функції, не використовуйте вбудовані умови мов програмування.
Щоб ваш код завжди був читабельним і зрозумілим, вам слід ретельно покращити його структуру та послідовність. Всі згадані алгоритми повинні виконувати максимальну кількість кроків без системних помилок.
Для того, щоб досягти повної оптимальності та повної структури програмного коду в процесі написання тестів для аутсорсингу тестування програмного забезпечення API, слід говорити про 2 методи - вхідні дані та твердження (asserts).
Метод властивостей, що містяться
Цей метод означає, що кожне тестування, яке буде виконуватися, повинно бути ретельно описане в інструкції if else. Цей метод хороший тим, що якщо якась частина програми Postman не захоче працювати і перевіряти функціональність вашого API, то інші структури також не будуть перевірені.

Якщо-Інакше
QA-спеціаліст повністю економить свій час, витрачений на перевірку методів API, і може відразу зрозуміти, в чому причина і як впоратися з цією проблемою.
Хороший приклад написання дуже поганого коду:

Приклад поганого коду
Але для того, щоб цей метод працював належним чином, тестувальник повинен розставляти пріоритети для тестів, розуміти послідовність їх виконання, а також логічно мислити, що може зламатися в майбутньому і за яких умов.
Хороший приклад: великий пріоритет буде присвоєно коду статусу.
Якщо ви хотіли побачити код 200, а отримали інший, ви можете не продовжувати - просто покажіть статус помилки “вхідний код не дорівнює 200”.
Потім слід перевірити, чи є відповідь: якщо ні, то також показати очевидну помилку.
У цьому випадку помилка полягає в тому, що тестувальники створюють асоціативний масив зі значенням false, а підключене логічне тестування отримає оператор if.
Фактично, реалізація такого методу виглядає наступним чином:

Метод властивостей, що містяться
Метод тверджень
Такий підхід дозволить повністю реалістично імітувати роботу групи активів, оскільки в Javascript немає такої вбудованої функції або певного ключового слова. Для повного розуміння такого методу слід розібратися, як функціонує assert в інших мовах програмування.
Як відомо, Assert - це спеціалізований метод виклику програмної помилки, повного припинення роботи програми: в деяких випадках може бути переданий якийсь користувацький текст. У сфері розробки асертив використовує усталений алгоритм - якщо виникла системна помилка, слід викликати необхідний виняток з його детальним описом.
Автоматизована перевірка тестування API з використанням методу assert матиме наступну структуру:

Метод тверджень
Надсилання запиту з Postman
Під час первинної інсталяції Postman користувачеві стає доступна повна колекція “Postman Echo”. Простими словами, це спеціалізований набір усіх доступних запитів і відповідей, об’єднаних логікою.
Postman Echo спеціально розроблений для проведення нескладного тестування API з попередньо встановленими налаштуваннями, які не можна ігнорувати.
Для того, щоб виконати свій перший власний запит, вам слід зробити наступне:
- Перейдіть на вкладку “Методи”;
- Відкрийте “GET запити”;
- Натисніть на клавішу “Відправити”.
Ваш перший запит сформульовано і відправлено! Все дуже просто і зрозуміло.

Запит
Запити категорії POST трохи складніші, але також зрозумілі та логічно структуровані.
Цього разу ви повинні створити свій персональний запит. Для цього натисніть “+”, щоб відкрити нову сторінку (вкладку), змініть тип запиту з GET на POST і введіть URL-адресу, необхідну для тестування.
Якщо ви хочете просто провести експеримент, то можете скористатися спеціальною REST-платформою для “гри” з фейковими даними - https://jsonplaceholder.typicode.com/posts.
Тепер наше завдання - сформулювати тіло POST-запиту. Натисніть на “тіло” під рядком введення посилання майбутнього запиту, змініть формат з текстового на JSON.
Отриманий код слід вставити в редакторі:

Основна частина POST-запиту
Натисніть на клавішу “Відправити”. Незабаром ви отримаєте персональну відповідь з набраним текстом як підтвердження успішного виконання сформованого запиту.
Ви можете зберегти шаблон цього запиту для багаторазового використання в майбутньому.
Ви навіть можете створити певну колекцію таких запитів.
Це дуже просто:

Збірник запитань
Тести
Гарною особливістю Postman є те, що ви можете створювати автоматизовані запити самостійно. Ви лише один раз формуєте тест для вашого запиту, і кожного разу, коли ви отримуєте відповідь від сервера, програма автоматично вибирає необхідний функціонал відповідно до даних у ваших випадках.
Також ми хотіли б поговорити про середовище Postman.
Логічно, що кожен проект має власне віртуальне середовище, яке використовується для тестування та запуску розробленого функціоналу.
Вам не потрібно постійно створювати запити для кожного схожого середовища у програмі Postman. Одночасна підтримка численних запитів не логічна, не практична і може призвести до численних розбіжностей.
Додаток Postman дає можливість розробити середовище користувача з будь-якими змінними, які можуть бути легко використані в процесі розробки необхідних запитів і автоматизованих тестів.
Висновок
Неможливо стати справжнім експертом у Postman, але він дуже корисний, особливо якщо порівняти його можливості з популярною версією JMeter для проведення найпростішого тестування.
Так, JMeter в деякому роді простіший і ефективніший, але з ним дуже важко взаємодіяти, особливо якщо ви новачок у цій галузі.
Але Postman приносить справжнє задоволення в процесі складання простих запитів для швидкого тестування функціональності API. Ми впевнені, що така річ може стати зручним інструментом для будь-якого тестувальника, завданням якого є повне і всебічне тестування проекту.










0 коментарів