5.1 分散式(Grid)
Selenium grid是用來分散式執行測試用例指令碼的工具,比如測試人員經常要測試多瀏覽器的相容性,那就可以用到grid了。下面就來介紹如何在多個瀏覽器上運行同一份指令碼。
使用grid所需要的檔案:1.Selenium server(即selenium-server-standalone-x.xx.x.jar);2.grid配置檔案(該檔案負責提供主機和瀏覽器資訊);3.測試指令碼。
一、先來看看grid配置檔案的內容:
def grid(): d={'http://127.0.0.1:4444/wd/hub' : 'firefox', 'http://127.0.0.1:5555/wd/hub' : 'internet explorer', } return d
該檔案定義了一個方法,該方法存放了一個字典,分別給本機分配了2個不同的埠並指定了不同的瀏覽器(4444是grid hub的預設埠,5555這個是一個node的埠,後續會介紹)。
二、再來看看測試指令碼:
該指令碼是寫了一個百度搜索關鍵詞並做了簡單斷言的指令碼,匯入的grid_module就是第一步中的grid配置檔案,迴圈體中寫的是從字典中取出主機名和瀏覽器名賦給下面的引數,這樣的話該測試指令碼就會接連呼叫本地的2個指定瀏覽器並執行。
3.然後就啟server了,從http://selenium-release.storage.googleapis.com/index.html上下載對應版本的Selenium server:
下載下來後開啟cmd,輸入Java -jar selenium-server-standalone-x.xx.x.jar -role hub,這是萬惡之源,先啟它才能幹後面的事。啟動之後再開啟一個cmd,輸入java -jar selenium-server-standalone-x.xx.x.jar -role node -port 5555,這是啟動第一個node,指定埠5555,與grid配置檔案中所寫的埠一致。
hub和node啟動好之後我們在瀏覽器裡輸入http://127.0.0.1:4444/grid/console,開啟grid的控制檯:
我們能看到有一個埠為5555的node已經啟動起來了,此處的IP就是本機IP。