如何在Web用户界面测试中取得成功?

3
我们正在为一个大型Web应用程序设置Selenium测试活动。 我们做的第一件事是构建一个框架,在测试之前初始化数据库中的SQL数据,启动测试,存档结果,然后清除数据。
我们将其集成到Maven 2进程中,由专用数据库上的TeamCity每天运行。
我们现在设置了几个Selenium测试,但使用情况不如预期。
原因是有时测试会出现故障,而不是回归(数据可能已更改,存储过程可能已重新编译等)。
我想知道用户界面测试是否存在巨大的成功,如果有的话,原因是什么。常见错误也可能会引起我的兴趣。
3个回答

1
如果你想要可靠的单元测试,你需要相同的输入,而数据库的起始状态则是输入。所以,每次都需要有相同的起始数据库。当然,如果你希望使用不同的输入进行测试,那么你需要创建另一个单元测试(因为结果显然不会相同)。
当我做这样的事情时,我总是使用相同的数据库作为起点。当然,一些测试可能会失败,如果不正确地修改数据库,一些其他后续测试也可能失败,即使他们本来不会失败。如果你的单元测试工具允许,你应该定义测试之间的依赖关系,以确保这些测试在“父”测试失败时根本不会运行。

1

测试性能非常有帮助。在Web应用程序中,测试性能最大的优点是如果页面上所有需要交互的HTML元素都具有唯一且一致的属性。如果您用于识别HTML元素(Selenium使用xpath)的属性在构建到构建或会话到会话时不一致/可靠,则测试脚本将失败。此外,这些属性必须是唯一的,以便自动化工具(在本例中为Selenium)可以可靠地找到网页上的对象。


0

我使用http-unit,它的额外好处是可以在页面添加任何样式之前运行。

http://httpunit.sourceforge.net/您可以将测试附加到Maven2的集成测试阶段中运行。

来自该网站:

HttpUnit是Java编写的,它模拟了浏览器行为的相关部分,包括表单提交、JavaScript、基本的HTTP身份验证、Cookies和自动页面重定向,并允许Java测试代码以文本、XML DOM或包含表单、表格和链接的容器形式检查返回的页面。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接