Skip to content

Обеспечить автоматизированное тестирование функциональности API для ресурса Posts на сайте JSONPlaceholder

Notifications You must be signed in to change notification settings

yarskii/avaclinic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект автоматизированного тестирования Скандинавия


Основная задача

Основная задача — обеспечить автоматизированное тестирование функциональности API для ресурса Posts на сайте JSONPlaceholder. Проект включает следующие задачи:

  • Проверка ключевых CRUD операций (Create, Read, Update, Delete) для ресурса Posts.
  • Проверка корректности ответов сервера (статус-коды, структура JSON, наличие обязательных полей).
  • Обеспечение независимости тестов и их легкости в поддержке.

Описание

Проект включает набор автоматизированных тестов, написанных с использованием фреймворков Pytest, Allure, Requests и jsonschema. Тесты проверяют основные функциональные возможности API для ресурса Posts, такие, как:

  • Создание поста (Create): Проверка возможности создания нового поста с корректными данными.
  • Получение поста (Read): Тестирование получения списка всех постов и конкретного поста по его ID.
  • Обновление поста (Update): Проверка полного (PUT) и частичного (PATCH) обновления данных поста.
  • Удаление поста (Delete): Тестирование удаления поста по его ID и проверка, что пост больше недоступен.

Тестирование осуществляется с использованием библиотеки Requests для выполнения HTTP-запросов и jsonschema для валидации структуры и типов данных в ответах API. Для формирования отчетов о тестировании используется Allure, что позволяет детально анализировать результаты выполнения тестов.

Процесс тестирования включает:

  • Проверку корректности статус-кодов ответов сервера.
  • Валидацию структуры JSON-ответов на соответствие заданным схемам.
  • Логирование всех запросов и ответов для упрощения отладки.

Результаты тестирования собираются и формируются в виде отчетов с помощью Allure, что обеспечивает удобный анализ покрытия тестами и выявленных проблем. Отчеты могут быть интегрированы в CI/CD-системы для автоматического запуска тестов при каждом изменении кода.


Используемые инструменты

Python Logo Pytest Logo Jenkins Logo Allure Logo Jira Logo Telegram Logo

Инструмент Описание
Pytest Фреймворк для написания и запуска тестов. Он предоставляет удобный синтаксис и разнообразные возможности для тестирования.
Allure Инструмент для создания отчетов о тестировании с поддержкой различных языков.
Requests Библиотека для выполнения HTTP-запросов к API.
jsonschema Библиотека для валидации JSON-ответов на соответствие заданным схемам.

Содержание

Установка

Клонирование репозитория

Для начала работы, клонируйте репозиторий и перейдите в директорию проекта:

 git clone https://github.com/yarskii/avaclinic.git # Клонируем репозиторий
 cd avaclinic # Переходим в папку проекта

Создание виртуального окружения (опционально)

 python -m venv venv
 source venv/bin/activate  # Для Linux/macOS
 .\venv\Scripts\activate   # Для Windows

Установка зависимостей

Установка необходимых библиотек для работы проекта: Команды:

 pip install -r requirements.txt  # Устанавливаем зависимости из файла requirements.txt

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

Локальный запуск

Чтобы запустить все тесты, выполните команду:

 pytest tests

Для запуска конкретного теста, используйте следующую команду:

 pytest tests/api/test_posts_api.py

Параметры запуска

Вы можете использовать различные параметры для управления поведением тестов:

  • -s: Выводить все выводы в консоль.
  • -v: Детализированное логирование.
  • --alluredir=allure-results: Сохранять результаты тестов для генерации отчетов Allure.

Пример команды:

 pytest --alluredir=allure-results

Генерация отчетов Allure

Установка Allure Commandline

Следуйте инструкциям на официальном сайте Allure для установки Allure Commandline.

Генерация отчета

После выполнения тестов с параметром --alluredir, вы можете сгенерировать отчет следующей командой:

 allure serve allure-results

Запуск проекта в Jenkins
  1. Откройте проект
  2. Выберите Build with parameters
  3. Измените параметры, если требуется:
    • COMMENT: Комментарий к сборке (например, номер задачи или описание изменений).
    • TESTS_FOLDER: Выберите набор тестов (tests, tests/api,tests/web)
    • BROWSER_VERSION: Версия браузера (99, 100, 113, 114, 120, 121, 122, 123, 124, 125, 126).
  4. Нажмите Build
  5. После сборки, результат работы можно увидеть в Allure Report

Интеграция с Allure TestOps

В проекте используется система управления тестированием Allure TestOps для централизованного мониторинга, анализа и управления тестами.

Как это работает:

  • Мониторинг покрытия тестами: Allure TestOps позволяет отслеживать, какие части продукта покрыты автоматизированными тестами, а также анализировать эффективность тестирования.
  • Интеграция с CI/CD: Система интегрируется с Jenkins, что обеспечивает автоматическую загрузку результатов тестирования после каждого запуска.
  • Связь с задачами Jira: Каждый тест может быть связан с задачей в Jira, что помогает отслеживать статус исправления дефектов и планировать работу над ними.
  • Генерация детальных отчетов: Allure TestOps предоставляет расширенные возможности для создания отчетов о тестировании, включая графики, диаграммы и статистику.

Скриншоты

Интеграция с Allure TestOps Интеграция с Allure TestOps

Тест-кейсы в Allure TestOps

Эти изображения демонстрируют интеграцию проекта с Allure TestOps для управления тестами, анализа покрытия и мониторинга результатов.


Интеграция с Jira

В проекте используется система управления задачами Jira для отслеживания дефектов, планирования тестирования и координации работы между командами разработки и тестирования.

Как это работает:

  • Регистрация дефектов: Все выявленные проблемы во время автоматизированного тестирования автоматически или вручную регистрируются как задачи в Jira.
  • Связь с тест-кейсами: Каждый тестовый сценарий может быть связан с задачей в Jira, что позволяет легко отслеживать статус тестирования конкретной функциональности.
  • Отчетность: Интеграция с Allure TestOps обеспечивает возможность генерации отчетов, которые включают ссылки на задачи Jira, связанные с тестами.

Скриншоты

Интеграция с Jira Скриншот показывает, как дефекты и задачи, выявленные в ходе тестирования, регистрируются и отслеживаются в системе Jira.


Скриншоты

Отчеты

Cтраница тестов Jenkins

Cтраница тестов Jenkins

Этот скриншот демонстрирует интерфейс Jenkins, где можно запускать тесты с различными параметрами и просматривать их статус.

Общий отчёт Allure

Общий отчёт Allure

Здесь представлен общий отчет Allure, который содержит сводную информацию о результатах выполнения тестов: количество пройденных, упавших и пропущенных тестов.

Детальный отчёт о пройденном тесте

Детальный отчёт о пройденном тесте

На этом скриншоте показан детальный отчет о конкретном тесте, включая шаги выполнения, логи и прикрепленные скриншоты.

Отчет в Telegram

Отчет в Telegram

Пример автоматического уведомления в Telegram о результате выполнения тестов. Это позволяет оперативно реагировать на любые проблемы.


Лицензия

Этот проект лицензирован под MIT License. Подробности смотрите в файле LICENSE.


Если у вас есть вопросы или предложения, пожалуйста, создайте issue на GitHub или свяжитесь со мной напрямую.

Автор: Ярослав Гусев

About

Обеспечить автоматизированное тестирование функциональности API для ресурса Posts на сайте JSONPlaceholder

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages