Log*_*gan 10 testing user-interface selenium automated-tests
我的任务是开发一个自动GUI测试系统,我可以使用一些建议.幸运的是,我们正在对GUI进行重大的重新设计,开展这项工作的开发人员可以使他们的代码对自动化更加友好.我的问题是,我不确定要求他们添加什么.无论添加什么钩子都不会影响界面的功能,外观或安全性,并且不应对性能产生明显影响.除此之外,天空是极限!
有问题的应用程序是通过AJAX访问的基于Web的Java应用程序.大多数现有功能都使用jsp,Javascript和一些Flash 8进行编码.下一波功能将使用YUI Javascript库完成.由于其灵活性和价格标签(免费),我对Selenium作为测试工具非常满意.重点:我的目标是测试可重用性和易维护性.我的首选是编写检测,验证和练习页面元素的代码,而不是使用记录和回放系统进行测试开发.
任何人都可以提供一些关于可以在代码中放置什么钩子或一些最佳实践的指导,以使测试开发更容易,并且测试本身更健壮吗?
小智 6
基本指导原则:如果他们希望您测试某些东西,测试人员需要一种方法来使应用程序进入该状态,并且一旦处于该状态,就需要一种方法来验证状态是否正确.
所以首先要确保他们理解自动化是编程而UI是你的API.
同意不随意更改UI - 如果测试人员Bob看到组件从按钮更改为链接,并且它与规范匹配,则单击并继续.虽然自动化中的代码更改相对容易,但可能必须在多个位置进行更改.(作为测试人员,您的工作是了解变更的发生并最大限度地降低维护成本;他们的工作只是做出重大改变并了解其影响)
一种确定您所在页面的方法...... Bob可以区分登录和订单输入,但自动化如何知道?如果输入字段带有"用户名"标签,则为登录页面.如果是带有订单号的输入字段,则为订单字段.
不好 - 更好的练习是识别页面标题,隐藏组件等的一致UI元素.
一种唯一标识您需要与之交互的每个元素的方法(单击,输入,验证等)而不是INPUT_42 ....
询问开发人员测试人员可以提供哪些信息来加速调试,并要求他们将其放入日志文件中
能够转储程序的状态
一致的错误处理和报告(也是良好的UI设计)
与大多数问题一样,这取决于.主要是关于你的网站的样子以及页面上有哪些控件 - 是否有很多重复的元素等?
我使用Selenium RC和Selenium IDE取得了很大的成功.主要的是习惯使用Selenium及其命令.习惯于在页面上定位对象(XPath和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>
Run Code Online (Sandbox Code Playgroud)
为了测试图像,能够根据图像文件名以外的其他内容检查它们的存在是很好的,因此您不必在更新图像时更改测试.如果您需要测试Flash对象,请查看此站点.
除此之外,我注意到并没有很多可以纳入开发方面.一旦开始设置测试并在页面上定位元素,您可能会很快看到开发人员需要做些什么来帮助您.
一条建议:将测试代码保留在至少两层抽象中:
通过这种方式,您的测试将更加清晰,并且在测试内容方面更容易理解.我们甚至尝试了三层方法,第三层(最上层)是使用XML指定的测试.这是为了让我们的非编程测试人员能够指定验收测试而无需深入研究C#代码.
| 归档时间: |
|
| 查看次数: |
1712 次 |
| 最近记录: |