【问题标题】:Combining dataproviders TestNG结合数据提供者TestNG
【发布时间】:2016-05-10 13:13:56
【问题描述】:

我已经阅读了一些关于组合数据提供者的 stackoverflow 帖子,但我无法得到任何工作。

我目前正在做的是一个硒测试,它会截取网站翻译成的每种语言的屏幕截图。 它只是在截取链接的同时单击每个链接,然后将 URL 切换为另一种语言并重复。

我的问题是在执行此操作时,我无法将屏幕截图重定向到每个“语言测试”的特定文件夹。为此,我需要第二个数据提供程序,但我已经有一个用于此测试方法的数据提供程序,用于每次测试运行不同的 URL。

所以我需要以某种方式组合这两个数据提供者。 他们目前看起来像这样

 public static Object [][] language(){
    return new Object[][]{
        {"https://admin-t1.taxicaller.net/login/admin.php?lang=en"},
        {"https://admin-t1.taxicaller.net/login/admin.php?lang=sv"},
        };

}



public static Object [][] directory(){
    return new Object[][]{
        {"screenshotsEnglish.dir"},
        {"screenshotsSwedish.dir"},

        };
}

在我的测试课上,我只想通过写作达到这两个

 driver.get(**url**);
// This is the screenshot method. Where "Directory" is written I decide where to save the screenshots
     Properties settings = PropertiesLoader.fromResource("settings.properties");  
         String screenshotDir = settings.getProperty(**directory**);
         screenShooter = new ScreenShooter(driver, screenshotDir, "en");

希望我已经说清楚了,感谢所有帮助!

问候

【问题讨论】:

标签: selenium testng


【解决方案1】:
public static Object[][] dp() {
    return new Object[][]{
        {
            "https://admin-t1.taxicaller.net/login/admin.php?lang=en",
            "screenshotsEnglish.dir"
        },
        {
            "https://admin-t1.taxicaller.net/login/admin.php?lang=sv",
            "screenshotsSwedish.dir"
        }
    };
}

@Test(dataProvider = "dp")
public void t(String url, String directory) {
    driver.get(url);
    Properties settings = PropertiesLoader.fromResource("settings.properties");  
    String screenshotDir = settings.getProperty(directory);
    screenShooter = new ScreenShooter(driver, screenshotDir, "en");
    /*...*/
}

【讨论】:

  • 我会在星期一试试这个。但它看起来很有希望,非常感谢您的帮助!
猜你喜欢
  • 2015-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 2017-12-07
  • 1970-01-01
  • 2018-02-10
  • 2020-08-26
相关资源
最近更新 更多