jenkins java传递变量_Jenkins将参数传递给testNG Java

我正在使用testNG,Selenium和Jenkins建立测试自动化框架。该代码工作正常,它读取一个或多个csv文件并将其用作测试数据。我从詹金斯进行测试。

package test;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileReader;

import java.io.IOException;

import java.lang.reflect.Method;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.Iterator;

import java.util.List;

import org.apache.commons.io.FileUtils;

import org.openqa.selenium.By;

import org.openqa.selenium.OutputType;

import org.openqa.selenium.TakesScreenshot;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.openqa.selenium.ie.InternetExplorerDriver;

import org.testng.annotations.AfterClass;

import org.testng.annotations.AfterMethod;

import org.testng.annotations.AfterSuite;

import org.testng.annotations.BeforeClass;

import org.testng.annotations.BeforeMethod;

import org.testng.annotations.BeforeSuite;

import org.testng.annotations.DataProvider;

import org.testng.annotations.Test;

import org.testng.annotations.BeforeTest;

import org.testng.annotations.AfterTest;

public class runTest {

private WebDriver myDriver = null;

@BeforeTest

public void openBrowser(){

System.out.println("This test automation framework is created by --- for ---");

//Set browser

//System.setProperty("webdriver.chrome.driver", "C://Temp//chromedriver.exe");

//System.setProperty("webdriver.ie.driver", "C://Temp//IEDriverServer.exe");

//Instantiate new WebDriver object with browser of choice

myDriver = new FirefoxDriver();

//myDriver = new InternetExplorerDriver();

//myDriver = new ChromeDriver();

myDriver.get("http://localhost/tests/");

}

@Test (dataProvider="provideData")

public void csvTest(String stepNr, String timeWaitMil, String waitForElement, String clickOnCssNameXpathLink,

String valueInTextBox, String backspaceText, String assertReturnTrueFalse,

String assertBy, String getUrl,

String deleteCookie, String snapshot, String specialSnapshot){

// Click on a something based on css, name xpath or link

if (!"-".equals(clickOnCssNameXpathLink)){

myDriver.findElement(By.name(clickOnCssNameXpathLink)).click();

}

// Enter value in textbox

if (!"-".equals(valueInTextBox)){

myDriver.findElement(By.name(clickOnCssNameXpathLink)).sendKeys(valueInTextBox);

}

// Delete cookies

if (!"-".equals(deleteCookie)){

myDriver.manage().deleteAllCookies();

}

// Make snapshot of whole page

if (snapshot.equalsIgnoreCase("true")){

// take the screenshot of full page

File scrFile = ((TakesScreenshot)myDriver).getScreenshotAs(OutputType.FILE);

// prepare date to use in filename

Date d = new Date();

SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH-mm-ss");

// Save screenshot

try {

FileUtils.copyFile(scrFile, new File("c:\\Temp\\screenshots\\full_page_" +dateFormat.format(d)+ ".png"));

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("Could not make screenshot");

}

}

}

@DataProvider

public Iterator provideData() throws InterruptedException, IOException

{

//Array with multiple csv's

String csvFiles[] = {"C:/Users/---/Desktop/JES2.0/testingSelenium/testNG/data.csv", "C:/Users/---/Desktop/JES2.0/testingSelenium/testNG/data2.csv"};

List testCases = new ArrayList<>();

//loop through csv files

for(String csvFile:csvFiles){

String[] data= null;

//read csv file

BufferedReader br = new BufferedReader(new FileReader(csvFile));

//Skip first line in the csv file, because that only contains the column names

String line = br.readLine();

//loop through csv and split parameters by comma sign ,

while ((line = br.readLine()) != null) {

// use comma as separator

data= line.split(",");

testCases.add(data);

}//end of while loop

}// end of for loop

return testCases.iterator();

}

@AfterTest

public void closeBrowser(){

//close browser

myDriver.quit();

}

}

如您所见,浏览器,URL和CSV文件是硬编码的。我希望能够将这些作为参数传递。做这个的最好方式是什么?是否可以让他们通过詹金斯?

我正在考虑构建一个仪表板,在其中可以指定要使用哪种浏览器运行哪些测试(csv文件)。

这是我正在运行的Jenkins批处理命令

java -cp C:\Users\---\Desktop\JES2.0\testingSelenium\testNG\libs\selenium-server-standalone-2.43.1.jar;C:\Users\---\Desktop\JES2.0\testingSelenium\testNG\bin org.testng.TestNG testng.xml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值