首先说一下我对Web自动化测试与CS自动化测试的认识。从宏观对比都是通过脚本自动化完成功能的验证,区别不大。Web测试更为显著的浏览器兼容性、安全,以及与Web技术相关的表单测试、链接测试等,其实都是功能上的区别带来的不同规格,从实现自动化来看,都是相通的。
对于UI自动化二者因为技术选择的原因,有些差别。CS程序开发技术选择多,界面识别需要特定的插件,BS遵循Html,相对比较规范。大部分能够进行CS自动化测试的框架(QTP、RFT)都能够进行Web自动化,反之未必。
性能测试是通过压力实现的。负载测试通过协议仿真,对服务器进行冲击。CS程序使用Socket连接,会有私有协议在内,不好模拟。BS是严格的Http协议,比较容易仿真。
目前Web大行其道,CS不可或缺,但也越来越小众了。对于一个要实现Web自动化的项目,如何选择工具(框架)是需要很多衡量的,下面从几个方面对比常见的Web自动化工具:Selenium、QTP(UFT)、RFT、watir、sahi。
几乎所有工具都能支持多中浏览器,从费用角度QTP和RFT都太贵了,反过来说用开源的实际也要投入研发费用,有利有弊。
学习成本主要是语言的壁垒,现在用Java和Python的还是多,资料也好找。
个人学习我推荐Selenium,已经是事实的Web自动化框架。
项目选择要看实际情况,如果要快、稳定,又不差钱,QTP和RFT都可以考虑,相比较更推荐QTP,原因:用的人多。
如果条件允许,那还是二次开发Selenium,目前做的方案TestNG+Selnium,通过Ant打包,使用Jenkins进行集成构建。这些组件都能进行扩展,自主权在自己手上,不会受软件厂家的牵制。