Программирование Тестирование REST API (2018)

  • Автор темы ATLANT ♆
  • Дата начала
Название: Тестирование REST API (2018)

what-is-api-testing-1024x587-jpg.35939


Многие современные веб-приложения используют REST API для взаимодействия с сервером и для интеграции друг с другом, поэтому тестировщикам веб-приложений необходимо владеть инструментами и техниками тестирования REST API.

Преимущества умения тестировать API:
  1. Раннее тестирование — разработчики сначала делают API, а потом уже графический интерфейс. У вас есть шанс проверить логику раньше, чем ей дорисуют кнопочки в GUI
  2. Тестирование API — графического интерфейса может в принципе не быть. Будет только API-метод. Такое часто бывает в enterprise-системах.
  3. Скорость — вызвать один запрос занимает доли секунды. А вот через интерфейс повторить процедуру бывает сложно. Например, создать пользователя на 50 заполненных полей…
  4. Точная локализация — где конкретно произошла проблема? На сервере или клиенте? Проверьте работу сервера через API и узнаете точно
  5. Автоматизация — даже если у вас нет автотестов на уровне API приложения, вы можете создать свои простенькие через Postman. Это поможет не гонять одно и то же вручную + быстро создавать большие объемы данных
На курсе я расскажу о том, что должен знать тестировщик REST API. Что именно ему нужно проверять в заголовках или теле ответа. Готовьтесь к тому, что практики будет много!

Входной порог: я предполагаю, что вы:

1. Знаете английский на уровне «чтение со словарем / гуглтранслейтом». Мы будем тестировать в том числе JIRA API по , которая на английском. Вы должны прочитать описание метода и понять его.
2. Умеете тестировать: знаете про классы эквивалентности и граничные значения. То есть базовыми знаниями обладаете. Подробнее см в блоке «Вопросы и ответы»

Программа курса
0. Введение в SOAP и REST (бесплатная лекция!)

  1. Что такое API
  2. Способы интеграции систем
  3. HTTP-протокол: SOAP и REST
  4. 7 уровней OSI
  5. Зачем уметь тестировать API
Лекция выложена в открытый доступ, посмотреть ее можно .

Первым заданием курса будет повторить за тренером вызов запроса doRegister в через SOAP и REST, в SOAP Ui и Postman-е соответственно. Попробуйте это сделать! Во время обучения мы уже будем считать, что базовый запрос вы отправить в инструменте можете. Лекция не входит в 5 недель обучения, она сразу доступна в системе дистанционного обучения после оплаты курса. Таким образом, в день старта обучения вам будут доступны лекции 0 и 1.

1. HTTP Headers
  1. Что такое заголовки сообщений. Где их можно посмотреть
  2. Что мы тестируем в REST API
  3. Status Code: коды ответов
  4. Тестируем подсказки (показываем применение теории на практике)
  5. Тестируем JIRA
2. HTTP Body
  1. Разные форматы тела запроса (простые: binary, form-data, x-www-form-urlencoded)
  2. XML-формат: что это такое, правила Well Formed XML, на что обратить внимание при тестировании
  3. JSON-формат: что это такое, правила Well Formed JSON, на что обратить внимание при тестировании
  4. Откуда взять данные для тела запроса, если нет ТЗ, но есть WSDL для SOAP-а на те же методы
  5. Что мы тестируем в REST API
  6. Тестируем Users по мотивам теоретической части
  7. Тестируем подсказки
3. Типы методов (GET, POST, PUT, DELETE). Локализация багов
  1. Какие типы методов бывают
  2. Операции CRUD через GET, POST, PUT, DELETE
  3. Идемпотентность в контексте REST API
  4. Как тип метода сказывается на тестировании? На что проверять методы, у которых нет тела
  5. Примеры:
    — GET
    — POST
    — PUT
    — DELETE
    — другие
  6. Локализация багов при помощи REST API
