Selenium Grid来实现多个nodes间的自动分配,以达到分布式并发的效果。
hub和node的启动和测试脚本,参见:Selenium Grid 初探
这次 TestNG XML 文件如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19<suite thread-count="5" parallel="classes" name="demo" >
<test name="test1">
<parameter name="browser" value="ff"/>
<parameter name="nodeUrl" value="http://192.168.24.13:4444"/>
<parameter name="webSite" value="http://www.baidu.com"/>
<classes>
<class name="testGrid2.Grid" />
</classes>
</test>
<test name="test2">
<parameter name="browser" value="chrome"/>
<parameter name="nodeUrl" value="http://192.168.24.13:4444"/>
<parameter name="webSite" value="http://www.baidu.com"/>
<classes>
<class name="testGrid2.Grid" />
</classes>
</test>
</suite>
Notes: url value是Grid Server地址(e.g., WebDriver wd = new RemoteWebDriver("http://localhost:4444/wd/hub"
, ieDesiredcap))。
对想使用Selenium Grid的来说,实现起来应该不会太麻烦,把框架里的单线程运行的公共脚本1
WebDriver wd = new FirefoxDriver();
改成1
2DesiredCapabilities ff = DesiredCapabilities.firefox();
WebDriver wd = new RemoteWebDriver("http://localhost:4444/wd/hub", ff);
然后再把hub的地址设置到Global Setting里边去。