Регистрация на курс
Описание курса
На курсе мы будем писать автотесты для API-методов в программе Postman. Мы пройдем полный цикл — от первого автотеста до настройки CI (Continuous Integration). От Math.random до циклов и условий. От простого include до регулярных выражений. Это курс вам подойдет, если:
- Вы не умеете автоматизировать — Postman дает отличный и простой старт.
- Вы тестируете API черным ящиком — например, это «чужое» API, а вы работаете в интеграторе
После прохождения курса вы сможете настроить систему автотестов для ваших API-методов, даже если ранее на проекте никакой автоматизации не было вообще!
Главная фишка курса — МНОГО практики! На курсе 55 (!) обязательных домашних заданий. Обучение идет 15 недель (3,5 месяца) — 13 занятий и 2 недели на «хвосты», в середине курса (чтобы не копились) и в конце.
На курсе не рассказывается о том, как тестировать rest-методы. Если вы никогда раньше не тестировали API, вам лучше сначала пройти курс «Тестирование REST API». Здесь же мы будем заниматься именно автоматизацией, написанием кода.
Входной порог! Я предполагаю, что вы:
- Знаете английский на уровне «чтение со словарем / гуглтранслейтом». Мы будем тестировать в том числе JIRA API по стандартной документации, которая на английском. Вы должны прочитать описание метода и понять его.
- Знаете любой язык программирования на уровне школьной программы или «читал книгу о нем 3 года назад» — не падаете в обморок от слов «переменные», «массивы», знаете какие бывают типы данных и операторы сравнения. Тренер расскажет про эти понятия в привязке к примерам, но вам будет проще, если что-то почитаете заранее. Посмотрите этот кусок лекции, если он непонятный, то на курс рановато.
- Умеете тестировать: знаете про классы эквивалентности и граничные значения. Подробнее см в блоке «Вопросы и ответы»
Программа курса
1. Первый тест
- Пишем первый автотест — на status code. Разбор автотеста, что есть что.
- Экскурс в JS:
- Синтаксис функций
- Анонимные функции
- Как вызывать функцию и функцию объекта
- Объект pm
- Название автотеста
- Консоль постмана
- Старый VS новый постман
2. Библиотеки Chai.js и Node.js
- Chai.js
- Как писать “я ожидаю” в тесте?
- Какие возможности открывает pm.expect
- 37 способов написать тесты на status code
- Node.js
- Assert в автотестах
- Еще 11 способов написать тесты на status code
3. Объекты и массивы: достаем данные
- Разбираем тест на JSON из snippet
- Переменные var, let, const
- Как обратиться к массиву
- Как обратиться к объекту
- Как достать значение из простого JSON
- Как достать значение из дерева JSON
- Как достать значение из XML
- Object.keys
- Почему консоль не помогает достать заголовки из pm.response
4. Базовые тесты на ответ сервера
- Тесты на text
- Тесты на JSON из документации Postman
- Разница между equal, eql и deep.equal
- Тесты на include — include, deep.include, nested.include
- Тесты на свойства объекта — property, keys
5. Базовые тесты на ответ сервера (продолжение)
- Изучаем типы элементов — .a, .instanceof
- Прототипы и наследование в JS
- Тесты на массивы в Postman-е (Chai.js)
- Тесты на строку
- Тесты на число
- Тесты на JSON через Node.js
- Тесты на XML в ответе
- Тесты на заголовки
- Тесты на Cookie
6. Переменные и окружения
- Как запустить несколько запросов подряд
- Как запустить один запрос несколько раз
- Как передать рандомные значения в Postman
- Как считать данные из файла
- Как написать тест на данные из файла
- Переменные в Postman
- Локальные переменные, local
- Переменные из файла, data
- Переменные окружения, environment
- Переменные коллекции, collection
- Глобальные переменные, global
- Переменная или строка? Учимся различать
- Переиспользование переменных
7. Условия и циклы
- Условие if else
- Цикл while
- Цикл for
- Цикл forEach
- SendRequest в тестах
- Логические операторы &&, ||
7.1. Перерыв!
Неделяотдыха — чтобы закрыть все хвосты. К этому времени уже открыто 36 домашних заданий и небольшая передышка студентам бывает очень нужна
8. Math.floor и другие полезные функции JS для тестов
- Правила описания команд
- Объявление переменной в JS
- Методы и свойства примитивных типов:
- Строки
- Числа
- Массивы
- Даты
- Математические функции
- Пример «сложного» теста
9. CI: Newman + Jenkins
- Что такое CI
- Устанавливаем Newman
- Newman — запуск тестов
- Отчеты в Newman
- Jenkins + Newman, настраиваем связь
- Триггеры в jenkins — запуск задачи по расписанию
- Запуск задачи в jenkins через curl
- Pipeline, что это такое? Пишем первый скрипт
- Jenkins + Git
- Разделение ролей в Jenkins
Обратите внимание — на курсе мы не будем устанавливать Jenkins. Будем использовать готовую преднастроенную систему. Почему — см «вопросы и ответы» ниже.
10. Регулярные выражения (regexp)
- Что такое регулярные выражения
- Как и где они применяются
- Где можно их пощупать
- Поиск в регулярных выражениях
- Поиск текста
- Поиск любого символа
- Поиск по набору символов
- Перечисление вариантов
- Метасимволы
- Квантификаторы
- Позиция внутри строки
- Замена с помощью регулярных выражениях
- Regexp в автотестах Postman-а
11. Валидация ответа по JSON Schema
- Что такое JSON Schema
- Типы данных в JSON Schema
- Строка
- Число
- Объект
- Массив
- Boolean
- Null
- Not
- Аннотации в JSON Schema
- if else в JSON Schema
- Валидация JSON Schema в Postman-e
12. Тесты на HTML
- Что такое HTML
- Как написать автотест на HTML
- Basic jQuery Selectors
- jQuery: get Content and Attributes
- Attribute selectors в jQuery
- Документация Cheerio
13. Организация тестов. SQL через Postman
- Организация и рефакторинг тестов в Postman
- Postman VS REST-assured
- Postman vs Framework в коде — когда что использовать
- SQL-запросы через Postman — зачем и как?
- Подводим итоги курса
Формат курса
Онлайн-обучение — в систему дистанционного обучения один раз в неделю выкладывается видео-лекция и домашние задания. Лекцию можно посмотреть в удобное для вас время.
В общем скайп-чате можно задать вопрос тренеру.
О тренере
Тренер — опытный практик.
Чтобы составить представление о моем стиле повествования, посмотрите бесплатную лекцию из описания программы курса. Также можете ознакомиться с материалами, которые я делаю в помощь студентам. Пока можно ознакомиться с материалами из других курсов.
Примеры моих видео-лекций:
Вопросы и ответы
Какое время занятий?
Время вы выбираете сами. В системе дистанционного обучения выкладывается видеозапись с лекцией, а потом у вас есть неделя на выполнение заданий. Когда именно их делать — решать вам.
Как я получу фидбэк при online-формате?
Через телеграм, комментарии к домашним заданиям в системе дистанционного обучения.
Пойму ли я материал?
Курс совмещает все виды обучения: видео-лекции + статьи в доп материалах + практическая работа (услышал, увидел, пощупал). Так что уверена, сможете! А если что-то не получается, можно задать вопрос в скайп-чате
Нужно ли что-то знать заранее?
Есть обязательный базовый порог:
- знание английского со словарем — чтобы понять документацию JIRA, она на англ
- базовые знания языка программирования (любого) — что такое переменные, массивы, какие бывают типы данных и операторы сравнения. Тренер расскажет про эти понятия в привязке к примерам, но вам будет проще, если что-то почитаете заранее. Посмотрите этот кусок лекции, если он непонятный, то на курс рановато.
- умение тестировать — у нас не школа для начинающих, я не буду учить «как тестировать», но задачи «протестируй вот это в автотестах» будут.
А зачем мне уметь тестировать? Дайте мне только задания «повторить за тренером, пока пишешь автотест»
Тестирование базовое — неотделимо от любых его отклонений. Чтобы написать автотест, вам надо сначала подумать, «а что именно я хочу заавтоматизировать». Поэтому у нас будут реальные задачки из жизни: «проверить такой-то метод». Такая задача включает в себя «подумать, что тут надо проверить» и практика написания теста.
Если совсем тяжело, я, конечно, помогу и подскажу, что еще проверить.
В Postman теперь есть Postbot — курс ещё актуален?
Да. Ведь в курсе я учу понимать, что именно написано. Чтобы вы могли писать тесты с нуля, а также читать чужой код и в том числе код бота.
По сути своей своей этот бот — как гугл, там можно найти примеры и что-то готовое, но всё равно нужно уметь составлять тесты самостоятельно.
Мой знакомый ко мне начинающих автоматизаторов отправляет, говорит, что после моего курса проще воспринимаются курсы по «чистой» автоматизации. Так как я разжевываю базовые вещи языка, которые хоть и отличаются от языка к языку, но и общее что-то имеется.
Научат ли меня устанавливать Jenkins?
Нет. На курсе мы будем использовать уже готовый настроенный инструмент.
Установка системы CI — задача администратора, а не тестировщика. Конечно, тестировщик может и сам это сделать, если интересно. Но самостоятельно, в рамки курса разбирательства с «почему именно на этой OS вот такая ошибка» не входит.
Я покажу, как настроить CI, если админ поставил вам «голую» CI-систему Jenkins. Мы настроим запуск задачи с нуля, и именно для этого будем устанавливать Newman и разбираться с ним. Newman — инструмент для запуска ваших автотестов в командной строке. Освоите его, и сможете запускать свои автотесты везде — хоть в Jenkins, хоть в TeamCity, хоть вообще по крону из командной строки.
Можно ли работать на Mac или Linux?
Ограничений по OS нет
Какой API используется для практики?
Мы используем:
- Users
- Подсказки дадаты
- JIRA облачную
- Плюс еще одно приложение я сделала специально для курса
Вы можете также параллельно начинать писать автотесты на свой проект, и задавать вопросы в чате (или в СДО, если не хотите их в общий чат выносить)
Как записаться
Регистрация на курс и дата ближайшего запуска