Java 关于数据提供者
我创建了两个类Java 关于数据提供者,java,testng,Java,Testng,我创建了两个类first.java和second.java。在first.java中,我定义了一些2到3的方法。在second.java中,我想通过创建first.java的实例来使用这些方法。我的情况如下: 在第一个方法中单击signbutton 使用dataprovider要在第二个方法中进行迭代,即参数化 签出第三种方法 这里,第一个和第三个方法,即@Test应该运行一次,第二个方法@Test(dataProvider)应该迭代所有这些方法 是否有任何方法可以全局声明或创建另一个类的实例?
first.java
和second.java
。在first.java
中,我定义了一些2到3的方法。在second.java
中,我想通过创建first.java
的实例来使用这些方法。我的情况如下:
second.java
中的所有方法中使用,或者还有其他方法吗
我正在使用TestNG
、Ecplise
和Webdriver
执行
这就是我正在做的:
@Test(dataProvider = "DP1")
public void enteruserdetails(String username, String pass)
{
Spage spage = new Spage(driver);
spage.clicksign();
spage.enterdetails(username,pass);
spage.signout();
}
我想将此测试分成三部分,以便:
1) spage.clicksign() will be done only once
2) spage.enterdetails(username,pass) will use DataProvider for iteration
3) spage.signout() will be done only once.
然后如何创建类的实例
Spage Spage=newspage(driver)
;我必须在所有的地方都这样做,比如说,@之前,@之后,还有@Test
中,或者有没有办法在全球范围内声明?在这里,代码< > SPAGE。java < /java >用于<代码> sFave.java < /C> > < p>可以考虑将UR安装方法置于BEOFEXXX方法中,并在后XXX方法中拆卸。在您的例子中,您可以使用beforeclass注释signin In方法,同样地,使用afterclass注释signout In方法
@BeforeClass
public void signin(){
//clicksign
}
@Test
//the enter details and verifications
@AfterClass
public void signOut(){
//clicksignout
}
我真的不知道你在问什么。您好,谢谢您的回复,那么如何创建类的实例,即在之前、测试之后和之后的每个注释中创建一个实例,或者可以为Spage(驱动程序)全局创建类的实例?我猜您要找的是工厂:。看看dataprovider和factory的示例。如果这不符合您的场景,那么请详细说明您在second.javahi中尝试执行的操作,在second.java中,我有一些方法可以在第1页上执行一些操作方法单击登录链接第2输入用户名密码执行一些操作(这里我将为用户数据提供程序)第3方法注销Hi,在second.java中,我有一些方法可以执行第1页的一些操作方法单击登录链接第2个方法输入用户名密码执行一些操作(这里我将使用用户数据提供者)第3个方法注销。在first.java页面中,我的场景是我想为三个方法编写三个单独的测试,其中一个方法的参数由数据提供者传递,我的问题是关于在每个测试中创建实例,还是我可以创建第二个的全局实例。java类和test1运行一次测试2应该使用dataprovider测试3,因为我不知道您要实现什么。为什么不能直接从testng调用包含所有测试的类?如果有一些数据必须传递给这些测试,比如驱动程序,那么就有一个threadlocal实例,然后u可以引用它,或者如果有任何其他数据,那么可以使用factory初始化该数据并创建类的实例。