跳到主要內容

Remote Selenium - 透過另外一台電腦的瀏覽器做測試

Problem

先前文章中,曾提及我們是在每個平台的測試環境中,安裝待測瀏覽器。但這樣做法,在我們升級Selenium同時,發現在比較舊版本的Linux,是無法執行新版本的Firefox的。回頭想想,我們是要測試軟體是否可以在某種瀏覽器上正常使用,而不需要特別去管瀏覽器跑在哪一個系統上阿? 先前,我就知道Selenium是可以遠端執行的,這次加以嘗試,希望把瀏覽器的執行工作,都集中於某些虛擬機器上。

How to?

我們所要測試的瀏覽器,主要是IE與Firefox。而在Selenium2中,都是透過Web Driver的方式去執行瀏覽器動作。而我預想的測試模式,如下圖所示:

est Host負責透過Robotframework執行我們的測試工作,而與Web相關的則是透過Selenium2Library。Selenium2Library會透過Remote Selenium模式,請遠端的Selenium Server,根據請求的瀏覽器,去透過對應的Web Driver,喚起對應的瀏覽器做測試。接下來告訴大家該如何實現:

Prepare

在Remote的Server上,請先安裝好你想測試的瀏覽器。接著到此link下載對應的web driver,與Selenium Standalone Server。我使用的Selenium Server是2.48.2版本,相依於Java7以上。以下是我安裝清單:

  • Java,7 & 8。
  • Selenium Standalone Server,v2.48.2。
  • Google Chrome Driver,v2.20。
  • The Internet Explorer Driver Server,v2.48.0,32 bit。使用64bit會有輸入過慢問題,可參考此issue

Remote Server Setting

  • 請先設好防火牆,預設的Selenium Standalone Server使用4444/tcp;IE Driver Server: 5555/tcp;Google Chrome Driver: 9515/tcp。最簡單就是全執行一次,就會跳出防火牆設定請你處理了。
  • 新增執行Selenium Server的腳本:

腳本請預先執行,也可以直接丟到系統啟動中。

Robot Test Cases

調整原本的Robot Test Cases其實也不難,只要多增加一個remote_url參數即可:

remote_url=http://${selenium_server_ip}:4444/wd/hub
<tr>
<td class="name"><a name="test_Test Selenium2"></a></td>
<td>open browser</td>
<td><a href="http://google.com">http://google.com</a></td>
<td>googlechrome</td>
<td>remote_url=http://192.168.1.150:4444/wd/hub</td>
</tr>

Demo

請參考link

我執行一個測試用的測試案例,主要用來確認在IE、Firefox與Google Chrome的Remote Selenium情況下,抓圖功能是否正常。

Others

如果在測試IE 11時,有遇到啟動瀏覽器卻無法做任何操作情形,可以看看Reference 3,必須透過修改註冊檔去解決這問題。

Reference

留言

這個網誌中的熱門文章

PostgreSQL - Unattended installation on windows

Introduction 要將別人軟體包裝到自己軟體中,不可或缺的東西就是Unattended installation。以Unattended installation來說,我們可以選擇透過Installer的silent mode安裝,也可以透過把目標軟體做成portable的版本。本篇文章分享這兩種方法,教導大家如何將PostgreSQL透過Unattended installation方式安裝到目標系統成為service。 Note. 本篇以PostgreSQL 10.7為例。 Install with installer Tips 安裝程式或反安裝程式的參數,除了可以直接上官網搜尋Installation User Guide以外,也可以直接使用help參數查詢: postgresql- 10.7 - 2 -windows-x64.exe --help Windows安裝程式主要有EnterpriseDB與BigSQL兩種。BigSQL版本安裝元件是透過網路下載且支援參數不如EnterpriseDB版本多,以我們需求來說,我們傾向於使用EnterpriseDB版本。接下來分享給大家安裝與反安裝方法。 Installation @ echo off set INSTALL_DIR =C:\postgres10 set INSTALLER =postgresql- 10.7 - 2 -windows-x64.exe   rem options for installation set SSMDB_SERVICE =postgresql- 10 set MODE =--unattendedmodeui none --mode unattended   set DB_PASSWD =--superpassword postgres set DB_PORT =--serverport 5432   set SERVICE_NAME =--servicename % SSMDB_SERVICE %   set PREFIX =--prefix "%INSTALL_DIR%" set DATA_DIR =--datadir "%INSTALL_DIR%\data"   set OPTIONS =

How to install RIDE on Windows?

Introduction 多年沒在Windows上開發RobotFramework,趁著這次整理一下RIDE安裝方法。 目前RIDE最新版本與Python對應版本如下: (3.6 < python <= 3.11) Install current released version (2.0.8.1) with: pip install -U robotframework-ride 安裝Python 直接到Python官網找尋最新的3.11版本,我使用3.11.9: link 。安裝就是一直下一步而已。 安裝wxPython 每次安裝RIDE最困難的都是wxPython。看了一下 官網 描述,我就姑且相信一下: 接著進入下 載頁面 就有安裝教學。基本上就是到Python目錄下的Scripts直接執行以下command: pip install -U wxPython 安裝RIDE 接著就如RIDE官網所說,執行以下command: pip install -U robotframework-ride 啟動RIDE 直接在相同目錄下執行ride就可以啟動了,你也可以直接在桌面建ride連結,加快下次啟動時間。 沒想到這次這麼順利就安裝完成了。因為我是使用java去啟動robot framework,就不特別講要怎麼使用pip安裝robot framework了。

Hello World!

即將要搬家,因此舊網頁內容將慢慢轉移至Blogger。 如果要存取舊網頁,可以使用以下連結: https://wiki.tonylin.idv.tw/dokuwiki/doku.php