[英]Selenium TestNG @DataProvider runtime value
我正在創建一個Selenium框架,該框架將POM結構與TestNG一起使用。 我正在使用@DataProvider
批注將值傳遞給@Test
。
我的問題是,是否需要在以后的@Test
方法中使用一個@Test
方法的輸出,那么我該怎么做,因為使用數據提供程序,我只能傳遞它包含的值。
OP沒有提及語言或需要並行執行,因此可以使用靜態變量輕松解決。 在Java中,以下內容應打印通過:
public static int outputOfMethodA=0;
@Test
methodA(){
outputOfMethodA=outputOfMethodA+1;
}
@Test
methodB(){
if(outputOfMethodA=1){
System.out.println("pass!");
}
else{system.out.println("fail!")
}
}
他的意思是POM是其WebElement的“映射” 的“頁面對象模型”類型。
松散耦合測試方法始終是一個好習慣(因此,一個@Test的結果不應依賴於另一個@Test)。
還是要實現它:@DataProvider可以用於Test類中的任何@Test方法。 只需定義一個類級別的Map並在測試中使用它即可。
樣品:
TestingClass{
// define global variable
Map<String,String> resultMap=new HashMap<String, String>();
@DataProvider
public Object{
// some logic for dataProvider
}
@Test(dataProvider="dp")
method1(){
// your logic
// then put your final result to be used by method2 into appropriate obj
resultMap.put("key","value");// assign result to defined global variable
}
@Test(dataProvider="dp")
method2(){
// use the resultMap to take results from previous method.
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.