使用多个@dataprovider进行参数化,以一起测试“登录和首页”测试案例

时间:2018-07-28 09:18:47

标签: java selenium selenium-webdriver testng testng-dataprovider

您好,我是Automation的新手,我正在尝试同时对'Login.java和HomePage.java'进行数据参数化。并将结果张贴在Excel工作表的相应列中。

请按以下方式找到excel的结构。 enter image description here

登录测试用例:

@Test(dataProvider = "getTestData", priority=1 )
    public void testCaseLoginPage(String id , String pass  ) throws Throwable {
        boolean status = false;
        click("rj-qp-buynow");
        Thread.sleep(500);  ... So so 
}

@AfterMethod
    public void reportDataSetResult() {
         {
            isTestPass = false;
            TestUtil.reportDataSetResult(suitexls, this.getClass().getSimpleName(), count + 2, "FAIl");
        } else
            TestUtil.reportDataSetResult(suitexls, this.getClass().getSimpleName(), count + 2, "PASS");
            fail = false;
    }

@DataProvider (name="getTestData")
    public Object[][] getTestData() {
        return TestUtil.getData(suitexls, this.getClass().getSimpleName());
    }

主页测试用例:

@Test(dataProvider = "getData",  priority=2)
    public void testCaseHomePage(String AddDesign , String AddColor, String AddCity) throws Throwable {
 -------------- so so 
}

@DataProvider (name="getData")
    public Object[][] getTestData() {
        return TestUtil.getData(suiteixls, this.getClass().getSimpleName());
    }

TestNg.xml

<test name="com">
    <classes>
        <class name="com.Login"/>
        <class name="com.HomePage" />
    </classes>
</test>

在这种当前结构下,“登录”页面将使用多个数据集进行测试。登录页面测试完成后,请尝试运行HomePage.java,它最终会出现大错误。

请让我知道运行这两个测试用例以及多组数据需要做哪些更改?

现在获得结果如下:

test1@Qe.com - test
test1@Qe.com - test 
test1@Qe.com - OOOO
test1@Qe.com - test
test1@Qe.com - test
bluePage  Blue  Pune
WhitePage   Black   Mumbai 
PinkPage   Yellow Jaipur

想要以以下格式获取输出的地方:

   test1@Qe.com - test  
    bluePage  Blue  Pune
    test1@Qe.com - test  
     WhitePage   Black   Mumbai 
    test1@Qe.com - OOOO  
     PinkPage   Yellow Jaipur
    test1@Qe.com - test    
     Na       NA      NA
    test1@Qe.com - test 
   NA       NA      NA

请建议

1 个答案:

答案 0 :(得分:-1)

我可以建议您以不同的方式尝试

  1. 如果使用带有必需参数传递的页面对象模型,则登录类的创建方法可能在页面类中

  2. 在登录测试用例中使用相同的方法

  3. 首先在Home测试用例中调用相同的方法,然后再调用与Home相关的方法

  4. 使用登录所需的数据更新xlsx文件中的主页。在这里,您可以利用为各个测试数据行传递不同的登录详细信息的功能。