【发布时间】:2017-01-17 01:41:51
【问题描述】:
我正在学习带有 TestNG 和 ReportNG 集成的关键字驱动框架。我的要求是
- 使用 TestNG 触发自动化
- 从 excel 表中读取关键字和值(一张表有关键字和操作。另一张表有每个对象的 xpath)
- 使用关键字驱动方法驱动自动化
- 使用 ReportNG 生成报告
TestNG 文件:
<suite name="Test Results" parallel="false" thread-count="3">
<listeners>
<listener class-name="org.uncommons.reportng.HTMLReporter"/>
<listener class-name="org.uncommons.reportng.JUnitXMLReporter"/>
</listeners>
<test name="Automation Test">
<classes>
<class name="TestSuite1">
</class>
</classes>
</test>
Excel Sheet1:
Excel Sheet2:
这可以移动到属性文件,但目前我正在从 excel 文件中读取
TestSuite 文件:
@Test(dataProvider="hybridData")
public void testLandingScreen(String testcaseName,String testStep,String keyword,String execute,String objectName, String value) throws Exception {
excelUtils.processXls(testcaseName, testStep, keyword, execute, objectName, value);
}
}
@DataProvider(name="hybridData")
public Object[][] getDataFromDataprovider() throws IOException {
Object[][] object = null;
ReadExcelFile file = new ReadExcelFile();
//Read keyword sheet
Sheet sheet = file.readExcel(BaseData.XLS_PATH,"TestData.xlsx" , "TSData");
//Find number of rows in excel file
int rowCount = sheet.getLastRowNum()-sheet.getFirstRowNum();
object = new Object[rowCount][6];
for (int i = 0; i < rowCount; i++) {
//Loop over all the rows
Row row = sheet.getRow(i+1);
//Create a loop to print cell values in a row
for (int j = 0; j < row.getLastCellNum(); j++) {
//Print excel data in console
object[i][j] = row.getCell(j).toString();
//object[i][j] = row.getCell(j);
}
}
return object;
}
谁能帮我澄清以下问题?
-
当我运行与 ReportNG 集成的测试时,每个 excel 行都被视为单个测试用例,并且报告将总行数显示为测试用例计数。
关于如何根据 TC 名称读取 excel 表并据此生成 ReportNG 报告有什么建议吗?
-
如果上述问题的答案是肯定的,那么如何调用单个@Test 方法来生成多个测试用例?
对此的任何帮助都非常感谢。谢谢。
【问题讨论】:
标签: testing selenium-webdriver automation testng reportng