Imports pytest result(s) to TestResultWebApp database
Project description
PyTestLog2DB
Table of Contents
Getting Started
PyTestLog2DB is a command-line tool that enables you to import pytest XML result files into TestResultWebApp's database for presenting an overview about the whole test execution and detail of each test result.
PyTestLog2DB tool is operating system independent and only works with Python 3.
How to install
PyTestLog2DB can be installed in two different ways.
-
Installation via PyPi (recommended for users)
pip install PyTestLog2DB
-
Installation via GitHub (recommended for developers)
-
Clone the python-pytestlog2db repository to your machine.
git clone https://github.com/test-fullautomation/python-pytestlog2db.git
-
Install dependencies
PyTestLog2DB requires some additional Python libraries. Before you install the cloned repository sources you have to install the dependencies manually. The names of all related packages you can find in the file
requirements.txt
in the repository root folder. Use pip to install them:pip install -r ./requirements.txt
Additionally install LaTeX (recommended: TeX Live). This is used to render the documentation.
-
Configure dependencies
The installation of PyTestLog2DB includes to generate the documentation in PDF format. This is done by an application called GenPackageDoc, that is part of the installation dependencies (see
requirements.txt
).GenPackageDoc uses LaTeX to generate the documentation in PDF format. Therefore GenPackageDoc needs to know where to find LaTeX. This is defined in the GenPackageDoc configuration file
packagedoc\packagedoc_config.json
Before you start the installation you have to introduce the following environment variable, that is used in
packagedoc_config.json
:GENDOC_LATEXPATH
: path topdflatex
executable
-
Use the following command to install PyTestLog2DB:
python setup.py install
-
After succesful installation, the executable file PyTestLog2DB will be available (under Scripts folder of Python on Windows and ~/.local/bin/ folder on Linux).
In case above location is added to PATH environment variable then you can run it directly as operation system's command.
Usage
PyTestLog2DB requires the pytest result file(s) which contains the test result in JUnit XML format and TestResultWebApp's database information for importing.
Use below command to get tools's usage
PyTestLog2DB -h
The usage should be showed as below:
usage: PyTestLog2DB (PyTestXMLReport to TestResultWebApp importer) [-h] [-v] [--recursive] [--dryrun] [--append] [--UUID UUID] [--variant VARIANT] [--versions VERSIONS] [--config CONFIG]
resultxmlfile server user password database
PyTestLog2DB imports pytest JUnit XML report file(s)generated by pytest into a WebApp database.
positional arguments:
resultxmlfile absolute or relative path to the pytest JUnit XML report file or directory of report files to be imported.
server server which hosts the database (IP or URL).
user user for database login.
password password for database login.
database database schema for database login.
optional arguments:
-h, --help show this help message and exit
-v, --version version of the PyTestLog2DB importer.
--recursive if set, then the path is searched recursively for output files to be imported.
--dryrun if set, then verify all input arguments (includes DB connection) and show what would be done.
--append is used in combination with --UUID <UUID>. If set, allow to append new result(s) to existing execution result UUID in --UUID argument.
--UUID UUID UUID used to identify the import and version ID on webapp. If not provided PyTestLog2DB will generate an UUID for the whole import.
--variant VARIANT variant name to be set for this import.
--versions VERSIONS metadata: Versions (Software;Hardware;Test) to be set for this import (semicolon separated).
--config CONFIG configuration json file for component mapping information.
--interface {db,rest}
database access interface.
--testrunurl TESTRUNURL
link to test execution job: Jenkins job, Gitlab CI/CD pipeline, ...
The below command is simple usage with all required arguments to import pytest results into TestResultWebApp's database:
PyTestLog2DB <resultxmlfile> <server> <user> <password> <database>
Besides the executable file, you can also run tool as a Python module
python -m PyTestLog2DB <resultxmlfile> <server> <user> <password> <database>
Example
In order the import the robot result(s) to TestResultWebApp's database, we need the pytest result file in JUnit XML format.
So, firstly execute the pytest testcase(s) to get the result file(s). But the *.xml result file is not generated by default.
We need to specify the argument --junit-xml=<path> when executing pytest to get the generated JUnit XML report file at given path.
E.g: :
pytest --junit-xml=path/to/result.xml pytest/folder
After that, the *.xml result file will be available at path/to/result.xml and can be used for importing to TestResultWebApp with command:
PyTestLog2DB path/to/result.xml localhost test_user test_pw test_db
Then, open TestResultWebApp with your favourite browser and you will see how wonderful the execution result is displayed as below figures:
Dashboard view:
Datatable view:
Notes:
The *.xml report file generated by pytest contains only the testcase result(s) and less metadata information about the test execution such as project/variant, software version, tester , component, ... which are required by TestResultWebApp.
So that, PyTestLog2DB will handle those information with the default values.
But you can use the optional argument --config CONFIG to specify those information when importing to TestResultWebApp's database.
Sample configuration file:
{ "variant" : "MyProject", "version_sw": "0.1.1", "components": { "Testsuite1" : "test-data.test_tsclass.TestSuite1", "Testsuite2" : "test-data.test_tsclass.TestSuite2", "Others" : [ "test-data.test_ts1", "test-data.test_ts2" ] }, "tester" : "Tran Duy Ngoan" }
Please refer PyTestLog2DB tool's Documentation for more detail about default values and the configuration json file.
Contribution
We are always searching support and you are cordially invited to help to improve PyTestLog2DB tool.
Sourcecode Documentation
To understand more detail about the tool's features, parameters and how pytest result(s) will be displayed on TestResultWebApp, please refer to PyTestLog2DB tool's Documentation.
Feedback
Please feel free to give any feedback to us via
Email to: Thomas Pollerspöck
Issue tracking: PyTestLog2DB Issues
About
Maintainers
Contributors
License
Copyright 2020-2023 Robert Bosch GmbH
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file PyTestLog2DB-0.3.4.tar.gz
.
File metadata
- Download URL: PyTestLog2DB-0.3.4.tar.gz
- Upload date:
- Size: 527.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f1b9b3158833dd831f06de4c53cce06df5ba038e35f04a7561c523760bc3200 |
|
MD5 | 7cd42421239bb82f1e14a833edd6d16e |
|
BLAKE2b-256 | 7f562f7fefd278f525a43e9d6858183d563033a01661ea5e4284d2962a0f186d |
File details
Details for the file PyTestLog2DB-0.3.4-py3-none-any.whl
.
File metadata
- Download URL: PyTestLog2DB-0.3.4-py3-none-any.whl
- Upload date:
- Size: 522.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 669217be911e83303517f2785d909c69825741404b13a0ff9bb6b25b1e31020b |
|
MD5 | 77cdf951cf11fca0ad27d279a9a8aea1 |
|
BLAKE2b-256 | 25f378028dc222b2e30c28fbb9ea03aea707a7440aa945de0b9ca0bf23384acb |