Skip to content

Latest commit

 

History

History
72 lines (51 loc) · 2.31 KB

README.md

File metadata and controls

72 lines (51 loc) · 2.31 KB

Автоматизация тестирования REST API

Цель

Тестирование сервиса GitHub Issues

Подготовка

создан репо https://github.com/Nokhrin/api-testing-lab/ созданы токены, записаны в .env в корне репозитория как READ_AND_WRITE_TOKEN - сценарии создания, обновления, комментирования, закрытия issues, чтение репо, issue READ_TOKEN - сценарии "ошибка доступа" при изменении

GitHub API

Документация

Спецификация OpenAPI

JSON схема запроса GitHub GraphQL

Разработка

Конфигурация

# 1. Создать .env
touch .env
chmod 600 .env
# 2. Заполнить .env
# 3. Загрузить переменные
set -a; source .env; set +a;

Выполнение тестов

По тегам JUnit

mvn clean -ntp test -Dgroups=read

Чистка окружения

Закрыть открытые issues

mvn clean -B -ntp test-compile exec:java

Отчетность

Один тест с отчетом

mvn clean test allure:report -Dtest=org.nokhrin.github.graphql.IssueTest#verifyIssuesQueryReturnsValidIssues
# Запустить тесты и сгенерировать отчёт
mvn clean test allure:report

# В произвольном каталоге
mvn -Dallure.results.directory=path/to/allure-results allure:serve
mvn -Dallure.results.directory=/tmp/allure allure:serve
# 

# Открыть отчёт в браузере
firefox target/site/allure-maven-plugin/index.html

Взаимодействие по протоколам

Пример (REST): GET /repos/{owner}/{repo}/issues -> HTTP 200, массив объектов JSON Пример (GraphQL): POST /graphql -> HTTP 200, объект JSON с обязательным ключом data (или errors)