Sahi is an automation and testing tool for web applications, with the facility to record and playback scripts.
Developed in java and javascript, this tool uses simple javascript to execute events on the browser.
Sahi's features include, in-browser controls, text based scripts, ant support for playback of suites of tests, and multi threaded playback. Sahi supports HTTP and HTTPS.
Sahi runs as a proxy server and the browser needs to use the sahi server as its proxy. Sahi then injects javascript so that it can access elements in the webpage. This makes the tool independant of the website/ web application.
Here are some key features of "Sahi":
· Recording of browser actions.
· Playback of recorded/scripted actions.
· Accessor Viewer for identifying html elements for scripting
· Easily editable scripts (text files)
· Simple APIs
· Integrates with ant builds
· Logging/reports
· Script is in javascript hence supports concepts and constructs that javascript supports
· Support for global variables stored across pages in a test and across tests in a suite.
· Script refactorable into functions and files.
· Scripts runnable through url.
· Bugs can be recorded by testers and the sahi script can be published on a web server.
· This url can be included in bug reports.
· Developers can reproduce the bug by pointing to that url in the bug report.
· Scripts automatically available to others through HTTP
· Very lightweight
· Tests do not need the browser window to be in focus.
· Suites can run in multiple threads thus reducing the test execution time.
· Supports external proxy and HTTPS.
What's New in This Release:
Features added
· Some basic support for identifying script errors in script using "View Script" link on the controller.
Bugfixes
· HTTPS was not working because of a couple of problems:
· Keep-alive needed to be disabled for proxying ssl requests.
· including java.ext.dirs in sahi.bat/sh was causing ssl libraries to not be included.
· So: Excluded ssl from keep-alive and removed java.ext.dirs.
· Not sure if this fixes SSL support in Mac.