0

我正在使用 TestNG 运行我们的自动化测试。我们选择 TestNG 的原因是因为我们可以将变量输入发送到测试方法示例public void testXX(String userId)并且 userId 可以针对每个测试进行更改。

下面的代码显示了我可以用来执行测试的三个不同的用户 ID。所以我完全相同的测试将为三个不同的用户中的每一个运行三次。这个功能很棒,真的让我能够在不同的场景下进行多次测试,因为我们的每个用户都有不同的配置文件。

// All valid Pricing Leads
@DataProvider(name = "userIds")
public Object[][] createPricingLeadUsersParameters() {
   return new Object[][] {
      { "TestUser001" },
      { "TestUser002" },
      { "TestUser003" }
   };
}

@Test( dataProvider = "userIds" )
public void createGroup( String userIds) {
    ............
 }

我现在遇到的问题是在某些情况下我只能使用一个用户 ID,否则我的所有测试都会失败。我想保持我完全相同的测试,但只传递 userId 而不是上面显示的三个。有一种方法可以配置 TestNG 以在命令行上创建此变量,因此有时我会使用定义的三个,但在另一种情况下,它只会是三个中的一个还是新的 userId?

4

1 回答 1

0

当然,有很多方法可以做到这一点。在运行 TestNG 时传递系统属性怎么样?

java -Dfoo=bar org.testng.TestNG...

然后您的数据提供者可以测试foowith的值System.getProperty()并相应地调整它返回的内容。

于 2012-07-10T02:52:57.327 回答