selenium1,selenium2,watir的比较
接触web方面的自动化测试,会接触几个常用的工具,selenium1,selenium2,watir 有的时候总是混淆,那么他们的优缺点啥的呢,在让你给项目选自动化框架,会选择哪个???
1,语言的支持:selenium1和selenium2均支持多种语言,常用的事python,java,ruby;
watir只支持ruby
2. 浏览器的支持:selenium1和2支持多种浏览器,例如:ie,chrome,火狐,opera
watir:只支持ie
3. 实现原理:
selenium1:基于浏览器的开源自动化工具,即rc,由三个部分组成,seleniumcore,httpproxy,launcher,主要是selenium core,完全由javascript组成
主要操作流程如下:即rc将受到的selenium的方法解析成对应的js,发给浏览器页面中的core执行来操作页面
1. 测试用例通过Http请求建立与 selenium-RC server 的连接
2. Selenium RC Server 驱动一个浏览器,把Selenium Core加载入浏览器页面当中,并把浏览器的代理设置为Selenium Server的Http Proxy
3. 执行用例向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core执行操作浏览器的动作并注入 JS 代码
4.Selenium Core执行接受到的指令并操作
5. 当浏览器收到新的请求时,发送http请求
6. Selenium Server接收到浏览器发送的Http请求后,自己重组Http请求,获取对应的Web页面
7. Selenium Server中的Http Proxy把接受到的页面返回给浏览器。
但也有缺点:浏览器对js的限制同时也限制的selenium1,也不支持鼠标和键盘的操作,对话框和弹出框不支持
selenium2: =selenium1+webdriver,即结合了selenium1和webdriver的最佳特性。Selenium 1 和 WebDriver 合并成一款性能更佳的产品 Selenium 2(或 Selenium WebDriver),Selenium 2 具有来自 WebDriver 的清晰面向对象 API,并能以最佳的方式与浏览器进行交互。Selenium 2 不使用 JavaScript 沙盒,它支持多种浏览器和多语言绑定。
webdriver可以直接操作html unit,效率更高,更可以规避某些浏览器对js的限制,也不用像selenium1那样需要启动selenium sever端了!!!
watir:封装了浏览器的ole/com接口来实现的
综上,最优的选择是selenium2
ps:再说明selenium的几个工具: selenium ide 和 selenium grid
ide:是一个火狐的插件,用来构建脚本的初级工具。具有录制的功能,能够记录用户的操作,支持多种编程语言
grid:能够在多个环境中执行,也能并行执行,能够大幅度提高测试效率。
最新文章
- 【翻译】如何在AJAX生成的内容中再次运行Prism.js
- AIX 环境下减小系统page space空间
- adb 服务端口2037被占,导致adb和appium无法工作
- php 利用activeMq+stomp实现消息队列
- Poj 1061 青蛙的约会(扩展GCD)
- 架构师之路(39)---IoC框架
- perl post json数据
- 深入浅出OpenStack云计算平台管理(nova-compute/network)
- 乐在其中设计模式(C#) - 策略模式(Strategy Pattern)
- 2g-3g
- 菜鸟学Java(二十一)——怎样更好的进行单元測试——JUnit
- D5
- [Hive_add_8] Hive 常用参数配置
- Java接口自动化测试之Maven项目的创建(一)
- BBS-项目流程分析-表的创建
- SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter(";name";)无法获取参数值问题分析
- word黑底白字
- word 排版用到双直线、波浪线、虚线 、直线、隔行线等技巧
- 8. 利用反射机制, ListArray,intent来实现多Activity的切换
- mysql5.7.20多实例编译安装