Postman, тестирование API
Фомичев Максим
Херсон 2018
1
Об авторе:
Карьера в IT индустрии:
● В IT-сфере с 2013 года
● QA проектах (от Delfi Desktop Software до Web/ mobile application
● Волонтер на проекте Technology Nation
● Направление - «Экономист/Программист» (Master's degree, Finances /
Master of Arts,Computer science and information technologies)
Skype: maxherson
Email:
maksim.fomichev@
postindustria.com
Фомичев Максим
2
О чем говорим сегодня ?
● Разберёмся что такое API и зачем он нужен
● О проекте
● Почему Postman?
● Знакомство с Postman
● Ручное тестирование
● “Полуавтоматическое” тестирование (Collection Runner)
● Автоматическое тестирование Newman (Postman) + Jenkins
3
Сложно: API (программный интерфейс приложения, интерфейс прикладного
программирования) (англ. application programming interface, API [эй-пи-ай]) —
набор готовых классов, процедур, функций, структур и констант,
предоставляемых приложением (библиотекой, сервисом) или
операционной системой для использования во внешних программных
продуктах. Используется программистами при написании всевозможных
приложений.
Просто: API (от англ. application programming interface) – это интерфейс
взаимодействия между продуктом и сторонними программами и
серверами.
API и зачем он нужен (определение)
4
Супер просто ;) :
API и зачем он нужен (определение)
5
API endpoints: это собственно сами URLы на который мы отправляем
запрос.
Пример:
https://{{stage}}.{{domain}}/api/{{ver}}/shopping-cart
https://www.google.com/api/ver1.1.9/offers/3700/multiprices
Объект: это неупорядоченное множество пар ключ:значение, заключенное
в фигурные скобки «{ }». Ключ описывается строкой, между ним и
значением стоит символ «:».
Пример:
{
"key": "value",
"phone": "0712345678"
}
API и зачем он нужен (Еще пару терминов)
6
GET {{URL}}/offers
API и зачем он нужен (пример)
7
Response body (JSON) Android app
● POST (create создание чего-либо)
- 201 (Created)
- 404 (Not Found), 409 (Conflict)
● GET (read чтение чего-либо)
- 200 (OK)
- 404 (Not Found)
● PUT (update/replace обновление/замена чего-либо)
- 200 (OK) or 204 (No Content)
- 405 (Method Not Allowed), 404 (Not Found), if ID not found or invalid
● PATCH (update/modify обновление/модификация чего-либо)
- 200 (OK) or 204 (No Content)
- 405 (Method Not Allowed), 404 (Not Found), if ID not found or invalid
● DELETE (delete удаление чего-либо)
- 200 (OK)
- 405 (Method Not Allowed), 404 (Not Found), if ID not found or invalid
API и зачем он нужен (main HTTP Methods & Statuses)
8
API и зачем он нужен (main HTTP Methods & Statuses)
9
● e-commerce project
- 10 брендов мобильная и десктоп версия веб приложений (разная
кодовая база)
- API для склада (Warehouse), Salesforce, нативные мобильные
приложения Android / IOS
- Более 5 версий API поддерживаемых одновременно.
● Занимательная математика
- Количество брендов - 10
- Количество одновременно поддерживаемых версий API - 5
- Количество эндпоинтов - 70
Итого: 10 * 5 * 70 = 3500!! (без учёта методов)
О проекте
10
MANUALLY..????
О проекте
11
REALLY..????
● Возможность бесплатного использования
● Быстрый переход от ручного к автоматизированному тестированию
● Легкий способ передачи коллекций среди сотрудников
● Поддержка большого количества типов аутентификации
● ….
Почему Postman?
12
Знакомство с Postman
Поддерживаемые операционные системы
● Mac
● Linux
● Windows
Функционал
● Collection Runner
● Использование переменных
● Postman Console
● Newman
● Использование тестов и скриптов в запросах
13
Знакомство с Postman (UI)
1. Collections /
Колекции
2. Request URL /
Адрес запроса
3. Environment /
Окружение
4.Response / Ответ
14
Ручное тестирование (использование
переменных в окружении ( Environment))
https://{{stage}}.{{domain}}/api/{{ver}}/user
15
Ручное тестирование (переменные в URL и body)
16
Ручное тестирование (Тесты в запросах)
17
Ручное тестирование (Тесты в запросах)
Проверка структуры JSON в ответе (JSON Schema)
18
Ручное тестирование (JSON. парсинг и запись
значения в переменную)
19
Ручное тестирование (Pre-request script)
20
“Полуавтоматическое” тестирование
(Collection Runner)
● Любое количество итераций
● Использовать CSV файл с набором значений переменных для каждой
итерации
● Тесты каждого запроса
● Отчёты
● Логирование запросов Postman Console
● Импорт результатов в JSON. файл
21
“Полуавтоматическое” тестирование
(Collection Runner)
22
“Полуавтоматическое” тестирование
(Collection Runner) Совет дня:
23
Используйте логи приложения для составления userstory
“Полуавтоматическое” тестирование
(Collection Runner / отчёты)
24
“Полуавтоматическое” тестирование
(Collection Runner / CSV файл)
Формат файла:
https://{{stage}}.{{domain}}/api/{{ver}}/user
Результат при первой итерации:
https://www.test.com/api/v1.1.6/user
25
Автоматическое тестирование
Newman (Postman) + Jenkins
● Экспортировать коллекцию в JSON file.
● Экспортировать Environment
● Создать CSV файл с необходимыми Вам значениями переменных
26
newman run Auth.postman_collection.json -e stage.postman_environment.json
-d data.csv
Автоматическое тестирование
Newman (Postman) + Jenkins
27
Вопросы?
28
Контакты:
Skype: maxherson
Email: maksim.fomichev@postindustria.com
Полезные ссылки:
Postman скачать можно тут
https://www.getpostman.com/
Прочитать про настройку Newman
https://www.npmjs.com/package/newman

