Java 使用多个@dataprovider参数化以测试;“登录和主页”;测试用例作为一个整体

Java 使用多个@dataprovider参数化以测试;“登录和主页”;测试用例作为一个整体,java,selenium,selenium-webdriver,testng,testng-dataprovider,Java,Selenium,Selenium Webdriver,Testng,Testng Dataprovider,您好,我是自动化新手,我正在尝试一起对“Login.java和HomePage.java”进行数据参数化。并将结果张贴在excel表格的相应列中 请查找excel的结构,如下所示。 登录的测试用例: @Test(dataProvider = "getTestData", priority=1 ) public void testCaseLoginPage(String id , String pass ) throws Throwable { boolean stat

您好,我是自动化新手,我正在尝试一起对“Login.java和HomePage.java”进行数据参数化。并将结果张贴在excel表格的相应列中

请查找excel的结构,如下所示。

登录的测试用例:

@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>
其中需要以下格式的get输出:

   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

请建议

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

  • 若您使用的页面对象模型具有要传递的必需参数,则用于登录的Create方法可能位于page类中

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

  • 最初在Home测试用例中调用相同的方法,然后调用与Home相关的方法

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


  • 那个大错误是什么?分享TestUtlis.getData()的代码大错误:-登录测试完成后,它试图直接进入主页(没有登录测试)。但由于登录测试并没有运行(因为它已经完成),所以脚本无法到达主页。以元素而不是资金结束错误。TestUtlis.getData()工作正常。我正确地从这个方法获取测试数据TestCaseLoginPage()和testCaseHomePage()在同一个类文件中吗?
       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