4. Автоматизация на уровне Postman
  1. Сохранение тестов
  2. Создание тестовых коллекций
  3. Стандартные тесты Postman
  4. Как модифицировать тесты под себя в старой и новой версии
  5. JSON, XML — как достать данные из дерева объектов
  6. Переменные и окружения — для чего нужны и как используются
  7. Как запустить один тест несколько раз
  8. Как загрузить тестовые данные из файла
  9. Как создать много данных с уникальными значениями (email, ФИО — чтобы сразу зарегистрировать много пользователей, например)
Внимание: у нас не курс по программированию, мы не будем писать грамотный и качественный код. Я рассказываю только основы, которые помогают взять пример из Постмана и доработать под свои нужды. Если вас интересует именно автоматизация тестов, то лучше сходить на курс Программирование на Java для тестировщиков

5. Code VS Contract First. Что еще надо знать про REST API
  1. WADL — как прочитать схему
  2. Code First или Contract First — в чем разница между подходами, как они сказываются на тестировании
  3. Backwards-compatible изменения методов
  4. Инструменты для отправки REST запросов — Soap Ui, CUrl, плагины в браузере
  5. Пример авторматизации REST на уровне API (честной автоматизации внутри кода, не на уровне Postman)
  6. Подводим итоги курса
ВОПРОСЫ И ОТВЕТЫ

Какое время занятий?


Время вы выбираете сами. В системе дистанционного обучения выкладывается видеозапись с лекцией, а потом у вас есть неделя на выполнение заданий. Когда именно его делать — решать вам.

Как я получу фидбэк при online-формате?

Через скайп, комментарии к домашним заданиям в системе дистанционного обучения.

Пойму ли я материал?

Курс совмещает все виды обучения: видео-лекции + статьи в доп материалах + практическая работа (услышал, увидел, пощупал). Так что уверена, сможете! А если что-то не получается, можно задать вопрос в скайп-чате

Нужно ли что-то знать заранее?

Есть обязательный базовый порог: знание английского (со словарем) и умение тестировать (у нас не школа для начинающих и рассказывать про классы эквивалентности я не буду).

Желательно иметь базовое представление о языке программирования (любом), так будет проще понять тему автоматизации — что такое переменные, массивы, какие бывают типы данных и операторы сравнения. Тренер расскажет про эти понятия в привязке к примерам, но вам будет проще, если что-то почитаете заранее.

Также посмотрите нулевую лекцию и попробуйте повторить запросы за тренером.

А зачем мне уметь тестировать? Дайте мне только задания про API!

Я специально делаю на «полное тестирование метода» одно задание из пяти. То есть основа — это как раз пощупать инструменты и все такое.

Но тестирование базовое — неотделимо от любых его отклонений. Точно также, чтобы написать автотест, вам надо сначала подумать, «а что именно я хочу заавтоматизировать». И чтобы проверить метод, вам надо помнить, что проверять надо не только АПИ часть, но и бизнесовую. И я совершенно не хочу, чтобы, пройдя курс по тестированию АПИ, вы считали, что при тестировании методов надо просто извращаться с well-formed json \ xml, забив вообще на бизнес-логику и обычное тестирование. И еще и говорить, что тренер вас так учил
icon_smile.gif


Поэтому домашние задания построены так: сначала несколько заданий именно на API-часть, «проверьте заголовки как в лекции», «передайте тело так, чтобы получить то и се»… А потом идет 1-2 полноценных задания, как оно будет на реальной работе: «Протестировать метод». И тут вы применяете чек-лист тренера по API-части и добавляете проверки согласно принципам тест-дизайна «а как бы я тестировал параметр через интерфейс».

Можно ли работать на Mac или Linux?

Ограничений по OS нет

Скачать:
 
Последнее редактирование модератором:

Похожие темы

Trinity
Ответы
0
Просмотры
65
Trinity
Trinity
Ответы
0
Просмотры
261
Trinity
Trinity
Ответы
0
Просмотры
289
Trinity
Trinity
Ответы
0
Просмотры
227
Trinity