Java 在Selenium页面对象模型测试中重新使用登录功能

Java 在Selenium页面对象模型测试中重新使用登录功能,java,selenium-webdriver,testng,junit4,pageobjects,Java,Selenium Webdriver,Testng,Junit4,Pageobjects,我正在探索Selenium 2在web应用程序上的使用,该应用程序要求用户在使用任何应用程序之前进行身份验证。我计划使用JUnit4或TestNG(仍在研究与Grid2一起使用哪一种)。我可能也计划使用jbehave 有没有人对我如何改进以下测试有什么建议,以便我可以在所有测试中使用成功的登录功能?我希望避免在测试本身中重复登录 public class LoginPageTest { private LoginPage page; @Before public vo

我正在探索Selenium 2在web应用程序上的使用,该应用程序要求用户在使用任何应用程序之前进行身份验证。我计划使用JUnit4或TestNG(仍在研究与Grid2一起使用哪一种)。我可能也计划使用jbehave

有没有人对我如何改进以下测试有什么建议,以便我可以在所有测试中使用成功的登录功能?我希望避免在测试本身中重复登录

public class LoginPageTest {

    private LoginPage page;

    @Before
    public void openTheBrowser() {
        page = PageFactory.initElements(new FirefoxDriver(), LoginPage.class);
        page.open("http://www.site.com/Login");
    }

    @After
    public void closeTheBrowser() {
        page.close();
    }

    @Test
    public void whenTheUserEntersValidCredentialsTheUserIsLoggedIn() {
        assertThat(page.getTitle(), containsString("Login") );
    }   
}
测试被简化,但它将返回成功登录的页面对象


谢谢

您最好的选择可能是使用LoginPageTest类作为父类,并从LoginPageTest扩展每个测试类


这样,每个测试都可以使用父级的设置和分解方法登录到系统,并执行自己的附加测试。

您最好的选择可能是使用LoginPageTest类作为父级,并从LoginPageTest扩展每个测试类


这样,每个测试都可以使用父级的设置和分解方法登录到系统,并执行自己的附加测试。

创建库并调用测试用例序列以执行一个测试用例/场景。
例如:


为此,请注意对象创建。对象的解决方案是使用super
例如:super.login()

创建库并调用测试用例序列以执行一个测试用例/场景。
例如:


为此,请注意对象创建。对象的解决方案是使用super
例如:super.login()
检查案例研究@以获得更好的想法。如果您处于开发的初始阶段,我建议您尝试使用

查看案例研究@了解更好的想法。如果您处于开发的初始阶段,我建议您尝试使用

我以前没见过这个,谢谢。我会看一看。这是我的荣幸,我相信你一定会有一些想法,或者你会发现ISFW很有用。我以前没有遇到过这个,所以谢谢。我会看一看。这是我的荣幸,我相信你一定会得到一些想法,否则你会发现ISFW很有用。
lib.login();
lib.whenTheUserEntersValidCredentialsTheUserIsLoggedIn();
lib.logout();