/
TestSuiteBase.java
96 lines (78 loc) · 3.16 KB
/
TestSuiteBase.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package testngexamples.seleniumgrid;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.BrowserType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.remote.SessionId;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/**
* Created by gfox on 24/06/2016.
*/
public class TestSuiteBase {
private Logger logger = LogManager.getLogger();
protected WebDriver driver;
private String browser;
private String hubUrl;
DesiredCapabilities capabilities;
@Parameters({"browserType", "platform"})
@BeforeTest
public void setup(String browserType, String platform) throws MalformedURLException {
this.browser = browserType;
driver = getDriverInstance(browserType, platform);
}
public WebDriver getDriverInstance(String browserType, String platform) throws MalformedURLException {
hubUrl = "http://192.168.192.16:4444/wd/hub";
if (browserType.equalsIgnoreCase("Safari")) {
capabilities = DesiredCapabilities.safari();
capabilities.setBrowserName(BrowserType.SAFARI);
} else {
capabilities = DesiredCapabilities.chrome();
capabilities.setBrowserName(BrowserType.CHROME);
}
if (platform.equalsIgnoreCase("Mac")) {
capabilities.setPlatform(Platform.MAC);
} else {
capabilities.setPlatform(Platform.WIN10);
}
driver = new RemoteWebDriver(new URL(hubUrl), capabilities);
return driver;
}
public String getBrowser() {
return this.browser;
}
public String getHostName(SessionId session) throws IOException {
String hostName = "localhost";
int port = 4444;
URL sessionURL = new URL("http://" + hostName + ":" + port + "/grid/api/testsession?session=" + session);
logger.log(Level.INFO, "URL is : " + sessionURL);
HttpURLConnection huc = (HttpURLConnection) sessionURL.openConnection();
huc.setRequestMethod("POST");
BufferedReader in = new BufferedReader(
new InputStreamReader(huc.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
logger.log(Level.INFO, response.toString());
JsonParser parser = new JsonParser();
JsonObject objToReturn = (JsonObject) parser.parse(response.toString());
logger.log(Level.INFO, objToReturn.toString());
logger.log(Level.INFO, objToReturn.get("proxyId"));
return new URL(objToReturn.get("proxyId").getAsString()).getHost();
}
}