之前的测试框架:http://www.cnblogs.com/tobecrazy/p/4553444.html
配合Jenkins可持续集成:http://www.cnblogs.com/tobecrazy/p/4529399.html
在测试框架中使用Log4J 2 :http://www.cnblogs.com/tobecrazy/p/4557592.html
这些平台是由一个中心点控制,这个中心点称之为HUB,而那些不同的平台称之为NODE
其结构如下:
为什么使用selenium grid:
如果你的程序需要在不用的浏览器,不同的操作系统上测试,而且比较多的case需要多线程远程执行,那么一个比较好的solution就是使用grid.selenium-grid是用于设计帮助我们进行分布式测试的工具,其整个结构是由一个hub节点和若干个代理节点组成。hub用来管理各个代理节点的注册和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令再转发给代理节点来执行。
怎么使用:
首先启用HUB:
在A机器下载:selenium standalone 4.6:http://pan.baidu.com/s/1qWE7SD2
然后创建HUB.bat
内容为:
java -jar selenium-server-standalone-2.46.0.jar -role hub
其默认监听端口4444,默认IP localhost 如果要修改,只需要加-port 参数和-Hubhost
java -jar selenium-server-standalone-2.46.0.jar -role hub -port 1235 -Hubhost 192.168.2.45
接下来在B机添加node ,创建Node.bat,这里使用的是默认的Hubhost Ip 和端口
java -jar selenium-server-standalone-2.46.0.jar -role node -hub http://localhost:4444/grid/register
为了使用chrome和IE driver,我们需要这样设置
java -Dwebdriver.ie.driver="C:\Users\workspace\Demo\webDriver\IEDriverServer.exe" -Dwebdriver.chrome.driver="C:\Users\workspace\Demo\webDriver\chromedriver.exe" -jar selenium-server-standalone-2.46.0.jar -role node -hub http://localhost:4444/grid/register
分别启动这两个bat
若使用remote Driver,需要设置这样的参数
DesiredCapabilities capability = DesiredCapabilities.firefox();
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);
capability.setBrowserName("firefox" );
capability.setVersion("3.6");
所以我们索性创建一个bean
1 /** 2 * 3 */ 4 package com.dbyl.libarary.utils; 5 6 /** 7 * for remote browser bean 8 * @author Young 9 * 10 */ 11 public class RemoteBrowserBean { 12 private String browserName; 13 private String version; 14 private String[] platform; 15 private String hubURL; 16 public String getBrowserName() { 17 return browserName; 18 } 19 20 public RemoteBrowserBean() 21 { 22 this.browserName="firefox"; 23 this.version="38"; 24 this.platform=new String[]{"VISTA", "windows 7"}; 25 this.hubURL="http://localhost:4444/wd/hub"; 26 27 } 28 29 public RemoteBrowserBean(String browser) 30 { 31 this.browserName=browser; 32 this.version="42"; 33 this.platform=new String[]{"VISTA", "windows 7"}; 34 this.hubURL="http://localhost:4444/wd/hub"; 35 36 } 37 38 public void setBrowserName(String browserName) { 39 this.browserName = browserName; 40 } 41 public String getVersion() { 42 return version; 43 } 44 public void setVersion(String version) { 45 this.version = version; 46 } 47 48 49 public String[] getPlatform() { 50 return platform; 51 } 52 53 public void setPlatform(String[] platform) { 54 this.platform = platform; 55 } 56 57 public String getHubURL() { 58 return hubURL; 59 } 60 public void setHubURL(String hubURL) { 61 this.hubURL = hubURL; 62 } 63 64 65 } |