Selenium TestNG @DataProvider运行时值

时间:2013-10-21 19:23:51

标签: java selenium testng

我正在创建一个Selenium框架,它将POM结构与TestNG结合使用。我使用@DataProvider注释将值传递给@Test

我的问题是,如果需要在稍后@Test方法中使用一个@Test方法的输出,那么我将如何做到这一点,因为使用数据提供程序我只能传递它包含的值。

2 个答案:

答案 0 :(得分:0)

OP没有提到语言或需要并行执行,因此可以使用静态变量轻松解决这个问题。在Java中,下面应该打印pass:

public static int outputOfMethodA=0;

@Test
   methodA(){
   outputOfMethodA=outputOfMethodA+1;
}

@Test
methodB(){
   if(outputOfMethodA=1){
   System.out.println("pass!");
   }
   else{system.out.println("fail!")
   }
}

答案 1 :(得分:-1)

POM他的意思是他的WebElements的页面对象模型类型的映射。

松散地耦合测试方法总是一个好习惯(因此一个@Test的结果不应该依赖于另一个@Test)。

如果你想实现它:@DataProvider可用于你的Test Class中的任何数量的@Test方法。只需定义一个类级别Map并在测试中使用它。

样品:

A > git checkout -b C
C > git rebase B