自动化测试框架

时间:2015-04-16 09:00:39

标签: testing automation

我正在寻找UI自动化测试框架。

我们需要的是:

  1. 框架应提供录制/播放选项。
  2. 它应与各种浏览器和平台兼容。
  3. 它应支持所有事件click,Drag& Drop,mousehover 等一些着名的JavaScript库,如D3js,Three.js(3D 对象事件)等。
  4. 我想要的更重要的是

    • 假设我们已经发布了应用程序的第一个版本 我们有一个包含两个字段的登录页面用户名和 密码。我们记录了所有可能的测试用例,例如大约200个。 在这200个测试用例中,假设50个测试用例开始 登录事件,这意味着我是否在登录页面中进行更改(添加/删除 那么这50个测试用例会受到影响而开始了 登录活动。

    现在在第二版中我决定从登录页面删除密码字段,然后包含登录事件的测试用例将失败,因为我们已经改变了上面提到的登录方案。

    在这种情况下,我希望框架本身提醒或通知如果我在登录页面中进行更改(例如删除/添加字段),那么其他一些测试用例将影响包含登录事件的测试用例。同时,该框架应该具有灵活性,允许测试人员在一次点击后自动更新所有受影响的测试用例中的更改。

    请建议一个自动化测试框架,它将提供所有这些功能。

2 个答案:

答案 0 :(得分:1)

作为一名经验丰富的自动化专家,我绝不会建议任何人记录测试用例。

测试框架:
交互测试
如果是你所针对的webbrowsers和黑盒测试,我的建议是Selenium。它支持3个主要的webbrowsers等。您可以轻松使用并在网络上提供大量帮助。它也有几种不同的语言支持,但我最喜欢的是Java与TestNG的结合。

在处理JS重型网页时,它并不完美。通过JS更改对象的含义页面将更难用Selenium进行测试。这是由于selenium" downloads"该页面使用下载的DOM中的对象。如果DOM被更改,Selenium会抱怨。

如果要测试网页对象的功能,例如字段限制或是否启用了按钮,Jasmine非常快速和简单。用于对网页进行单元测试。

图形测试
如果你的目标是验证输出的外观,你应该转向另一个框架。 3D.js Testing

对于测试用例: 我建议你为你的网页创建一个带帮助类的测试工具。辅助类应包含常用的流,例如登录功能。这使您只能在一个地方进行更新。

我还建议您为每个页面创建一个类,其中包含您希望能够访问的每个对象的功能。现在,如果您更改按钮或字段的名称或ID,则只有1个需要更新的位置,而不是使用更新对象的每个测试用例。

当然有更多的框架然后是硒,但是从我做过的所有调查和我合作的其他人,Selenium一直是我们的选择。

我可以写一篇关于此的文章,但这可以帮助你开始。

答案 1 :(得分:0)

您可以将页面对象模型与Selenium一起使用,因为它将解决您的目的。 正如@andreas所提到的,你需要使用辅助类,而且这些类也是映射到网页的类,即每个网页都映射到一个类。

在类中,将有一个对象(web元素)识别机制代码和相关方法,它们将作用于这些元素。

我有一小段代码用于演示目的:

public class LoginPage
{

@FindBy(xpath="xpath-1")
private static WebElement userNameTxtBox;

@FindBy(xpath="xpath-2")
private static WebElement passwordTxtBox;

@FindBy(xpath="xpath-3")
private static WebElement loginBtn;

public void EnterUserName(String userName)
{
    EnterText(userNameTxtBox,userName);
}

public void EnterPassword(String password)
{
    EnterText(passwordTxtBox,password);
}

public void ClickOnLogin()
{
    ClickOnElement(loginBtn);
}
}

您可以从测试代码中调用这些方法。

并且将来如果任何对象更改其ID,您只能在此更改它,并且您的测试类代码将不受影响。

有关POM如何工作的完整参考,请点击此链接: http://www.guru99.com/page-object-model-pom-page-factory-in-selenium-ultimate-guide.html