Требование к ПО: наличие установленого и запущенного docker
Установка:
Клонируем репозиторий
Скачиваем докер образы
Вызываем команду docker load -i rest_api_book_lib_docker.tar
Вызываем команду docker load -i jenkins_with_autotests.tar
Запуск тестов:
Выполнить команду docker compose up в корне проекта
Зайти в Jenkins по адресу http://localhost:8080/ с логином и паролем -
admin:83c55c9137c74d1e975e9f2140838991
Запустить билд и посмотреть allure-отчет
Первое, что стоит протестировать, это предоставленную документацию и спецификацию. Ознакомившись с требованиями, я не нашел никаких противоречий или неточностей.
Далее перейдем к позитивному тестированию:
| Тест-кейс | Шаги | Ожидаемый результат |
|---|---|---|
| Выполнить вызов API c валидными обязательными параметрами | Проверить код ответа | Код ответа соответствует rest архитектуре и сигнализирует об успешности операции |
| Проверить ответ сервера | Ответ сервера соответствует модели данных | |
| Выполнить вызов API c валидными обязательными и необязательными параметрами | Проверить влияние необязательных параметров | Необязательные параметры обрабатываются корректно |
Затем можно приступать к негативному тестированию:
| Тест-кейс | Шаги | Ожидаемый результат |
|---|---|---|
| Выполнить вызов API, попытавшись выполнить незаконные операции: | Проверить код ответа | Код ответа соответствует rest архитектуре и сигнализирует об ошибке операции |
| Добавить уже существующую книгу | Проверить ответ сервера | Ответ сервера ёмко описывает ошибку |
| Удалить несуществующую книгу | ||
| Обновить/создать книгу с недопустимыми данными |
Баги:
Нет валидации полей при создании и обновлении информации о книге
Шаги воспроизведения: Задать полю(ям) isElectronicBook, year, author неправильный тип данных
Ожидаемый результат: Метод вернет 400 статус-код и ошибку, где говорится что требуется другой тип данных у поля
Фактический результат: Книга с неправильными типами данных успешно создается
Примечания:
В методы можно передавать дополнительные поля, не несущие смысловой нагрузки, это никак не валидируется
Если передать очень большое значение айди методу получения информации о книге, то возникнет переполнение типа и сервер вернет 500ый статус-код.