1

我正在探索在 Web 应用程序上使用 Selenium 2,该应用程序需要在用户使用任何应用程序之前进行身份验证。我正计划使用 JUnit 4 或 TestNG(仍在研究哪个与 Grid 2 一起使用)。我也可能打算使用 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") );
    }   
}

测试被简化,但它会返回一个成功登录的页面对象。

谢谢

4

3 回答 3

2

检查案例研究@ http://blog.infostretch.com/?p=806以获得更好的想法。如果您处于初始开发阶段,我建议您尝试使用QAF(以前称为 ISFW)

于 2011-08-22T17:33:07.857 回答
1

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

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

于 2011-08-22T02:35:44.133 回答
1

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

lib.login();
lib.whenTheUserEntersValidCredentialsTheUserIsLoggedIn();
lib.logout();

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

于 2011-08-22T05:29:50.000 回答