使用Sahi作为web自动化测试工具一年以来,深深喜欢上了这个小巧简单却功能强大的工具。下面列举喜爱Sahi的10个理由。
工具与语言本身
1. 容易上手
个人体验,Sahi学习起来要比QTP、Selenium更简单。Sahi网站有一个长约5分钟的视频(http://sahi.co.in/static/sahi_tutorial.html)非常值得一看。看完视频,下载完Sahi,一天之内你应该就可以开发出自己的第一个Sahi脚本。
2.2. 对ExtJS支持不错
QTP能支持的对于动态ID的支持(通过正则表达式或者_near等相对关系),Sahi可以同样做到。而在对于表格处理方面,Sahi要略胜一筹。比如,判断一个表的某个表格是否是某值,在Sahi里可以一句代码轻松实现:_assertEqual("ABCD",_getText(_cell(1,_in(_div("x-grid3-body")))));而QTP则需要做表和列的循环才能拿到,代码量大且效率也不高。
3.3. 对于AJAX调用和页面载入,大部分时间不需要显式wait。当然,我实践下来有些情况还是需要写wait,导致代码比较丑陋。
4.4. Sahi脚本执行更快速
由于支持多个浏览器进程同时运行,互相独立的测试脚本可以并行执行,大大缩短测试运行时间。这对于快速检查某版本的稳定性是一个很棒的特性。
5.5. 免费
虽然Sahi有免费版和收费版,但免费版已经很不错。
环境相关
6.6. Sahi较轻量,所以对机器资源要求较低,也似乎更容易稳定
Sahi启动比起QTP肯定是轻量。它也没有大量的OR需要存储。Sahi网站说同时运行3个进程大概是50M内存。所以无论从存储空间、执行时的效率和稳定性,Sahi都让我更信赖一些。
7.7. Sahi脚本执行时可以释放鼠标,也可以锁屏
原来我们在做daily build的时候碰到的一个问题是QTP的脚本不能在锁屏的情况下运行,而需要另外的方法绕过去。Sahi没有这个问题,它执行的时候你可以用鼠标和键盘做其它事情,锁屏的时候它也乖乖地运行。
8.8. Sahi对浏览器支持不错
Sahi支持一套脚本,多个浏览器下运行(仅需要修改一个运行参数)。所以,不同浏览器下程序不兼容问题可以快速暴露出来。而且Sahi对浏览器的新版本支持也没有问题。不象有些工具对浏览器不同版本的patch总是滞后比较多的时间,而不打patch则无法运行。
9.9.Sahi可以和持续集成工具轻松集成
Sahi提供接口,可以方便地和Ant, Hudson, Jenkins集成。
10.10.Sahi提供对BDD的支持
Sahi支持Ruby语言编程,可以和Cucumber集成来实现BDD。