Skip to content

API-автотесты на Petstore с использованием Python, Pytest, Request, Allure TestOps, Allure Report, Jenkins, и Telegram Bot

Notifications You must be signed in to change notification settings

andreyzavrichko/qa_guru_python_api_diplom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект petstore-api-tests

🌸 Содержание

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

Описание проекта

Список проверок

Пример ручного выполнения тестов с помощью Postman

Структура проекта

Запуск автотестов выполняется на сервере Jenkins

Отчёты о результатах сборок в Allure TestOps

Оповещения

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

This is an image

Описание проекта

Дипломный проект реализации автотестирования Rest Api.

В качестве объекта тестирования выбран сайт https://petstore.swagger.io/ с открытым api.

This is an image

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

Особенности реализации тестового проекта

  • Модели данных описаны с помощью @dataclass.
  • Использованы утилиты для загрузки и валидации Json схем
  • Использована утилита для прикрепления Request URL, Response Body, cURL
  • Использованы шаблоны форматирования логов запросов
  • В тестах создаются тестовые данные и удаляются после прохождения теста

Список проверок, реализованных в автотестах

  • Find by status Sold. Поиск по статусу Sold.
  • Create Order. Создание заказа.
  • Check Inventory. Проверка инвентаря.
  • Find by status Null. Поиск по пустому статусу.
  • Find by status Available. Поиск по статусу Available.
  • Find order. Поиск заказа.
  • Get empty User. Получение пустого пользователя.
  • Create User. Создание пользователя.
  • Create User with array. Создание пользователя с массивом.
  • Get null User. Получение пользователя с null.
  • Find by pet ID. Поиск питомца по ID.
  • Create User with list. Создание пользователя со списком.
  • Create pet. Создание питомца.
  • Get User. Получение пользователя.
  • Find by status Pending. Поиск по статусу Pending.

Пример ручного выполнения тестов с помощью Postman

This is an image

Структура проекта

  • api - клиент для отправки запросов
  • data - модели для генерирования тестовых данных
  • schemas - json схемы для валидации ответа
  • tests - тесты, разбитые по категориям
  • utils - валидация json схем, прикрепление логов и attach
  • pytest.ini - конфигурационный файл
  • requirements.txt - используемые в проекте библиотеки

This is an image

Пример запуска из командной строки

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pytest 

Запуск автотестов выполняется на сервере Jenkins

This is an image

Для запуска тестов необходимо выбрать пункт "Собрать сейчас"

Отчёты о результатах сборок, списки тесткейсов, аналитические dashboards хранятся в Allure TestOps

Сссылка на проект в AllureTestOps (запрос доступа [email protected])

Итоговые dashboard по результатам сборок

This is an image

Список результата выполнения тест-кейсов в Allure TestOps

This is an image

Пример с автоматически сгенерированными тест-кейсами в Allure TestOps

This is an image

Пример выполнения тестов в Allure TestOps

This is an image

Итоговые dashboard в Allure Report

This is an image

Список тест-кейсов в Allure Report

This is an image

Графики Dashboards в Allure Report

This is an image

Графики Dashboards в Allure Report

This is an image

Категории ошибок в Allure Report

This is an image

Timeline выполнения тестов в Allure Report

This is an image

Настроено автоматическое оповещение о результатах сборки Jenkins в Telegram-бот

This is an image

❤️ qa.guru
💙 t.me/qa_automation

About

API-автотесты на Petstore с использованием Python, Pytest, Request, Allure TestOps, Allure Report, Jenkins, и Telegram Bot

Topics

Resources

Stars

Watchers

Forks

Languages