Testing Web Applications with Scripting Languages
Mark Rees Century Software
twill
Simple language for web browsing
Stress tester
Web site tester
http://code.google.com/p/twill
twill-sh
Interactive shell −
Scripted browsing −
twill-sh twill-sh -u http://localhost:8087
Record twill scripts with scotch
twill-fork
Scripted stress testing −
twill-fork -n 100 -p 5 test-wiki.twill
twill - unit testing
twill-sh process directory of tests
twill master run script
Python unit test framework
twill – other features
Supports authentication
Debug helpers
Extended with user defined commands
Handles “bad” html
“in-process” wsgi support
twill – the cons
Advanced usage requires python skills
It knows nothing about javascript
selenium
Test web apps from within the browser
Linux, Mac OS X, Windows −
ie6+, firefox 0.8-3.0, mozilla 1.6+, safari, opera 8+, chrome
http://www.openqa.org/selenium
Selenium Core
Uses javascript & iframes to embed test engine
Core must be installed on webserver under test
Selenium IDE
Firefox extension
Gets round core limitations
Saves tests as −
html or ruby ide scripts
−
Selenium RC run scripts in
Java, C#, Perl, PHP, Python, Ruby
Selenium Remote Control
Allows auto web ui testing with any language
2 components −
Selenium server, written in java
−
Drivers for languages including python and ruby
Selenium: how it works
Other options
Watir http://www.openqa.org/watir
Watij http://www.openqa.org/watij
Floyd http://www.openqa.org/floya
HttpUnit http://httpunit.sf.net
Sahi http://sahi.co.in/w/
WebDriver http://code.google.com/p/webdriver
WebDriver
One day will be part of selenium 2.0
Drives the browser using best native method
Java & Python bindings
Questions
code:test-rst2html.twill go http://localhost:8081/rst2html formvalue 1 text hello submit find "hello" back follow "Home"
code:test-rst2html-debug.twill debug http 1 go http://localhost:8081/rst2html formvalue 1 text hello submit find "hello" back follow "Home"