我正在探索在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") );
}
}
测试已简化,但会返回成功登录的页面对象。
感谢
答案 0 :(得分:2)
检查案例研究@ http://blog.infostretch.com/?p=806以获得更好的想法。如果您处于初始开发水平,我建议您尝试使用QAF (formerly ISFW)。
答案 1 :(得分:1)
您最好的选择可能是将LoginPageTest类用作父类,并从LoginPageTest扩展每个测试类。
这样,每个测试都可以使用父设置和拆除方法登录系统,并进行自己的额外测试。
答案 2 :(得分:1)
创建库并调用测试用例序列以执行一个测试用例/场景 例如:
lib.login();
lib.whenTheUserEntersValidCredentialsTheUserIsLoggedIn();
lib.logout();
这样做可以处理对象创建。对象的解决方案是使用超级eg: super.login()