We are using Sahi as a functional testing tool on my current project (Well, what else would you expect when Narayan is on the same team :-). Having used Selenium on my previous project, I find quite a few features of Sahi a lot more helpful in writing functional tests.
The record/playback feature is fantastic. While you are recording a functional script, you can append assertions to it by simply hovering over the required text (or other document objects) and clicking the assert button on the recorder.
- You can assert text in any/every row in a table. This is a particularly useful feature when you have a sorted list of items to display and you want to assert that they are ordered correctly.
The ability to run multiple scripts simultaneously (i.e. in multiple threads) is wonderful. There are a couple of benefits in running your test suite using multiple threads – 1) it makes sure that you don’t have interdependent tests (i.e. some test that depends on the data created/modified by a previous test) and 2) Runs the entire test suite in a fraction of the time.
- You can hit any remote machine and record/run tests against it. For example, if you have a build deployed on a production/QA machine, the QAs/testers can record and run the suite of tests on that machine instead of having to deploy the build on their local machine. (We are using this setup on our project and its working very well).
The kind of support you get when the author is on the same team :-).
I have used Selenium quite a bit on my previous project and I have liked it a lot. With Sahi, I see myself writing a lot more functional tests than I used to do before (and it doesn’t take much time to run them all).