Postman тестирование api v1.0 (1)

  • 1.
  • 2.
    Об авторе: Карьера вIT индустрии: ● В IT-сфере с 2013 года ● QA проектах (от Delfi Desktop Software до Web/ mobile application ● Волонтер на проекте Technology Nation ● Направление - «Экономист/Программист» (Master's degree, Finances / Master of Arts,Computer science and information technologies) Skype: maxherson Email: maksim.fomichev@ postindustria.com Фомичев Максим 2
  • 3.
    О чем говоримсегодня ? ● Разберёмся что такое API и зачем он нужен ● О проекте ● Почему Postman? ● Знакомство с Postman ● Ручное тестирование ● “Полуавтоматическое” тестирование (Collection Runner) ● Автоматическое тестирование Newman (Postman) + Jenkins 3
  • 4.
    Сложно: API (программныйинтерфейс приложения, интерфейс прикладного программирования) (англ. application programming interface, API [эй-пи-ай]) — набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) или операционной системой для использования во внешних программных продуктах. Используется программистами при написании всевозможных приложений. Просто: API (от англ. application programming interface) – это интерфейс взаимодействия между продуктом и сторонними программами и серверами. API и зачем он нужен (определение) 4
  • 5.
    Супер просто ;): API и зачем он нужен (определение) 5
  • 6.
    API endpoints: этособственно сами URLы на который мы отправляем запрос. Пример: https://{{stage}}.{{domain}}/api/{{ver}}/shopping-cart https://www.google.com/api/ver1.1.9/offers/3700/multiprices Объект: это неупорядоченное множество пар ключ:значение, заключенное в фигурные скобки «{ }». Ключ описывается строкой, между ним и значением стоит символ «:». Пример: { "key": "value", "phone": "0712345678" } API и зачем он нужен (Еще пару терминов) 6
  • 7.
    GET {{URL}}/offers API изачем он нужен (пример) 7 Response body (JSON) Android app
  • 8.
    ● POST (createсоздание чего-либо) - 201 (Created) - 404 (Not Found), 409 (Conflict) ● GET (read чтение чего-либо) - 200 (OK) - 404 (Not Found) ● PUT (update/replace обновление/замена чего-либо) - 200 (OK) or 204 (No Content) - 405 (Method Not Allowed), 404 (Not Found), if ID not found or invalid ● PATCH (update/modify обновление/модификация чего-либо) - 200 (OK) or 204 (No Content) - 405 (Method Not Allowed), 404 (Not Found), if ID not found or invalid ● DELETE (delete удаление чего-либо) - 200 (OK) - 405 (Method Not Allowed), 404 (Not Found), if ID not found or invalid API и зачем он нужен (main HTTP Methods & Statuses) 8
  • 9.
    API и зачемон нужен (main HTTP Methods & Statuses) 9
  • 10.
    ● e-commerce project -10 брендов мобильная и десктоп версия веб приложений (разная кодовая база) - API для склада (Warehouse), Salesforce, нативные мобильные приложения Android / IOS - Более 5 версий API поддерживаемых одновременно. ● Занимательная математика - Количество брендов - 10 - Количество одновременно поддерживаемых версий API - 5 - Количество эндпоинтов - 70 Итого: 10 * 5 * 70 = 3500!! (без учёта методов) О проекте 10
  • 11.
  • 12.
    ● Возможность бесплатногоиспользования ● Быстрый переход от ручного к автоматизированному тестированию ● Легкий способ передачи коллекций среди сотрудников ● Поддержка большого количества типов аутентификации ● …. Почему Postman? 12
  • 13.
    Знакомство с Postman Поддерживаемыеоперационные системы ● Mac ● Linux ● Windows Функционал ● Collection Runner ● Использование переменных ● Postman Console ● Newman ● Использование тестов и скриптов в запросах 13
  • 14.
    Знакомство с Postman(UI) 1. Collections / Колекции 2. Request URL / Адрес запроса 3. Environment / Окружение 4.Response / Ответ 14
  • 15.
    Ручное тестирование (использование переменныхв окружении ( Environment)) https://{{stage}}.{{domain}}/api/{{ver}}/user 15
  • 16.
  • 17.
  • 18.
    Ручное тестирование (Тестыв запросах) Проверка структуры JSON в ответе (JSON Schema) 18
  • 19.
    Ручное тестирование (JSON.парсинг и запись значения в переменную) 19
  • 20.
  • 21.
    “Полуавтоматическое” тестирование (Collection Runner) ●Любое количество итераций ● Использовать CSV файл с набором значений переменных для каждой итерации ● Тесты каждого запроса ● Отчёты ● Логирование запросов Postman Console ● Импорт результатов в JSON. файл 21
  • 22.
  • 23.
    “Полуавтоматическое” тестирование (Collection Runner)Совет дня: 23 Используйте логи приложения для составления userstory
  • 24.
  • 25.
    “Полуавтоматическое” тестирование (Collection Runner/ CSV файл) Формат файла: https://{{stage}}.{{domain}}/api/{{ver}}/user Результат при первой итерации: https://www.test.com/api/v1.1.6/user 25
  • 26.
    Автоматическое тестирование Newman (Postman)+ Jenkins ● Экспортировать коллекцию в JSON file. ● Экспортировать Environment ● Создать CSV файл с необходимыми Вам значениями переменных 26 newman run Auth.postman_collection.json -e stage.postman_environment.json -d data.csv
  • 27.
  • 28.
    Вопросы? 28 Контакты: Skype: maxherson Email: maksim.fomichev@postindustria.com Полезныессылки: Postman скачать можно тут https://www.getpostman.com/ Прочитать про настройку Newman https://www.npmjs.com/package/newman