ИзбранноеПечать

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

 

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

Онлайн-тренинг

Описание

тренер: Ольга Назина

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

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

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

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

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

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

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

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

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

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

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

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

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

 Разбираем тест на JSON из snippet

  1. Переменные var, let, const
  2. Как обратиться к массиву
  3. Как обратиться к объекту
  4. Как достать значение из простого JSON
  5. Как достать значение из дерева JSON
  6. Как достать значение из XML
  7. Object.keys
  8. Почему консоль не помогает достать заголовки из 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. Логические операторы &&, ||

7.1. Перерыв!

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

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

9. CI: Newman + Jenkins

  1. Что такое CI
  2. Устанавливаем Newman
  3. Newman — запуск тестов
  4. Отчеты в Newman
  5. Jenkins + Newman, настраиваем связь
  6. Триггеры в jenkins  — запуск задачи по расписанию
  7. Запуск задачи в jenkins через curl
  8. Pipeline, что это такое? Пишем первый скрипт
  9. Jenkins + Git
  10. Разделение ролей в Jenkins 

Обратите внимание — на курсе мы не будем устанавливать Jenkins. Будем использовать готовую преднастроенную систему. Почему — см «вопросы и ответы» ниже.

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

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

11. Валидация ответа по 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

12. Тесты на HTML

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Научат ли меня устанавливать Jenkins?

Нет. На курсе мы будем использовать уже готовый настроенный инструмент.

Установка системы CI — задача администратора, а не тестировщика. Конечно, тестировщик может и сам это сделать, если интересно. Но самостоятельно, в рамки курса разбирательства с «почему именно на этой OS вот такая ошибка» не входит.

Я покажу, как настроить CI, если админ поставил вам «голую» CI-систему Jenkins. Мы настроим запуск задачи с нуля, и именно для этого будем устанавливать Newman и разбираться с ним. Newman — инструмент для запуска ваших автотестов в командной строке. Освоите его, и сможете запускать свои автотесты везде — хоть в Jenkins, хоть в TeamCity, хоть вообще по крону из командной строки.

О тренере

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

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

Статьи:

Видео:

Как отправить REST-запрос за 5 минут

Формат

13 занятий (15 часов теории, 15 недель, 13 занятий и 2 недели на «хвосты», в середине курса (чтобы не копились) и в конце) + много практических заданий для самостоятельной работы + постоянные консультации тренера в чате.

Раз в неделю по четвергам до 12.00 по Московскому времени выкладываются теоретические лекции, ссылки на дополнительные материалы, домашняя работа.

Теоретическую информацию можно посмотреть в любое удобное время.

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

Общение участников курса и тренера проходит и в чате группы, где можно задавать вопросы тренеру и при желании общаться с другими участниками группы. Вы можете задавать вопросы по теоретическому материалу или практическим работам, как только они у вас возникают.

Все выпускники, успешно сдавшие домашние задания, получают сертификат.

Материалы курса доступны в течение года с даты окончания.

Условия

Стоимость участия для физических лиц: 13 000 рублей за весь курс.

Стоимость участия для юридических лиц: 15 000 рублей за весь курс за одного участника. При регистрации от 3-х участников на один курс действует 15% скидка.

Оплатить прямо сейчас

Организатор мероприятия: ИП Назина Ольга Евгеньевна, ИНН 772791965180, ОГРНИП 315774600011282 

Услуги оказываются на основании публичного договора оферты. Ознакомиться с договором можно ЗДЕСЬ.

Если Вы хотите оплатить тренинг прямо сейчас, то нажмите кнопку выше (если кнопка активна, значит можно оплачивать не беспокоясь о наличии мест). После оплаты мы пришлем письмо о регистрации на курс и подтверждение оплаты. Если Вы не получили письмо в течение рабочего дня, просто отправьте сообщение на trainings@software-testing.ru

Если Вы хотите совершить оплату позже, для гарантированного участия обязательно забронируйте место на тренинге, для этого необходимо нажать на кнопку ЗАПИСАТЬСЯ справа от тренинга и заполнить все необходимые поля

Если у Вас есть какие-то вопросы, их можно задать по указанному выше адресу.

Посмотреть информацию о способах оплаты: http://shop.testbase.ru/buy/sposoby-oplaty

Информация для юридических лиц:

Для регистрации на тренинг и оформления договора и выставления счета на оплату нажмите кнопку Записаться, выберите пункт Организация и заполните все поля. 

Обратите внимание, что при постоплате стоимость тренинга увеличивается на 25%.

В случае возникновения вопросов обращайтесь по адресу trainings@software-testing.ru.

Цена: 13000 RUB для физлиц
Цена: 15000 RUB для юрлиц
Место: онлайн
Начало: 4 апреля 2024
Окончание: 18 июля 2024

Go to top