HTTPTest
Description
The HTTPtest script was created to simpify regression testing of a set of servers that provide data to other systems using XML and the HTTP protocol. This protocol was original chosen for ease of manual testing. All that would be needed is a browser. However, manual testing proved tedious.
HTTPtest requires a set of tests be defined in a configurations file. All of the tests in this file are run and their results reported. All tests use a straight-forward request/response model. Each test describes the request to make and a set of test criteria that must be met by the response.
Documentation
The distribution contains a DTD for the HTTPtest configuration file. In addition, the HTTPtest.pl script contains POD documentation that should answer most questions. An HTML version of that document is available online. An online tutorial is now available, as well.
Download the current version
A gzipped tar file containing the current distribution (0.782) of the script is available.
Changes
- 0.782
- Combines several unreleased versions.
- Documentation updates
- Command line options cleanup
- Added
skip
element - Added
subtest-defs
andcall
elements - Correct nonexist header test
- Extend testing
- Add
-f
command line option - Added
or-all
andand-all
subtests - Cleanups for
codelib
naming
- 0.71
- Correction of HTTP Basic Authentication support.
- 0.7
- Addition of HTTP Basic Authentication support.
- 0.692
- Documentation changes to match with the forthcoming tutorial.
- 0.691
- Correct a bug in the handling of the default include path.
- 0.69
- Add support for response filtering and a cookie jar.
Download HTTPtestS.pl
In order to comply with the current restrictions on scripts submitted
to CPAN, I have created HTTPtestS.pl. This is
a standalone version of the HTTPtest
program. It only depends
on code already in the standard distribution or on CPAN. Unfortunately,
it is based on the version 0.66 of HTTPtest. I hope to bring it up to date
soon.
Since HTTPtestS.pl
is a standalone program, it cannot
contain the test code included in the other distribution. Those tests
are available separately.
Future Directions
The first issue to cover for the future is, of course, finishing the current interface. After that, I have several alternative versions in mind.
- Test raw TCP/IP sockets
- Test DNS (Suggested by John Gallagher)
- Test other network protocols
- Test cmdline programs
Before implementing too many of these, I would need to look at factoring out the common code (and the common part of the description languages). This would probably make an interesting module for submission to CPAN. Maybe something like Test::Regression. (I'd like something shorter, though)
Acknowledgements
This project would probably never have been done without various members of the Perl community. Particular thanks should go to the authors of the LWP modules and the XML::Parser module. Without their work, this would have required a whole lot more groundwork.
Several programmers at Telescan, Inc. helped to design this software, including John Gallagher, Tuyen Tran, and Rick Hoselton. I also would like to thank Danny Hoover, Roger Wadsworth, and Alex Wyche for examining the business/legal issues and concluding that supplying this script for wider use was in Telescan's best interests.