Testing websites is a pain. Many regression tests for a website can be verified automatically, speeding up the quality assurance process and allowing the engineers to focus on the more important issues. Additionally developers may want to monitor their development, QA and production environment, so that they can be sure that everything is running as they expect.
Latka is an HTTP functional testing suite for automated QA. Latka suites are XML documents, which can be written and/or modified without writing Java code. Latka tests can be created quickly and modified easily, even by engineers without Java experience.
The Latka project shall develop an XML-based syntax for HTTP-based functional tests. Latka will support, at the least, SSL communication and cookies.
Included within Latka are classes that simulate a user agent. While the backend HTTP communication is handled by the HttpClient Commons component, the Latka interfaces simulate some of the behaviour of an actual web browser, including automatically passing cookies from request to request in a session. We hope to integrate these classes into a "useragent" package in HttpClient at some point, since they are a useful abstraction and not tied to Latka in any way, nor do they modify the core HttpClient classes.
Latka also includes several validations that can be performed on the HTTP responses, including checking the status code, byte length, or request timing. In addition you will be able to customize Latka with your own validators by writing a couple of simple classes.
Latka relies on:
Java Development Kit (Version 1.3 or later)
A JAXP 1.1 implementation
A SAX 2.0 parser conforming to the JAXP 1.1 APIs
An XSLT parser conforming to JAXP 1.1
HttpClient from Commons - for HTTP communcation
Logging component from Commons (not yet implemented)
JUnit - for testing
JSSE - SSL support (optional at runtime)
Jakarta-Regexp - regular expression tests and XML preprocessing (for variable support)
JDOM - for building XML reports
The initial source has been committed to the Sandbox, and includes almost all of the functionality described above.
CVS Repository - New directory latka in the jakarta-commons CVS repository.
Mailing List - Discussions will take place on the general jakarta-commons@jakarta.apache.org mailing list. To help list subscribers identify messages of interest, it is suggested that the message subject of messages about this component be prefixed with [Latka].
Bugzilla - New component "Latka" under the "Commons" product category, with appropriate version identifiers as needed.
Jyve FAQ - New category "commons-latka" (when available).
The initial committers on the Latka component shall be:
Morgan Delagrange
Doug Sale
Rodney Waldhoff
TBD