簡體   English   中英

Selenium TestNG @DataProvider運行時值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM