GraphQL приходит на смену REST API, исправляя его недостатки. Эта технология набирает обороты и уже активно используется в крупных системах, о ней говорят на конференциях, её активно внедряют в свои продукты.
Поэтому тестировщику становится важно понимать, что это такое, как вызывать GraphQL API, и как его тестировать. Именно этому мы и будем учиться на курсе. Я подробно расскажу и покажу на примерах, как писать запросы, как составляется схема, как можно автоматизировать рутину (в Postman-е), а вы закрепите пройденный материал домашними заданиями. Готовьтесь к тому, что практики будет много!
Работать будем с инструментами:
- Apollo
- Postman
Входной порог! Я предполагаю, что вы уже умеете тестировать: знаете про классы эквивалентности и граничные значения. То есть базовыми знаниями тестирования владеете. Подробнее см в блоке «Вопросы и ответы»
Темы курса:
1. Введение в GraphQL API
- Что такое GraphQL API и как его вызывать (учимся «накликивать» запрос)
- Структура запроса в GraphQL
- Что такое JSON (формат ответа от сервера)
- Чтение данных — запросы с типом query
- Изменение данных — запросы с типом mutation
- Подписки — запросы с типом subscription
- Использование variables (переменных) в запросе
2. Schema и как по ней составлять запрос. Все запросы составляются по схеме, поэтому её нужно уметь читать. Этому и будем учиться:
- Схема GraphQL
- Какие данные мы можем получить в ответе GraphQL API
- Типы данных в схеме:
- Scalar
- Object
- Input
- Enum
- Union
- Interface
- Массивы и обязательные поля
- Комментарии
- Типы запросов:
- Query
- Mutation
- Как написать схему
- Изменения, вносимые в схему — на что влияют
- Инструменты вызова GraphQL:
- Apollo
- Postman
- GraphQL-playground
- Другие инструменты
3. Тестирование GraphQL API
- GraphQL API vs REST API — чем отличаются
- Тестируем запрос в GrahpQL API
- Тестирование ролевой модели и доступов
- Тестируем параметры
- Тестируем заголовки
- Тестируем ответ
- Разные виды тестирования — как влияют на тесты
4. Автоматизация на уровне Postman
- Выбор инструмента для автоматизации (проблемы Apollo)
- Сохранение тестов
- Создание и запуск тестовых коллекций
- Переменные и окружения — для чего нужны и как используются
- Как передать рандомные значения
- Как запустить один запрос несколько раз
- Как загрузить тестовые данные из файла
- Как написать первый автотест в Postman
- JSON — как достать данные из:
- простого массива
- простого объекта
- дерева объектов
- Переиспользование переменных
Внимание: у нас не курс по программированию, мы не будем писать грамотный и качественный код. Я рассказываю только основы, которые помогают взять пример из Постмана и доработать под свои нужды.