当前位置: 首页 > 知识库问答 >
问题:

在testng中使用不同的dataprovider运行相同的测试

怀晋
2023-03-14

例如:

  • 数据提供程序1:dataA
  • 数据提供程序2:dataB,dataC
  • 数据提供程序3:dataD、dataE、dataG

所以我的测试需要一个数据提供者。但是我希望它根据测试组为不同的测试类型选择不同的数据提供者。例如,如果我正在运行“smoke”组,那么我希望使用数据提供者1;如果我正在运行“sanity”组,那么我希望运行数据提供者1和数据提供者2;如果我正在运行“regression”组,那么我希望它运行数据提供者1、2和3。

这可能吗?如果是这样的话,你能提供信息或给我指出文件或一些可以帮助我的东西吗?

目前我的工作是为每个组进行3个不同的测试,然后我可以选择使用哪个数据提供程序。我还可以合并数据提供者。

我工作中的问题是,所有3个测试都是完全相同的,不同的是小组和数据提供者。

谢谢!

共有1个答案

齐奕
2023-03-14

使用一个返回不同数据的数据提供者怎么样-基于当前测试组:

@DataProvider(name = "myDataProvider")
public Object[][] testDataProvider(ITestContext context) {
    List<String> includedGroups = Arrays.asList(context.getIncludedGroups());

    if(includedGroups.contains("myGroup")) {
        return dataA;
    }
    else if (includedGroups.contains("myOtherGroup")) {
        return dataBC;
    }

    //...
}
 类似资料:
  • 考虑一个场景,我在测试一个索赔系统。我想提交报价并检查账单总额。一天两次或两次以上的索赔应该能为我赢得奖金。所以我需要在1次索赔后检查总金额,在2次索赔后再次检查,然后在删除一次索赔后再次检查,依此类推。执行如下- 登录 增加1项索赔 计算应收总额 增加1个索赔 计算应收总额 删除索赔 计算应收总额 注销 我的TestNG. xml看起来像这样- 如前所述,需要在同一测试中多次调用函数“fChec

  • 我有一个 TestNG 测试套件运行良好,除了一件事:我不能两次运行相同的测试。我想运行两次测试的原因是,我正在测试将用户登录/注销的 Web 服务,并且我想验证登录是否有效,然后注销是否有效,然后再次登录它们,以便后续测试(需要用户登录)可以继续。 下面是我的testng.xml的相关部分: 如您所见,“appUserLogintest”被调用了两次。但是,当我调试它时,我可以清楚地看到它只在第

  • 我正在尝试在不同的Android设备上并行运行我的自动化套件(使用Selenium WebDrive(Java)TestNG Maven实现)。这是我在xml中的代码: 在TotoTest课上,我有20个测试。它们中的每一个都有注释@Test。当我运行xml时,两个设备并行运行类TotoTest。所以我的设备1(模拟器1)运行20个测试,我的设备2(模拟器2)也运行20个测试。 但是我想要的是,模

  • 从excel文件读取测试数据。要求:我想首先我的所有测试应该运行在相同的测试数据,即excel行,然后所有测试与另一行。 解决方案:尝试将@Factory与我的@DataProvider一起使用 问题:如果我在@dataProvider中使用核心值,那么它可以正常工作。但是当从excel动态获取时,如果给我错误:[错误]导致:java.lang.NullPointerException } 基类

  • 问题内容: 我正在尝试测试tensorflow程序。我正在使用参数化的py.test夹具设置tensorflow会话: Tensorflow具有全局状态,因此一些测试启动会污染它。例如,启用急切执行后,无法禁用它。有没有一种方法可以指示py.test为每个测试创建一个新进程?还是使用参数化夹具来配置测试环境的另一种方法?用法示例: 问题答案: 如评论中所建议,使用将是解决方案。该插件设计用于并行或

  • 我正在使用数据提供程序向每个测试方法传递数据。假设数据提供程序中有2行。 当前运行单个测试方法的所有迭代,然后运行第二个测试方法...例如: 但我想按以下顺序运行。 http://fruzenshtein.com/testng-dataprovider-run-tests-sequency/