pytest-monitor 1.6.6

Creator: railscoder56

Last updated:

Add to Cart

Description:

pytestmonitor 1.6.6

pytest-monitor







Pytest-monitor is a pytest plugin designed for analyzing resource usage.


Features

Analyze your resources consumption through test functions:

memory consumption
time duration
CPU usage


Keep a history of your resource consumption measurements.
Compare how your code behaves between different environments.



Usage
Simply run pytest as usual: pytest-monitor is active by default as soon as it is installed.
After running your first session, a .pymon sqlite database will be accessible in the directory where pytest was run.
Example of information collected for the execution context:


ENV_H
CPU_COUNT
CPU_FREQUENCY_MHZ
CPU_TYPE
CPU_VENDOR
RAM_TOTAL_MB
MACHINE_NODE
MACHINE_TYPE
MACHINE_ARCH
SYSTEM_INFO
PYTHON_INFO



8294b1326007d9f4c8a1680f9590c23d
36
3000
x86_64
Intel(R) Xeon(R) Gold 6154 CPU @ 3.00GHz
772249
some.host.vm.fr
x86_64
64bit
Linux - 3.10.0-693.el7.x86_64
3.6.8 (default, Jun 28 2019, 11:09:04) n[GCC …



Here is an example of collected data stored in the result database:


RUN_DATE
ENV_H
SCM_ID
ITEM_START_TIME
ITEM
KIND
COMPONENT
TOTAL_TIME
USER_TIME
KERNEL_TIME
CPU_USAGE
MEM_USAGE



2020-02-17T09:11:36.731233
8294b1326007d9f4c8a1680f9590c23d
de23e6bdb987ae21e84e6c7c0357488ee66f2639
2020-02-17T09:11:36.890477
pkg1.test_mod1/test_sleep1
function
None
1.005669
0.54
0.06
0.596618
1.781250

2020-02-17T09:11:36.731233
8294b1326007d9f4c8a1680f9590c23d
de23e6bdb987ae21e84e6c7c0357488ee66f2639
2020-02-17T09:11:39.912029
pkg1.test_mod1/test_heavy[10-10]
function
None
0.029627
0.55
0.08
21.264498
1.781250

2020-02-17T09:11:36.731233
8294b1326007d9f4c8a1680f9590c23d
de23e6bdb987ae21e84e6c7c0357488ee66f2639
2020-02-17T09:11:39.948922
pkg1.test_mod1/test_heavy[100-100]
function
None
0.028262
0.56
0.09
22.998773
1.781250

2020-02-17T09:11:36.731233
8294b1326007d9f4c8a1680f9590c23d
de23e6bdb987ae21e84e6c7c0357488ee66f2639
2020-02-17T09:11:39.983869
pkg1.test_mod1/test_heavy[1000-1000]
function
None
0.030131
0.56
0.10
21.904277
2.132812

2020-02-17T09:11:36.731233
8294b1326007d9f4c8a1680f9590c23d
de23e6bdb987ae21e84e6c7c0357488ee66f2639
2020-02-17T09:11:40.020823
pkg1.test_mod1/test_heavy[10000-10000]
function
None
0.060060
0.57
0.14
11.821601
41.292969

2020-02-17T09:11:36.731233
8294b1326007d9f4c8a1680f9590c23d
de23e6bdb987ae21e84e6c7c0357488ee66f2639
2020-02-17T09:11:40.093490
pkg1.test_mod2/test_sleep_400ms
function
None
0.404860
0.58
0.15
1.803093
2.320312

2020-02-17T09:11:36.731233
8294b1326007d9f4c8a1680f9590c23d
de23e6bdb987ae21e84e6c7c0357488ee66f2639
2020-02-17T09:11:40.510525
pkg2.test_mod_a/test_master_sleep
function
None
5.006039
5.57
0.15
1.142620
2.320312

2020-02-17T09:11:36.731233
8294b1326007d9f4c8a1680f9590c23d
de23e6bdb987ae21e84e6c7c0357488ee66f2639
2020-02-17T09:11:45.530780
pkg3.test_mod_cl/test_method1
function
None
0.030505
5.58
0.16
188.164762
2.320312

2020-02-17T09:11:36.731233
8294b1326007d9f4c8a1680f9590c23d
de23e6bdb987ae21e84e6c7c0357488ee66f2639
2020-02-17T09:11:50.582954
pkg4.test_mod_a/test_force_monitor
function
test
1.005015
11.57
0.17
11.681416
2.320312





Documentation
A full documentation is available.


Installation
You can install pytest-monitor via conda (through the conda-forge channel):
$ conda install pytest-monitor -c https://conda.anaconda.org/conda-forge
Another possibility is to install pytest-monitor via pip from PyPI:
$ pip install pytest-monitor


Requirements
You will need a valid Python 3.5+ interpreter. To get measures, we rely on:

psutil to extract CPU usage
memory_profiler to collect memory usage
and pytest (obviously!)

Note: this plugin doesn’t work with unittest


Storage backends
By default, pytest-monitor stores its result in a local SQLite3 local database, making results accessible.
If you need a more powerful way to analyze your results, checkout the
monitor-server-api which brings both a REST Api for storing and historize your results and an API to query your data.
An alternative service (using MongoDB) can be used thanks to a contribution from @dremdem: pytest-monitor-backend.


Contributing
Contributions are very welcome. Tests can be run with tox. Before submitting a pull request, please ensure
that:

both internal tests and examples are passing.
internal tests have been written if necessary.
if your contribution provides a new feature, make sure to provide an example and update the documentation accordingly.



License
This code is distributed under the MIT license. pytest-monitor is free, open-source software.


Issues
If you encounter any problem, please file an issue along with a detailed description.


Author
The main author of pytest-monitor is Jean-Sébastien Dieu, who can be reached at jdieu@salsify.fr.

This pytest plugin was generated with Cookiecutter along with @hackebrot’s cookiecutter-pytest-plugin template.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.