A REST API testing and microbenchmarking tool that uses YAML/JSON config files, requiring no code to write tests.
PyRestTest is a Python-based tool for testing and microbenchmarking REST APIs. It allows users to define test scenarios and performance benchmarks using YAML or JSON configuration files without writing any code. It solves the problem of automating API validation and performance checks in a simple, deployable manner.
Developers, QA engineers, and DevOps professionals who need to automate REST API testing, health checks, or performance benchmarking within CI/CD pipelines or server environments.
Developers choose PyRestTest for its code-free test definition, low overhead benchmarking using cURL metrics, and ease of integration into automated workflows due to its minimal dependencies and exit code reporting.
Python Rest Testing
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Tests are defined in YAML or JSON config files without writing code, making it accessible for non-Python developers and easy to integrate into automated workflows. The README emphasizes this as a core philosophy for simplicity.
Leverages pycURL to collect native network metrics like response time and download speed with minimal overhead (~0.3 ms per request), ensuring reliable performance data for API analysis.
Built only on pycURL and PyYAML, making it lightweight and easy to deploy in server environments for smoke tests or health checks, as highlighted in the installation section.
Supports extracting data from one test response and using it in subsequent tests via templating, enabling complex integration scenarios without manual intervention, as shown in the examples.
Primarily designed for Linux and Mac, with Windows and other platforms unsupported or requiring manual workarounds; the README's troubleshooting section notes frequent installation issues due to pycurl dependencies.
Templating is limited to simple string substitution with no native support for loops or advanced conditional flows, requiring custom extensions for complex test scenarios, as admitted in the syntax limitations.
Python 3 compatibility is labeled as alpha and requires installing the 'future' module, indicating potential instability and lack of full feature parity compared to Python 2.7.
Explicitly does not support load testing, focusing only on microbenchmarking; teams needing concurrency or stress testing must use separate tools, as stated in the FAQ.