I want to do full integration testing for a web application. I want to test many things like AJAX, positioning and presence of certain phrases and HTML elements using several browsers. I'm seeking a tool to do such automated testing.
On the other hand; this is my first time using integration testing. Are there any specific recommendations when doing such testing? Any tutorial as well?
(As a note: My backend code is done using Perl, Python and Django.)
Thanks!
I would also recommend Selenium. It got a really nice Firefox Plugin, that you can use to create your integration tests.
Another great tool for browser testing which is built as Ruby library and uses Ruby for scripting is Watir. There is also a firefox plugin for watir just like selenium called
Firewatir hosted on google code
If you need to do full testing including exploiting browser features like AJAX then I would recomend Selenium. Selenium launches a browser and controls it to run the tests.
It supports all the major platforms and browsers. Selenium itself is implemented in Java but that is not really an issue if it is being used to test a web application through its user interface.
Selenium tests are a sequence of commands in an HTML table, the supported commands are in well documented. There is also an IDE implemented as a Firefox plugin that can be used to record and run tests. However the test scripts created in the IDE can be used to drive tests against any of the supported browsers.
You can also control selenium using Selenium-RC's python binding. For example:
Here's another option, all written in Python and cross browsers for running AND recording tests: Windmill
TestPlan is a great tool for general purpose web testing. It provides both a display-less backend and Selenium. The Selenium backend should take care of testing in all the popular browsers. It also has its own scripting language which makes it quick to write and test, though Java can also be used.
For example, this goes to a page and submits a search form and checks that it found the correct result.