WebRacer started as a high level web application testing library, similar to twill but with a more comprehensive API. With time the client portion became sufficiently useful standalone.
The agent module provides a browser level HTTP client. Besides the standard request/response functionality the agent module notably offers an easy to use form API.
WebRacer provides a test case class that offers more convenient integration of the rest of WebRacer into unittest-based test suites.
The goal of WebRacer is to expose HTTP and web-related functions in a manner that makes code for common tasks intuitive and concise, but does not compromise completeness. Phrased differently, WebRacer is meant to be suitable for all use cases involving driving or testing web applications rather than a certain predetermined subset of them.
WebRacer does not require the use of a framework. In fact, assertions that it provides are defined on the session class and may be used in web crawlers that do not employ unittest at all.
WebRacer aims to eventually have 100% documentation and test coverage.
Currently WebRacer tests HTTP applications via actual HTTP.
Support for testing WSGI applications without running an HTTP server is planned.
The application being tested may be launched in another thread in the test process or may be external to the test/driver process.
- Multiple concurrent test sessions
- Response assertions
- Comprehensive form handling
Note: API is not yet stable.
The largest application using WebRacer at this time is Wolis.
Execute the test suite by running nosetests
.
The test suite uses some nose features and will not work with unittest alone.
Released under the 2 clause BSD license.