现在,我的Jenkins托管在Linux机器上。因此,在我的基本文件中,将基于OS选择驱动程序。 下面是代码:
//Function to instantiate the WebDriver instance based on the Browser selected for Linux
public WebDriver driverInsLinux(){
setbaseURL();
try {
switch(getBrowser()){
case "Chrome":
System.out.println("Inside Linux chrome driver function");
System.setProperty("webdriver.chrome.driver", "./Linux/Drivers/chromedriver");
System.out.println("driver launch successful");
driver=new ChromeDriver();
driver.get(baseurl);
break;
case "Internet Explorer":
System.setProperty("webdriver.internetexplorer.driver", "./Linux/Drivers/internetexplorerdriver.exe");
driver=new InternetExplorerDriver();
break;
case "Firefox":
driver=new FirefoxDriver();
break;
default:
//new PascalBaseClass();
}
} catch (IOException e) {
e.printStackTrace();
}
driver.get(baseurl);
driver.manage().timeouts().pageLoadTimeout(100, TimeUnit.SECONDS);
driver.manage().window().setSize(new Dimension(1366, 768));
driver.manage().window().maximize();
return driver;
}
//Function to instantiate the WebDriver based on the OS
public WebDriver driverIns(){
//driver =driverInsWindows();
switch (getOSName()) {
case "Windows": driver =driverInsWindows();
break;
case "Linux" : driver =driverInsLinux();
break;
case "MAC" : driver =driverInsMac();
break;
}
return driver;
}
//Function to get the OS Name
public String getOSName(){
oSName = System.getProperty("os.name");
if(oSName.contains("Windows"))
oSName= "Windows";
System.out.println(oSName);
return oSName;
}
现在LoginLog.java
public class LoginPage extends Base{
/*Members of the current Test Class. The number varies from script
to script depending on the variables and verifications required*/
public WebDriver driver;
private String currentSitePath;
private String testCaseName=getClass().getName().substring(10);
ExtentTest parentTest;
//Function to Navigate to a particular URL inside CC
public void navigateToURL(WebDriver driver){
siteURL="";
this.driver.navigate().to(baseurl+siteURL);
}
@Test // Main Test Flow for the Script
public void executeScript() throws IOException{
System.out.println("*******************");
System.out.println("launching chrome browser");
parentTest= ReportGenerator.initializeParentTest(getClass().getName().substring(10),"Testing Login Page");
//Test Case Author assignment in Reports
ReportGenerator.assignAuthor(parentTest,"Garima");
//Setting up Browser Instance
this.driver=driverIns();
//Navigating to the required page in CC
navigateToURL(this.driver);
Jenkins控制台输出:
+ java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-b10)
OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)
+ uname -a
Linux jenkins2.spikes.eng 2.6.32-754.el6.x86_64 #1 SMP Tue Jun 19 21:26:04
UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
+ id
uid=498(jenkins) gid=498(jenkins) groups=498(jenkins)
context=system_u:system_r:unconfined_java_t:s0
+ cd CC_Regression
+ chmod -R 777 /var/lib/jenkins/workspace/testing/CC_Regression
+ pwd
/var/lib/jenkins/workspace/testing/CC_Regression
+ export
'CLASSPATH=/var/lib/jenkins/workspace/testing/CC_Regression/bin:
/var/lib/jenkins/workspace/testing/CC_Regression/lib/*'
+
CLASSPATH='/var/lib/jenkins/workspace/testing/CC_Regression/bin:
/var/lib/jenkins/workspace/testing/CC_Regression/lib/*'
+ java org.testng.TestNG testng.xml
[TestNG] Running:
/var/lib/jenkins/workspace/testing/CC_Regression/testng.xml
*******************
launching chrome browser
===============================================
Suite
Total tests run: 3, Failures: 3, Skips: 0
Configuration Failures: 1, Skips: 0
===============================================
Build step 'Execute shell' marked build as failure
Finished: FAILURE
注意: 1)对于Linux驱动程序:我已经从https://chromedriver.storage.googleapis.com/index.html?path=2.40/
下载了文件:chromedriver_linux64下载完成后,解压缩文件并将其放置在Linx / Drivers文件夹中
2)在上述功能的不同步骤上尝试了多系统syso。但是似乎像发布System.out.println(“启动chrome浏览器”);它正在崩溃。