Selenium Grid
Selenium Grid允許同時并行地、在不同的環(huán)境上運行多個測試任務(wù)。這里主要演示一下怎么使用Selenium Grid。
準(zhǔn)備:
1、需要兩臺機(jī)子
2、兩臺機(jī)子分別安裝好JDK環(huán)境
3、兩臺機(jī)子需要從 http://code.google.com/p/selenium/downloads/list下載selenium-server-standalone-*.jar包
開始:
Grid需要一臺機(jī)子做為主節(jié)點,然后其它機(jī)子做為子節(jié)點連接到這個主節(jié)點上來。所以首先要啟動主節(jié)點。
啟動主節(jié)點:
選一臺機(jī)子做為主節(jié)點。打開命令行,cd至selenium-server-standalone-*.jar包的目錄下,然后用下面的命令啟動主節(jié)點服務(wù):
java -jar selenium-server-standalone-2.24.1.jar -role hub
默認(rèn)啟動默認(rèn)端口為4444。如果要改這個端口,可以再上面的命令后面加上 -port XXXX。啟動完后,你可以用瀏覽器 打開 http://localhost:4444/grid/console 這個網(wǎng)址查看主節(jié)點的狀態(tài)。
啟動完主節(jié)點之后,要做的是啟動子節(jié)點。
啟動子節(jié)點:
先另一臺機(jī)子做為子節(jié)點。同樣打開命令行,cd至selenium-server-standalone-*.jar包的目錄下,然后用下面的命令啟動次節(jié)點服務(wù):
java -jar selenium-server-standalone-2.24.1.jar -role node -hubhttp://192.168.4.124:4444/grid/register
其中192.168.4.124為主節(jié)點機(jī)子的ip地址,可以使用ipconfig命令在命令行查看得到。上面命令默認(rèn)啟動5555端口,可使用-port 更改。
啟動完成連接到主節(jié)點后,可以在主節(jié)點機(jī)子上 ,http://localhost:4444/grid/console網(wǎng)址查看到這個子節(jié)點狀態(tài)。使用同樣的方法,可以鏈接其它的子節(jié)點。
運行一個簡單的例子:
上面已經(jīng)把grid弄成功了,現(xiàn)在我們用Grid來運行一個很簡單的例子。代碼如下:
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
public class GridTest {
/**
* @throws MalformedURLException
*/
public static void main(String[] args) throws MalformedURLException {
DesiredCapabilities test = DesiredCapabilities.firefox();
WebDriver dr = new RemoteWebDriver(new URL("http://192.168.4.137:5555/wd/hub"),test);
dr.get("http://www.baidu.com");
}
}
在主節(jié)點機(jī)子上運行上面的代碼,你可以在次節(jié)點機(jī)子上看到firefox瀏覽器被啟動,然后打開了www.baidu.com這個網(wǎng)址。
值得注意的是:
WebDriver dr = new RemoteWebDriver(newURL("http://192.168.4.137:5555/wd/hub"),test);
這一句中的192.168.4.137為次節(jié)點的ip地址。