Reprint Please specify source: http://www.cnblogs.com/tobecrazy/
Previous Test framework: http://www.cnblogs.com/tobecrazy/p/4553444.html
With Jenkins sustainable integration: http://www.cnblogs.com/tobecrazy/p/4529399.html
Use log4j 2:http://www.cnblogs.com/tobecrazy/p/4557592.html in the test framework
To start with the grid, selenium grid is a framework for executing test cases with different platforms (Windows, Linux, Android), and
These platforms are controlled by a central point, called the Hub, and the different platforms are called node
The structure is as follows:
Why Use Selenium grid:
If your program needs to be tested on a different operating system without a browser, and if more of the case needs to be done remotely, a better solution is to use Grid.selenium-grid is a tool designed to help us with distributed testing, and its entire structure consists of a hub node and several broker nodes. The hub is used to manage registration and status information for each agent node, and to accept request calls from remote client code and then forward the requested command to the broker node for execution.
How to use:
First Enable hub:
In a machine download: Selenium standalone 4.6:HTTP://PAN.BAIDU.COM/S/1QWE7SD2
Then create the Hub.bat
The contents are:
1 Java-jar selenium-server-standalone-2.46.
Its default listener port 4444, default IP localhost if you want to modify, only need to add-port parameters and-hubhost
Java-jar selenium-server-standalone-2.46. 0.jar-role hub 1235-hubhost 192.168.2.45
Next, add node to machine B and create Node.bat, which uses the default Hubhost Ip and port
1 Java-jar selenium-server-standalone-2.46. 0.jar-role Node-hub http://localhost:4444/grid/register
In order to use chrome and IE driver, we need to set this
1 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
Start each of these two bat
If you are using remote Driver, you need to set such parameters
Desiredcapabilities capability = Desiredcapabilities.firefox (); New Remotewebdriver (new URL ("Http://localhost:4444/wd/hub"), capability); Capability.setbrowsername ("Firefox" ); Capability.setversion ("3.6");
So we simply create a bean
1/**2*3*/4PackageCom.dbyl.libarary.utils;56/**7* For remote browser bean8*@authorYoung9*10*/11PublicClassRemotebrowserbean {12PrivateString Browsername;13PrivateString version;14PrivateString[] platform;15PrivateString Huburl;16PublicString Getbrowsername () {17ReturnBrowsername;18}1920PublicRemotebrowserbean ()21st{22This.browsername= "Firefox";23This.version= "38";24this.platform=New string[]{"VISTA", "Windows 7"};25This.huburl= "Http://localhost:4444/wd/hub";2627}2829PublicRemotebrowserbean (String browser)30{31This.browsername=Browser32this.version= "42";33this.platform=New string[]{"VISTA", "Windows 7"};34This.huburl= "Http://localhost:4444/wd/hub";3536}3738PublicvoidSetbrowsername (String browsername) {39This.browsername =Browsername;40}41PublicString GetVersion () {42ReturnVersion43}44PublicvoidSetversion (String version) {45This.version =Version46}474849PublicString[] GetPlatform () {50ReturnPlatform51}5253PublicvoidSetplatform (string[] platform) {54This.platform =Platform55 }56 57 public String Gethuburl () { 58 return Huburl;59 }60 public void Sethuburl (String huburl) {61 this.huburl = Huburl; }63 64 65}
and create Getremotedriver in Driverfactory.
1/**2* This method would create Remotewebdriver3*@authorYoung4*@paramRemotebrowserbean5*@returnWebdriver6*/7PublicStaticWebdriver Getremotedriver (Remotebrowserbean remotebrowserbean) {8 Desiredcapabilities capability =Null;9if (Remotebrowserbean.getbrowsername (). Contains ("Firefox")) {Ten capability =Desiredcapabilities.firefox ();11}Elseif (Remotebrowserbean.getbrowsername (). Contains ("Chrome")) {Capability =Desiredcapabilities.chrome ();13}14Webdriver Driver =Null;16Try{Driver =NewRemotewebdriver (18NewURL (Remotebrowserbean.gethuburl ()), capability);19}Catch(Malformedurlexception e) {20 E.printstacktrace (); }22 23 Capability.setversion ( Remotebrowserbean.getversion ()); 24 capability.setcapability (Remotebrowserbean.getplatform () [0 ],25 remotebrowserbean.getplatform () [1]); 26 Driver.manage (). window (). Maximize (); 27 return Driver;
Then you can use it in case
1 @BeforeClass (alwaysrun=true)2 void beforetest () {4 driver = Driverfactory.getremotedriver (new Remotebrowserbean ("Chrome")); 5}
: Https://github.com/tobecrazy/Demo
Using grids in the Selenium test framework