一直以來,跑Robot Framework的Web UI Test Case時,習慣都用對FireFox支援較友善的Selenium2Liberary來Run Firefox web driver,雖然明知Selenium的Open Browser keywork事實上支援多種Web Driver,但一直都只用firefox來作為Robot Framework的專用Browser,唯二的缺點就是:開Browser有時很慢並且需要指定firefox profile路徑(如果需要客製化profile,這還衍生另一個跨平台問題,Mac(Unix-like OS)與Windows的路徑使用格式不同,因此你可能需要對open browser 寫法做if 條件處理,否則就是做兩版Robot Framework project for mac及windows)。
下圖說明Open Browser可以指定多種不同Browser:
然而我實在是受夠FireFox常常開很慢的問題,這取決於機器效能與網路速度,另外就是FireFox因為需要打開UI在桌面上跑,所以有時候為了怕找不到頁面元素,總是需要做類似Maximize Browser Window的處理,而且效果取決於執行機器的環境,在調整Test Case時總是要花費很多時間在這種無效率的調整上,所以我開始考慮使用HeadLess Browser作為Robot Framework的Testing Browser。
PhantomJS正是這樣的Browser,這種Browser有一個特色就是執行的時候不會有UI畫面出現在桌面上,看起來就乾淨俐落許多,而要把他弄到Robot Framework 上步驟很簡單,只要先下載PhantomJS Package並放到電腦某個路徑,再把PhantomJS的bin Folder設為環境變數Path的路徑之一,重新run robot framework,然後在Test Case中指定用PhantomJS作為Open Browser的Browser,就可以執行HeadLess Browser Automatic Testing了。
- 下載PhantomJS Package(Version 應該大於2.0)並解壓放到電腦某一路徑底下。
Download from : http://phantomjs.org/download.html
然後我解壓縮把Package內容後放到D:\Program Files\PhantomJS底下。
- bin 底下放著PhantomJS.exe,必須把該folder設到環境變數path之下。
- 設定PhantomJS bin Folder為環境變數Path路徑之一。
1). 到電腦 系統->進階系統設定->環境變數
2). 找到path 變數加入底下路folder path : D:\Program Files\phantomjs\bin\; 然後儲存變數。
3). 可以在command line 下用 echo %path%檢查path是否已加入該folder路徑。
- 重新載入Robot Framework
Robot可以重新把新的環境變數吃進去。
- 在robot的test case中,用以下兩種方式指定用PhantomJS作為Browser
1). Open Browserhttp://www.google.comphantomjs
2). Create Webdriverphantomjs
最後實測結果:
- 執行時桌面不會開browser。
- 不需要最大化視窗也可以操作到所有元素。
- 執行時間比需要開FireFox Browser還要快上十秒左右。
2018年9月1日星期六
留言列表