Description |
This product allows developers to create TTW Selenium test suites
inside their Zope instance, in order to do browser-based functional
testing of their site.
You can add a Zuite object at any location within your Zope
site. It behaves as a standard ordered folder, with a couple of
differences:
- It's
index_html is the "TestRunner.html" view familiar
from Selenium.
- It derives the test suite (in the upper left corner iframe)
from all OFS.Image.File objects whose names start with
test .
You can use the OrderedFolder support to modify the order in
which the test case files are run.
- It provides a "Zip" action, which allows you to export the
test suite, all test cases, and the supporting Selenium
Javascript / CSS files as a single, self-contained zipfile.
Adding Tests
Tests are just File instances whose names begin with test .
They should have a content type of text/html , and should contain
a table which defines the steps which make up the test case.
See http://selenium.thoughtworks.com/testrunner.html for documentation
on the table structure and the Selenese language.
Using Additional Metatypes as Test Cases
On the "Properties" tab of your test suite, you can add / modify
the list of meta_types which the suite will allow as test cases.
Adding "Script (Python)", for instance, allows you to define
test cases in PythonScripts.
Nesting Test Suites
Each test suite automatically includes the test cases of any
suite it contains. You can take advantage of this feature to
organize your test cases in a hierarchy, running them in separate
segments, or all at once.
Including Tests from the Filesystem
Test suites now have a property, 'filesystem_path'; if set, the
suite will recursively load testcases from files in / under the
directory pointed to by that path.
The list of files to be included is computed via the following
rules:
- If the directory contains a file,
.objects , it is presumed to
contain a list of files to be included, one per line; only those
files / subdirectories (if present) will be included. In this case,
the test cases will be presented in the order indicated in the file,
followed by any test cases from subdirectories.
- Otherwise, if the suite's property,
filename_glob is non-empty,
it will be expanded (via Python's glob.glob ) to compute the list
of filenames. The test cases will be presented in alphabetical
order, followed by any test cases from subdirectories.
- Otherwise, any file will be considered a testcase. The test cases
will be presented in alphabetical order, followed by any test cases
from subdirectories.
Capturing Results from the Test Run
Selenium has a feature which allows the testrunner to upload
result data from an automated test run to the server.
Invoke the test suite from your browser as usual, but append the
query string ?auto=1 , to the URL, e.g.:
http://localhost:8080/test_suite?auto=1
Selenium will run all test cases, and then upload its result data
to the postResults method of your suite. (Note that you no longer
need the postResults PythonScript in the root of your site, because
the latest version of Selenium posts to that name relative to the
test suite).
|