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

  • Автор темы I AM
  • 1227
  • Обновлено
  • 30, Dec 2018
  • #1
Тестирование REST API (2018)



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


На курсе я расскажу о том, что должен знать тестировщик REST API. Что именно ему нужно проверять в заголовках или теле ответа. Готовьтесь к тому, что практики будет много!
Входной порог: я предполагаю, что вы: 1. Знаете английский на уровне «чтение со словарем / гуглтранслейтом». Мы будем тестировать в том числе JIRA API по стандартной документации

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

0. Введение в SOAP и REST (бесплатная лекция!)

  • Что такое API
  • Способы интеграции систем
  • HTTP-протокол: SOAP и REST
  • 7 уровней OSI
  • Зачем уметь тестировать API


Лекция выложена в открытый доступ, посмотреть ее можно вот тут

. Первым заданием курса будет повторить за тренером вызов запроса doRegister в Users

через SOAP и REST, в SOAP Ui и Postman-е соответственно.

Попробуйте это сделать! Во время обучения мы уже будем считать, что базовый запрос вы отправить в инструменте можете.

Лекция не входит в 5 недель обучения, она сразу доступна в системе дистанционного обучения после оплаты курса.

Таким образом, в день старта обучения вам будут доступны лекции 0 и 1.
  • Что такое заголовки сообщений. Где их можно посмотреть
  • Что мы тестируем в REST API
  • Status Code: коды ответов
  • Тестируем подсказки (показываем применение теории на практике)
  • Тестируем JIRA


  • Разные форматы тела запроса (простые: binary, form-data, x-www-form-urlencoded)
  • XML-формат: что это такое, правила Well Formed XML, на что обратить внимание при тестировании
  • JSON-формат: что это такое, правила Well Formed JSON, на что обратить внимание при тестировании
  • Откуда взять данные для тела запроса, если нет ТЗ, но есть WSDL для SOAP-а на те же методы
  • Что мы тестируем в REST API
  • Тестируем Users по мотивам теоретической части
  • Тестируем подсказки


  • Какие типы методов бывают
  • Операции CRUD через GET, POST, PUT, DELETE
  • Идемпотентность в контексте REST API
  • Как тип метода сказывается на тестировании? На что проверять методы, у которых нет тела
  • Примеры:
    — GET
    — POST
    — PUT
    — DELETE
    — другие
  • Локализация багов при помощи REST API


  • Сохранение тестов
  • Создание тестовых коллекций
  • Стандартные тесты Postman
  • Как модифицировать тесты под себя в старой и новой версии
  • JSON, XML — как достать данные из дерева объектов
  • Переменные и окружения — для чего нужны и как используются
  • Как запустить один тест несколько раз
  • Как загрузить тестовые данные из файла
  • Как создать много данных с уникальными значениями (email, ФИО — чтобы сразу зарегистрировать много пользователей, например)


Внимание: у нас не курс по программированию, мы не будем писать грамотный и качественный код.

Я рассказываю только основы, которые помогают взять пример из Постмана и доработать под свои нужды.

Если вас интересует именно автоматизация тестов, то лучше сходить на курс Программирование на Java для тестировщиков
  • WADL — как прочитать схему
  • Code First или Contract First — в чем разница между подходами, как они сказываются на тестировании
  • Backwards-compatible изменения методов
  • Инструменты для отправки REST запросов — Soap Ui, CUrl, плагины в браузере
  • Пример авторматизации REST на уровне API (честной автоматизации внутри кода, не на уровне Postman)
  • Подводим итоги курса


ВОПРОСЫ И ОТВЕТЫ

Какое время занятий?
Время вы выбираете сами. В системе дистанционного обучения выкладывается видеозапись с лекцией, а потом у вас есть неделя на выполнение заданий. Когда именно его делать — решать вам.
Как я получу фидбэк при online-формате? Через скайп, комментарии к домашним заданиям в системе дистанционного обучения.
Пойму ли я материал? Курс совмещает все виды обучения: видео-лекции + статьи в доп материалах + практическая работа (услышал, увидел, пощупал). Так что уверена, сможете! А если что-то не получается, можно задать вопрос в скайп-чате
Нужно ли что-то знать заранее?

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

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

Тренер расскажет про эти понятия в привязке к примерам, но вам будет проще, если что-то почитаете заранее. Также посмотрите нулевую лекцию и попробуйте повторить запросы за тренером.
А зачем мне уметь тестировать? Дайте мне только задания про API! Я специально делаю на «полное тестирование метода» одно задание из пяти.

То есть основа — это как раз пощупать инструменты и все такое. Но тестирование базовое — неотделимо от любых его отклонений.

Точно также, чтобы написать автотест, вам надо сначала подумать, «а что именно я хочу заавтоматизировать». И чтобы проверить метод, вам надо помнить, что проверять надо не только АПИ часть, но и бизнесовую.

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

И еще и говорить, что тренер вас так учил





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



Можно ли работать на Mac или Linux? Ограничений по OS нет
Скачать: Скрытая информация :: Авторизуйтесь для просмотра »

I AM


Рег
23 Jul, 2011

Тем
49554

Постов
57426

Баллов
552966
Тем
49554
Комментарии
57426
Опыт
552966

Интересно