2012-07-09 25 views
0

我正在使用TestNG運行我們的自動化測試。我們選擇TestNG的原因是因爲我們可以將變量輸入發送到測試方法示例public void testXX(String userId)並且userId可以針對每個測試進行更改。testng指定不同的用戶

下面的代碼顯示了三個不同的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) { 
    ............ 
} 

我現在我遇到的問題是在一定的條件下,我只能用過一個用戶id要不然我所有的測試將失敗。我想保留我完全相同的測試,但只傳入userId而不是上面顯示的三個。有沒有一種方法可以在命令行上配置TestNG來創建這個變量,所以有時我會使用這三個定義的,但在另一個條件下它只會是三個或一個新的userId中的一個?

回答

0

當然,有很多方法可以做到這一點。如何在運行TestNG時傳遞系統屬性?

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

,然後你的數據提供者可以測試的fooSystem.getProperty()值並相應地調整其返回。

+0

我需要一種方法來設置userIds基於另一種配置。希望TestNG能夠通過比較testng.xml和編程方式來控制這一點。感謝您的輸入! – 2012-07-10 15:53:32

相關問題