为什么Sahi比QTP好用5倍【转】

上一篇 / 下一篇  2014-04-10 16:46:28 / 个人分类:测试技术

做过两年的QTP自动化测试,一直觉得还不错,可是由于公司策略的原因最近改用Sahiweb UI的自动化测试。深切的感受到Sahi的便捷和轻量。记得去年老板问过我,你能说出QTP有什么缺点时我回答QTP有时会崩溃, QTP启动慢。。。 现在看来回答的太初级了。现在我就来分析一下QTP相对于Sahi有什么缺点吧。

第一,QTP的对象识别机制让人头痛。每一个object都需要手动添加(录制的object根本没法用, 如命名不合理,默认属性有时不能唯一确认对象等问题),属性都需要手动配置而且如果用object repository的方法管理你就等着闹心吧,一个是不好管理,比如对象多的你不能一个一个看,另一个是create time, index这些看似无关紧要的属性,到时候就导致脚本失败。

第二,QTP页面同步机制实在是不怎么样。函数sync就没怎么好用过(这点有待积累考证,仅凭记忆)。一般我都用waitProperty,但是这增加了脚本开发者的工作。而且,waitProperty的第三个参数是时间,多长时间合适那?

第三,QTP的插件实在是太多了,而且版本的补丁纷繁复杂啊,一个不留神没装某个补丁,对象就识别不了。

第四,QTP 对GUI less 模式(就是看不见GUI,比如锁屏,logoff等)不支持,不支持多个testcase同时运行。

第五,QTP支持的浏览器太少了,不可否认QTP很强大,支持无论是java开发的还是.net开发的window app,但是在一个web越来越广泛应用的今天,QTP对web的支持显得那么笨重。

相比较来说,Sahi就显得很轻快。

第一,Sahi没有对象库的概念,不用用户另外管理object, 通过页面显示的内容识别object,我称他为“所见即所用”。如果页面有重复内容,Sahi提供了通过相对位置查找的方法 如_near(), _in(). 比QTP开发快捷,object查找准确。

第二,Sahi通过内嵌机制自动判断页面是否刷新出来,对ajax的支持很好。当然,我发现当object不存在时他还是会等满默认的时间再结束testcase的运行,也有可能是我的代码没写好,改进处比如加一些try catch, 有待考证。。。

第三,Sahi也是不断的维护更新,但我觉得他会把所有的东西放到一个exe中,不像QTP那么东一块西一块的。

第四,Sahi简直在这点做的太完美了,你可以一个case用IE跑,一个用firefox跑,另一个用chrome跑。然后可以三个testcase一起跑,可以5个一起跑,也可以10个一起跑,这个可以自己设定(如果太多个一起跑我估计也不行)。

第五,Sahi几乎支持所有的浏览器(360我没试过不知道)。

当然,Sahi也有缺点,比如函数库没有QTP那么丰富,资源少,对data source的处理不如QTP的data table方便。

Sahi的主页;http://sahi.co.in/

希望能有更多的同学加入到Sahi的行列,开发出更多的函数库。


TAG:

 

评分:0

我来说两句

Open Toolbar