-
Notifications
You must be signed in to change notification settings - Fork 5
Tasty functional testing
License
idealistdev/alfajor
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Alfajor
-------
Tasty functional testing.
Alfajor provides a modern, object-oriented and browser-neutral interface to
HTTP resources. With Alfajor, your Python scripts and test code have a live,
synchronized mirror of the browser's X/HTML DOM, even with DOM changes made on
the client by JavaScript.
Alfajor provides:
- A straightforward 'browser' object, with an implementation that
communicates in real-time with live web browsers via Selenium and a fast,
no-javascript implementation via an integrated WSGI gateway
- Use a specific browser, or, via integration with the 'nose' test runner,
switch out the browser backend via a command line option to your tests.
Firefox, Safari, WSGI- choose which you want on a run-by-run basis.
- Synchronized access to the page DOM via a rich dialect of lxml, with great
time-saving shortcuts that make tests compact, readable and fun to write.
- Optional management of server processes under test, allowing them to
transparently start and stop on demand as your tests run.
- An 'apiclient' with native JSON response support, useful for testing REST
and web api implementations at a fine-grained level.
- A friendly BSD license.
Behind the scenes, Alfajor has a well-defined structure that supports plugins
for new browser backends and testing requirements. The following plugins are
already underway or in planning:
- Windmill
- Selenium 2.0 / WebDriver
- cloud-based Selenium testing services
- py.test integration
Getting Started
===============
This is the alpha-release README. Please, bear with us as we assemble
traditional documentation and tutorial material. Until then...
To get started quickly, use the Alfajor self-tests to see it in action:
Setup:
1) create and activate a virtualenv (optional)
2) cd to the top of this distribution
3) python setup.py develop
4) easy_install nose
If you don't have Selenium installed, download Selenium RC. All you need is
the selenium-server.jar, and no configuration is required. Run it with 'java
-jar selenium-server.jar'.
Action:
1) nosetests --help
After following the steps above, the Alfajor plugin should be available
and listing command-line options for nose.
2) nosetests
You just ran a whole mess of tests against an in-process web app through
a WSGI interface.
3) nosetests --browser=firefox
You just ran the same mess of tests in a real web browser!
You can try other browser names: safari, etc.
------------------------------------------------------------------------------
The main action of Alfajor is directed through an alfajor.ini file. At the
simplest, this can be anywhere on the filesystem (see the --alfajor-config
option in nose) or placed in the same directory as the .py file that
configures the WebBrowser. See tests/webapp/{__init__.py,alfajor.ini}.
About
Tasty functional testing
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published