pytest-pyreport

PyReport is a lightweight reporting plugin for Pytest that provides concise HTML report


Keywords
pytest_pyreport, python, pytest, report, slack, telegram, messenger, pyreport, pytest-plugin, qa, qa-automation, reporting, test-automation, testing
License
MIT
Install
pip install pytest-pyreport==1.6.0

Documentation

PyReport

PyPI - Downloads

Quick overview

PyReport is a lightweight reporting plugin for Pytest that provides concise HTML reports by parsing JunitXML test results

Pre-requisites

To be able to use this plugin you will need below dependencies that will be installed automatically with PyReport:

  • Python >=3.7
  • Jinja2
  • Pytest
  • matplotlib
  • requests
  • logstyle

Supported Messengers

  • Telegram Telegram
  • Slack Slack

Getting started

Installation

To start using PyReport please follow below instructions:

  • Install pytest-pyreport plugin:
pip install pytest-pyreport==<version>

Report generation

  • Run tests using below command to generate pyreport.html file with test results:
    pytest --junitxml=result.xml -o junit_family="xunit1" --pyreport
    

  • Run tests using below command if you want to send Telegram notification Telegram
    pytest --junitxml=result.xml -o junit_family="xunit1" --pyreport --telegram-pyreport <chat id> <bot token>
    
    • Prerequisites:
      • You need your own Telegram bot, which can be easily created using Telegram instructions. You can take the “chat ID” and “bot token” from there.

  • Run tests using below command if you want to send Slack notification Slack
    pytest --junitxml=result.xml -o junit_family="xunit1" --pyreport --slack-pyreport <webhook url> <channel id> <bot token>
    
    • Prerequisites:
      • You need your own Slack bot, which can be easily created using Slack instructions. You can take the “webhook url”, "channel id" and “bot token” from there.

  • Run tests using below command if you want to check generated report on the server if it is available:
    pytest --junitxml=result.xml -o junit_family="xunit1" --pyreport --telegram-pyreport <chat id> <bot token> --server <URL>
    pytest --junitxml=result.xml -o junit_family="xunit1" --pyreport --slack-pyreport <webhook url> <channel id> <bot token> --server <URL>
    
    • Prerequisites:
      • You need to run server beforehand. As an example using CI/CD tools like Jenkins or GitHub Actions

  • Run tests with failed tests counter. By running below command you will get JSON file with percentage of failed tests:
     pytest --junitxml=result.xml -o junit_family="xunit1" --pyreport --failed-tests-count
    
    • Fail percentage formula:
    Failed Tests Percentage = (Number of Failed Tests / Total Number of Tests) * 100
                            = (10 / 100) * 100
                            = 10%
    
    • Example fail_percentage.json:
    {"fail_count": 10, "fail_percentage": 10.0}

Test results

  • Once test run completed you should see pyreport.html file that auto generated by using above commands.
    Open it and check the test results as shown in below presentation

Presentation

pyreport