我是如何有效地使用ui自动化记录的测试用例的其他版本的应用程序

时间:2015-04-29 03:58:28

标签: selenium ui-automation sahi

我是网络应用程序,我想要记录测试用例并回放这些案例。

应用程序的第一个版本,我的登录模块有用户名和密码,并为整个应用程序记录了500个测试用例。在500个测试用例中,200个测试用例使用用户名和密码进行日志记录。

应用程序的第二个版本,我的登录模块只有用户名,所以我想通过修改使用以前记录的测试用例,而不是去所有测试用例更改密码字段。在这里,我对测试框架有一些要求

  • 如上例所示,我可以通过更改字段来获得测试用例的效果吗?
  • 有没有办法简单更新,而不是像所有文件和更改

我使用了不同的UI自动化测试工具和记录&播放选项非常好,但我无法在UI自动化测试框架中找到我想要的方式。

是否有任何可用的框架可以帮我完成工作?

提前致谢。

1 个答案:

答案 0 :(得分:0)

这是为什么你永远不应该记录硒测试案例的一个主要例子。每当您想要更新登录等内容时,您都必须更改它们。

您应该为您的应用程序创建一个测试工具/框架。

1.开始为每个网页创建一个类,其中包含您希望能够访问的每个元素的1个函数。

public By username(){
   return By.cssSelector("input[id$='username']");   }

2.创建辅助类,在其中创建经常使用的序列。

public void login(String username, String password){

      items.username().sendkeys(username);
      items.password().sendkeys(password);

}

3.在常用的测试设置中添加登录功能

@BeforeMethod(alwaysRun = true)
public void setUp() {
   helper.login("user","password");

}

这使您有机会以编程方式创建测试用例。因此,例如,如果您想对不存在密码元素的其他登录模块使用相同的测试用例,则可以像这样更改它。

items.username().sendkeys(username);    
if(isElementPresent(items.password())
    items.password().sendkeys(password);

功能" isElementPresent"可能看起来像这样

public boolean isElementPresent(By locator){
    try {
      driver.findElement(locator);
      logger.trace( "Element " + stripBy(locator) + " found");
    } catch (NoSuchElementException e) {
      logger.trace( "Element " + stripBy(locator) + " not found");
      return false;
    }
   return true;
  }