我的任务是开发一个用于自动GUI测试的系统,我需要一些建议。幸运的是,我们正在对我们的GUI进行重大的重新设计,做这项工作的开发人员愿意让他们的代码对自动化更加友好。我的问题是,我不确定该要求他们添加什么。无论添加什么钩子,都不会影响界面的功能、外观或安全性,也不会对性能产生明显的影响。除此之外,天空是无限的!
所讨论的应用程序是一个通过AJAX访问的基于web的Java应用程序。大多数现有功能都是使用jsp、Javascript和少许Flash8编写的。下一波功能将使用YUI Javascript library完成。我几乎决定使用Selenium作为测试工具,因为它的灵活性和价格(免费)。要点:我的目标是测试可重用性和易维护性。我更喜欢编写检测、验证和练习页面元素的代码,而不是使用记录和回放系统进行测试开发。
有没有人可以提供一些指导,说明可以在代码中放置哪些挂钩或一些最佳实践,以使测试开发更容易,测试本身更健壮?
发布于 2009-05-08 05:27:08
基本指导原则:如果他们想要你测试一些东西,测试人员需要一种方法来让应用程序进入这种状态,一旦进入这种状态,就需要一种方法来验证状态是正确的。
因此,首先要确保他们理解自动化就是编程,而UI就是你的API。
不随意更改UI的
不好--更好的做法是使用一致的UI元素来标识页面--页面标题、隐藏组件等。
发布于 2009-05-04 22:44:05
与大多数问题一样,这取决于。主要取决于你的网站的外观和页面上的控件--有很多重复的元素吗?
我在使用Selenium RC和Selenium IDE方面取得了很多成功。主要的事情是习惯使用Selenium和它的命令。习惯于在页面上定位对象(XPaths和CSS选择器,以及“包含”函数)也很有帮助。您不想要的是许多具有相同选择路径的元素。如果下面的表和div没有唯一的部分,可能会给测试增加额外的复杂性。
<html>
<body>
<table>
<tr>
<td>
<div></div>
<div></div>
<div></div>
</td>
</tr>
</table>
<table>
<tr>
<td>
<div></div>
<div></div>
<div></div>
</td>
</tr>
</table>
</body>
</html>要测试图像,能够基于图像文件名以外的其他内容检查它们的存在是很好的,所以当图像更新时,您不必更改测试。如果你需要测试Flash对象,可以使用check out this site。
除此之外,我注意到没有太多东西可以整合到开发方面。一旦您开始设置测试并在页面上定位元素,您可能很快就会看到开发人员需要做些什么来帮助您。
发布于 2009-05-05 19:34:20
一条建议:将测试代码保持在至少两层抽象中
这样,您的测试将更易于维护,并且更容易理解正在测试的内容。我们甚至尝试了一种三层方法,即third (uppermost) layer being the tests specified using XML。这是为了让我们的非编程测试人员能够在不钻研C#代码的情况下指定验收测试。
https://stackoverflow.com/questions/822275
复制相似问题