Автоматизация тестов для REST API при помощи Postman

Регистрация на курс

Описание курса

На курсе мы будем писать автотесты для API-методов в программе Postman. Мы пройдем полный цикл — от первого автотеста до настройки CI (Continuous Integration). От Math.random до циклов и условий. От простого include до регулярных выражений. Это курс вам подойдет, если:

  1. Вы не умеете автоматизировать — Postman дает отличный и простой старт.
  2. Вы тестируете программный интерфейс API черным ящиком — например, это «чужое» API, а вы работаете в интеграторе

После прохождения курса вы сможете настроить систему автотестов для ваших API-методов, даже если ранее на проекте никакой автоматизации не было вообще!

Главная фишка курса — МНОГО практики! На курсе 50+ (!) обязательных домашних заданий. Обучение идет 15 недель (3,5 месяца) — 14 занятий и неделя на «хвосты».

На курсе не рассказывается о том, как тестировать rest-методы. Если вы никогда раньше не тестировали API, вам лучше сначала пройти курс «Тестирование REST API». Здесь же мы будем заниматься именно автоматизацией, написанием кода.

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

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

 

Программа курса

1. Первый тест

  1. Пишем первый автотест — на статус код. Разбор автотеста, что есть что.
  2. Экскурс в JS: 
    1. Синтаксис функций
    2. Анонимные функции
    3. Как вызывать функцию и функцию объекта
  3. Объект pm
  4. Название автотеста
  5. Консоль постмана

 

2. Библиотеки Chai.js и Node.js

  1. Chai.js
    1. Как писать “я ожидаю” в тесте?
    2. Какие возможности открывает pm.expect
    3. 37 способов написать тесты на статус код
  2. Node.js
    1. Assert в автотестах
    2. Еще 11 способов написать тесты на статус код

 

3. Объекты и массивы: достаем данные 

  1. Разбираем тест на JSON из snippet
  2. Переменные var, let, const
  3. Как обратиться к массиву
  4. Как обратиться к объекту
  5. Как достать значение из простого JSON
  6. Как достать значение из дерева JSON
  7. Как достать значение из XML
  8. Что такое Object.keys
  9. Почему консоль не помогает достать заголовки из pm.response

 

4. Базовые тесты на ответ сервера 

  1. Тесты на text
  2. Тесты на JSON из документации Postman
  3. Разница между equal, eql и deep.equal
  4. Тесты на include — include, deep.include, nested.include
  5. Тесты на свойства объекта — property, keys

 

5. Базовые тесты на ответ сервера (продолжение)

  1. Изучаем типы элементов — .a, .instanceof
  2. Прототипы и наследование в JS
  3. Тесты на массивы в Postman-е (Chai.js) 
  4. Тесты на строку
  5. Тесты на число
  6. Тесты на JSON через Node.js
  7. Тесты на XML в ответе
  8. Тесты на заголовки
  9. Тесты на Cookie

 

6. Переменные и окружения

  1. Как запустить несколько запросов подряд 
  2. Как запустить один запрос несколько раз
  3. Как передать рандомные значения в Postman 
  4. Как считать данные из файла 
  5. Как написать тест на данные из файла
  6. Переменные в Postman
    1.  Локальные переменные, local
    2.  Переменные из файла, data
    3.  Переменные окружения, environment
    4.  Переменные коллекции, collection
    5.  Глобальные переменные, global
  7. Переменная или строка? Учимся различать
  8. Переиспользование переменных 

 

7. Условия и циклы

  1. Условие if else
  2. Цикл while
  3. Цикл for
  4. Цикл forEach 
  5. SendRequest в тестах
  6. Логические операторы &&, ||

 

8. ChatGPT для автоматизации в Postman

  1. Что такое ChatGPT
  2. Пишем автотесты с ИИ
  3. Исправляем ошибки с помощью ИИ
  4. Вопросы ChatGPT по теории
  5. Postbot в Postman
  6. ChatGPT в домашних заданиях

 

9. Math.floor и другие полезные функции JS для тестов

  1. Правила описания команд
  2. Объявление переменной в JS
  3. Методы и свойства примитивных типов:
    1. Строки
    2. Числа
    3. Массивы
    4. Даты
  4. Математические функции
  5. Пример «сложного» теста

 

10. CI: Newman + Jenkins

  1. Что такое CI
  2. Установка Newman
  3. Newman — запуск тестов
  4. Отчеты в Newman
  5. Установка Jenkins
  6. Запуск задачи в jenkins
  7. Триггеры в jenkins  — запуск задачи по расписанию

 

11. Регулярные выражения (regexp)

  1. Что такое регулярные выражения
  2. Как и где они применяются
  3. Где можно их пощупать
  4. Поиск в регулярных выражениях
    1. Поиск текста
    2. Поиск любого символа
    3. Поиск по набору символов
    4. Перечисление вариантов
    5. Метасимволы
    6. Квантификаторы
    7. Позиция внутри строки
  5. Замена с помощью регулярных выражениях
  6. Regexp в автотестах Postman-а

 

12. Валидация ответа по JSON Schema

  1. Что такое JSON Schema
  2. Типы данных в JSON Schema
    1. Строка
    2. Число
    3. Объект
    4. Массив
    5. Boolean
    6. Null
    7. Not
  3. Аннотации в JSON Schema
  4. if else в JSON Schema
  5. Валидация JSON Schema в Postman-e

 

13. Тесты на HTML

  1. Что такое HTML
  2. Как написать автотест на HTML
  3. Basic jQuery Selectors
  4. jQuery: get Content and Attributes
  5. Attribute selectors в jQuery
  6. Документация Cheerio

 

14. Организация тестов. SQL через Postman

  1. Организация и рефакторинг тестов в Postman
  2. Postman VS REST-assured 
  3. Postman vs Framework в коде — когда что использовать
  4. SQL-запросы через Postman — зачем и как?
  5. Подводим итоги курса

 

Формат курса

Онлайн-обучение — в систему дистанционного обучения один раз в неделю выкладывается видео-лекция и домашние задания. Лекцию можно посмотреть в удобное для вас время.

В общем скайп-чате можно задать вопрос тренеру.

 

О тренере

Тренер — опытный практик.

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

Примеры моих видео-лекций:

 

Вопросы и ответы

 

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

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

 

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

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

 

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

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

 

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

Есть обязательный базовый порог:

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

 

А зачем мне уметь тестировать? Дайте мне только задания «повторить за тренером, пока пишешь автотест»

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

Если совсем тяжело, я, конечно, помогу и подскажу, что еще проверить.

 

В Postman теперь есть Postbot — курс ещё актуален?

Да. Ведь в курсе я учу понимать, что именно написано. Чтобы вы могли писать тесты с нуля, а также читать чужой код и в том числе код бота.

По сути своей своей этот бот — как гугл, там можно найти примеры и что-то готовое, но всё равно нужно уметь составлять тесты самостоятельно.

Мой знакомый ко мне начинающих автоматизаторов отправляет, говорит, что после моего курса проще воспринимаются курсы по «чистой» автоматизации. Так как я разжевываю базовые вещи языка, которые хоть и отличаются от языка к языку, но и общее что-то имеется.

 

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

Ограничений по операционной системе нет.

 

Какой API используется для практики?

Мы используем:

  1. Users
  2. Подсказки дадаты
  3. JIRA облачную
  4. Плюс еще одно приложение я сделала специально для курса

Вы можете также параллельно начинать писать автотесты на свой проект, и задавать вопросы в чате (или в СДО, если не хотите их в общий чат выносить)

Как записаться

Регистрация на курс и дата ближайшего запуска

Способы оплаты