testng指定不同的用户

时间:2012-07-09 17:41:58

标签: maven junit testng

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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