Welcome to PySys!

PySys is an easy-to-use cross-platform framework for writing and orchestrating all your system/integration tests, combined seamlessly with your unit and manual tests.

It provides a comprehensive package of methods to make all the common system/integration testing operations a breeze, as well as the flexibility to add whatever test execution and validation logic you need using the full power of the Python language.

Whatever language the application you’re testing is written in, and whatever platforms it needs to run on, PySys can help!

Key features include:

  • A comprehensive library of assertion methods appropriate for system-level testing, such as checking for error/success messages in log files and comparing the contents of output files.

  • A comprehensive library of methods to automate platform-independent process starting, orchestration, and cleanup, for both Windows and Unix-based systems. Includes common operations such as:

    • dynamic port allocation,

    • waiting until a server is running on a specified port

    • waiting until a file contains a specified message,

    • aborting early if an error message is detected

  • Support for executing tests in parallel to significantly speed up execution time, with a flexible mechanism for controlling execution order.

  • Support for executing the same test in several modes during your test run (for example against different web browsers, databases, etc).

  • A process memory monitoring framework to check for memory leaks when soak testing your application.

  • A performance monitoring framework for recording and aggregating latency, throughput and other performance metrics.

  • A pluggable “writers” framework for recording test outcomes in any format, including a standard JUnit-compatible XML results writer in the box, and support for running tests under Travis CI.

  • Integrated support for running PyUnit tests and doctests, in case your application is also written in Python.

  • Integrated support for executing manual/interactively driven test cases.

  • Test categorization and selective include/exclude execution, using per-test classification groups.

  • Support for Windows, Linux, macOS and Solaris.

PySys was created by Moray Grieve. The current maintainer is Ben Spiller. This is a community project so we welcome your contributions, whether enhancement issues or GitHub pull requests!


Use the issue tracker if you want to report a bug or feature request in the PySys test framework. For how-tos and advice, ask a question.