首页 文章

使用TestNG集成驱动的Selenium Webdriver关键字

提问于
浏览
0

我正在使用TestNG和ReportNG集成学习关键字驱动框架 . 我的要求是

  • 使用 TestNG 触发自动化

  • 从Excel工作表中读取关键字和值(一个工作表有关键字和操作 . 另一个工作表有每个对象的xpath)

  • 使用关键字驱动方法推动自动化

  • 使用 ReportNG 生成报告

TestNG File:

<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 :

enter image description here

Excel Sheet2:

这可以移动到属性文件,但截至目前我正在从excel文件中读取

enter image description here

TestSuite file:

@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方法来生成多个测试用例?

对此的任何帮助都非常感谢 . 谢谢 .

1 回答

  • -1

    首先,您需要了解您在实施中使用的数据提供者是什么... http://toolsqa.com/selenium-webdriver/testng-data-provider-excel/>此网站可以帮助您...

    数据提供者发送执行测试的参数....每一行都是执行每个测试的参数......换句话说......

    第一次测试的第一次参数将是第二次测试的参数......等等......

    我认为你错误地使用了dataprovider ... dataprovider用于为测试提供数据......例如用户名或密码......

    对于元素的位置,还有其他实践,如在自己的测试代码中..在其他函数或PAGEOBJECTS中...

    所以,短的anwers是...请检查dataprovider是什么...

    最好的祝福

相关问题