一直以来,跑Robot FrameworkWeb UI Test Case时,习惯都用对FireFox支援较友善的Selenium2LiberaryRun Firefox web driver,虽然明知SeleniumOpen Browser keywork事实上支援多种Web Driver,但一直都只用firefox来作为Robot Framework的专用Browser,唯二的缺点就是:开Browser有时很慢并且需要指定firefox profile路径(如果需要客制化profile,这还衍生另一个跨平台问题,Mac(Unix-like OS)Windows的路径使用格式不同,因此你可能需要对open browser 写法做if 条件处理,否则就是做两版Robot Framework project for macwindows)

下图说明Open Browser可以指定多种不同Browser

 

  然而我实在是受够FireFox常常开很慢的问题,这取决于机器效能与网路速度,另外就是FireFox因为需要打开UI在桌面上跑,所以有时候为了怕找不到页面元素,总是需要做类似Maximize Browser Window的处理,而且效果取决于执行机器的环境,在调整Test Case时总是要花费很多时间在这种无效率的调整上,所以我开始考虑使用HeadLess Browser作为Robot FrameworkTesting Browser

  PhantomJS正是这样的Browser,这种Browser有一个特色就是执行的时候不会有UI画面出现在桌面上,看起来就干净俐落许多,而要把他弄到Robot Framework 上步骤很简单,只要先下载PhantomJS Package并放到电脑某个路径,再把PhantomJSbin Folder设为环境变数Path的路径之一,重新run robot framework,然后在Test Case中指定用PhantomJS作为Open BrowserBrowser,就可以执行HeadLess Browser Automatic Testing了。

  1. 下载PhantomJS Package(Version 应该大于2.0)并解压放到电脑某一路径底下。

Download from : http://phantomjs.org/download.html

然后我解压缩把Package内容后放到D:\Program Files\PhantomJS底下。

  • bin 底下放著PhantomJS.exe,必须把该folder设到环境变数path之下。

 

  1. 设定PhantomJS bin Folder为环境变数Path路径之一。

1). 到电脑 系统->进阶系统设定->环境变数

2). 找到path 变数加入底下路folder path : D:\Program Files\phantomjs\bin\; 然后储存变数。

3). 可以在command line 下用 echo %path%检查path是否已加入该folder路径。

  1. 重新载入Robot Framework

Robot可以重新把新的环境变数吃进去。

  1. robottest case中,用以下两种方式指定用PhantomJS作为Browser

1). Open Browserhttp://www.google.comphantomjs

2). Create Webdriverphantomjs

Go Tohttp://www.google.com

  最后实测结果:

  1. 执行时桌面不会开browser
  2. 不需要最大化视窗也可以操作到所有元素。
  3. 执行时间比需要开FireFox Browser还要快上十秒左右。

 

201891日星期六

相关文章