Skip to content

Latest commit

 

History

History
295 lines (226 loc) · 15.7 KB

README.md

File metadata and controls

295 lines (226 loc) · 15.7 KB

Проект по автоматизации тестирования API для веб-приложения Book Store

Содержание

Покрытый функционал

Технологический стек

Запуск тестов из терминала

Запуск тестов в Jenkins

Отчет о результатах тестирования в Allure Report

Интеграция тестов c тест-менеджмент системой Allure TestOps

Интеграция тестов c таск-трекер системой Jira

Уведомления в Telegram с использованием бота

Покрытый функционал

Разработаны автотесты на API.

API

  • Запросы GET, POST и DELETE
    • Успешная генерация токена
    • Отображение списка всех книг
    • Отображение определенной книги по ISBN в списке всех книг
    • Добавление и удаление книги в профиле пользователя
  • Отображение statusCode и body в ответе запроса
  • Соответствие body ответа JSON Schema
  • Отображение значений ключа в соответствии с проверкой на Groovy

Вернуться к содержанию 🔝

Технологический стек

В данном проекте автотесты написаны на Java с использованием библиотеки REST Assured для API-тестов.

Allure Report формирует отчет о запуске тестов.

Для автоматизированной сборки проекта используется Gradle.

В качестве библиотеки для модульного тестирования используется JUnit 5.

Jenkins выполняет запуск тестов.

Автотесты интегрируются с тест-менеджмент системой Allure TestOps и таск-трекер системой Jira.

После завершения прогона отправляются уведомления с помощью бота в Telegram.

Вернуться к содержанию 🔝

Запуск тестов из терминала

🕹️ Запуск тестов

gradle clean ${TASK}
ℹ️ Для запуска тестов должны существовать следующие файлы ⇩
👈 credentials.properties

В файле должны быть расположены:

  • userName и password – данные для авторизации в веб-приложении Book Store
👈 api.properties

В файле должны быть расположены:

  • apiURL – адрес сервера, который будет использоваться в тестах

🕹️ Параметры сборки

👈 TASK – список тестов, сгруппированных по параметру тега. В зависимости от выбранного параметра, будут запускаться определенные группы тестов.

Доступные варианты:

  • test – запуск всех тестов
  • high_priority_tests – запуск высокоприоритетных тестов с тегами Critical, Highest, Blocker, High
  • web_test – запуск тестов с тегом Web
  • api_test – запуск тестов с тегом API

🕹️ Формирование отчета Allure

allure serve build/allure-results

❗ Для формирования отчета должен быть установлен Allure.

Вернуться к содержанию 🔝

Запуск тестов в Jenkins

🚀 Для запуска тестов в Jenkins необходимо выполнить следующие шаги:

  1. Открыть сборку Jenkins
  2. Нажать на таск "Собрать с параметрами"
  3. Указать значения параметров
  4. Нажать на кнопку "Собрать"

🚀 Для формирования отчета о прохождении тестов в Allure Report необходимо выполнить следующий шаг:

  1. После выполнения сборки нажать на любую ссылку/иконку "Allure Report"

Вернуться к содержанию 🔝

Отчет о результатах тестирования в Allure Report

Allure-framework используется в качестве инструмента для построения отчетов о прогоне автотестов. Он позволяет получить информацию о ходе выполнения тестов, а также прикрепить скриншоты, логи и видео к формируемому отчету. Имеется возможность указать различные теги, приоритеты и прочую сопутствующую информацию для тестов.

👈 Страница Overview

Сраница Overview является главной страницей Allure-отчета.

Состоит из следующих блоков:

  • Блок ALLURE REPORT – включает в себя дату и время прохождения теста, общее количество прогнанных кейсов, а также диаграмму с указанием процента и количества успешных, упавших и сломавшихся в процессе выполнения тестов.

  • Блок TREND – показывает тренд прохождения тестов от сборки к сборке.

  • Блок SUITES – показывает распределение результатов тестов по тестовым наборам.

  • Блок ENVIRONMENT – показывает тестовое окружение, на котором запускались тесты.

  • Блок CATEGORIES – показывает распределение неуспешно прошедших тестов по видам дефектов.

  • Блок FEATURES BY STORIES – показывает распределение тестов по функционалу, который они проверяют.

  • Блок EXECUTORS – показывает исполнителя текущей сборки. Если выполнение производилось на инструменте CI (например, на Jenkins), то будет предоставлена информация о джобе и номере сборки.

🎯 Главная страница Allure-отчета

👈 Страница Graphs

На странице Graphs можно получить информацию о тестовом прогоне в графическом виде: статус прогона, распределение тестов по критичности, длительности прохождения, перезапускам, категориям дефектов и так далее.

🎯 Информация о тестовом прогоне в графическом виде

👈 Страница Behaviors

На странице Behaviors тесты сгруппированы по проверяемому функционалу (Epic, Feature, Story).

🎯 Группировка тестов по проверяемому функционалу

👈 Прочие страницы
  • Страница Categories – данная страница предоставляет информацио о распределении дефектов по их видам.

  • Страница Suites – на данной странице представляется стандартное распределение выполнявшихся тестов по тестовым наборам или классам, в которых находятся тестовые методы.

  • Страница Timeline – данная страница визуализирует временные рамки прохождения каждого теста.

  • Страница Packages – на этой странице тесты сгруппированы по пакетам, в которых лежат тестовые классы.

Вернуться к содержанию 🔝

Интеграция тестов c тест-менеджмент системой Allure TestOps

Allure TestOps используется для хранения всех авто и ручных тестов, запусков и их результатов, а также статистики и отчетов.

🧩 Основной дашборд

🧩 Кастомный дашборд

🧩 Дашборд по типам тестов

🧩 Дашборд по стендам

🧩 Дашборд по команде

🧩 Запуски тестов

🧩 Результаты запуска тестов

🧩 Сгруппированные тест-кейсы по проверяемому функционалу

Вернуться к содержанию 🔝

Интеграция тестов c таск-трекер системой Jira

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

Вернуться к содержанию 🔝

Уведомления в Telegram с использованием бота

После завершения сборки специальный бот, созданный в Telegram, автоматически обрабатывает и отправляет сообщение с отчетом о прогоне. Фреймворк также поддерживает уведомления по электронной почте, Slack, Skype и Mattermost.

Вернуться к содержанию 🔝