我正在寻找UI自动化测试框架。
我们需要的是:
我想要的更重要的是
现在在第二版中我决定从登录页面删除密码字段,然后包含登录事件的测试用例将失败,因为我们已经改变了上面提到的登录方案。
在这种情况下,我希望框架本身提醒或通知如果我在登录页面中进行更改(例如删除/添加字段),那么其他一些测试用例将影响包含登录事件的测试用例。同时,该框架应该具有灵活性,允许测试人员在一次点击后自动更新所有受影响的测试用例中的更改。
请建议一个自动化测试框架,它将提供所有这些功能。
答案 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