新用户提醒

使用Java,WebDriver和TestNG

我有2种单独的方法
1.用于启动驱动程序
2.登录

我在@BeforeTest中调用了驱动程序启动方法,这还将启动应用程序登录页面。
我还想在@BeforeTest中调用'login'方法(因为几乎所有测试都需要此方法),但问题是我也对该登录页面进行了4-5个测试(例如测试版本,版权,忘记密码的链接) )。因此,对于这些测试,不需要登录(或者应该不应该登录)。

有没有一种方法可以在与登录页面相关的测试之前执行一组方法调用,而在所有其他测试之前执行另一组方法调用。
请让我知道是否还有其他方法可以实现。

让我知道这里是否需要更多信息。

最佳答案

我将创建一个基类,在该基类中将@BeforeTest方法与登录名放在一起,只让testclasss继承该类,这需要登录:

public abstract class TestBaseForLogin{

    @BeforeTest
    public void loginBeforeEachTest() {
        // do the login
    }
}


现在,如果您想在每次测试之前合并需要登录的测试,则只需继承基类即可。

public class TestThatNeedLogin extends TestBaseForLogin{

    @BeforeTest
    public void beforeEachTest() {
        // do whatever you need before the test
    }
}


否则就不用基类(或其他基类)

public class TestLogin {

    @BeforeTest
    public void beforeEachTest() {
        // do whatever you need before the test
    }

}


您继承的类将首先执行基类的@BeforeTest,然后再执行其自己的@BeforeTest标签方法。

10-07 13:31