selenium2支持无界面操作(HtmlUnit和PhantomJs)

selenium2支持通过各种driver(FirfoxDriver,IternetExplorerDriver,OperaDriver,ChromeDriver)驱动真实浏览器完成测试。

除此之外,selenium也是支持无界面浏览器操作的。比如说HtmlUnit和PhantomJs。他们都不是真正的浏览器,运行时不会渲染页面显示内容,但是支持页面元素查找,js的执行等;由于不进行css和gui渲染,运行效率要比真实的浏览器要快很多。

 

1.htmlUnit是java实现的类浏览器程序,包含在selenium server中,无须驱动,直接实例化就行。

用法如下:
WebDriver driver = new HtmlUnitDriver();//
HtmlUnitDriver driver = new HtmlUnitDriver(true);//支持js(实际还是支持的不够好,因为htmlUnit使用的js引擎(Rhinojs)不是主流的浏览器支持的
 
2.PhantomJS 是一个基于 WebKit(WebKit是一个开源的浏览器引擎,Chrome,Safari就是用的这个浏览器引擎) 的服务器端JavaScript API,主要应用场景是:无需浏览器的 Web 测试,页面访问自动化,屏幕捕获,网络监控
 
用法如下:
PhantomJS driver = new PhantomJSDriver();
 
3.为了看以上两个无界面浏览器是否适合当前项目组前端自动化,做了一些预研,结果如下:
 
行为描述 行为HtmlUnitDriverHtmlUnitDriver(true)PhantomJSDriverFirefoxDriver
文本框input输入文本yesyesyesyes
按钮button点击按钮yesyesyesyes
      
下拉列表select选择选项yesyes yesyes
复选框checkbox点击yesyes yesyes
Alert(显示带有一条指定消息和一个 OK 按钮的警告框)点击nono noyes
Promprt(显示可提示用户进行输入的对话框)点击nono no yes
 
 最终的预研结果是这两者不适合我们的系统,因为我们的系统中有很多Alert,只能忍痛放弃
 
 
4.总结HtmlUnitDriver,PhantomJS与真实浏览器driver的优缺点比较


driver类型优点缺点应用
真实浏览器driver真实模拟用户行为效率、稳定性低浏览器兼容性测试
HtmlUnit速度快js引擎(Rhinojs)不是主流的浏览器支持的,故对js支持的不够好包含少量js的页面测试
PhantomJS速度中等、模拟行为接近真实不能模拟不同/特定浏览器的行为非GUI的功能性测试
 

总结:

如果你要测试的页面js不是很多,并且不需要做兼容性测试的话,HtmlUnitDriver无遗是最好的选择

如果你需要做兼容性测试的话,还是应该选择真实的浏览器driver(如果你想提高自动化运行速率,可以考虑用testng,selenium grid并行测试)

 

转载于:https://www.cnblogs.com/weiweiyao/p/4330471.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值