首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用TestNG集成驱动SeleniumWebDriver关键字

使用TestNG集成驱动SeleniumWebDriver关键字
EN

Stack Overflow用户
提问于 2016-09-09 01:34:28
回答 2查看 2.4K关注 0票数 0

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

  1. 使用TestNG触发自动化
  2. 从excel工作表中读取关键字和值(一个工作表包含关键字和操作)。另一个工作表对每个对象都有xpath )
  3. 使用关键字驱动方法驱动自动化
  4. 使用ReportNG生成报告

TestNG文件:

代码语言:javascript
运行
复制
<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文件:

代码语言:javascript
运行
复制
@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;
}

有人能帮我澄清以下问题吗?

  1. 当我运行与ReportNG集成的测试时,每个excel行都被视为单个测试用例,并且报告显示了测试用例计数的总行数。 对于如何读取基于TC名称的excel表并在此基础上生成ReportNG报表,有任何建议吗?
  2. 如果以上问题的答案是肯定的,那么我如何调用单个@Test方法来生成多个测试用例?

在这方面的任何帮助都是非常感谢的。谢谢。

EN

Stack Overflow用户

发布于 2016-09-12 08:18:08

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

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

第一行将是您第一次测试的参数..。第二次原始将是你第二次测试的参数..。所以..。

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

对于元素的位置,还有其他实践,如测试自己的代码中所示。在其他功能或PAGEOBJECTS。

所以,矮人是.请查查数据提供者是什么..。

诚挚的问候

票数 -1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39402530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档