尝试个人翻译selenium官方的测试设计模式篇,由于本人个人能力有限,翻译内容没有进行校对,还有很多晦涩难懂的地方,部分地方翻译出来强加了个人理解,所以本文仅供个人学习参考,文末有对应文档的官网链接可供参考。
本章大纲:
- 测试设计介绍
- 测试类型
- 静态内容测试
- 链接测试
- 功能测试
- 动态元素测试
- Ajax测试
- 结果验证
- 断言与验证
- 定位策略
- 选择定位方式
- 查找动态元素
- 查找Ajax元素
- 封装会话
- 元素存在的“安全操作”
- 映射用户界面
- 页面对象设计模式
- 数据驱动测试技术
- 数据库验证技术
- 测试设计注意事项内容介绍
- 描述最常见的自动化测试类型。
- 描述了测试自动化中常用的“设计模式”,以改进您的自动化套件的维护和扩展性。
- 测试类型
你应该测试哪些部分的应用程序?这取决于项目的各个方面:用户期望,项目允许的时间,项目经理设定的优先级等。一旦项目的维度被定义了,你,测试人员肯定会对测试的内容做出很多决定。
我们在此创建了一些术语,用于对您可能在Web应用程序上执行的测试类型进行分类。尽管我们在这里介绍的概念是典型的Web应用程序测试,但是这些术语绝非标准。
- 静态内容测试
最简单的测试类型是内容测试,它是进行静态的、不变的、简单UI元素的测试。例如
- 每个页面是否都有预期的页面标题?这可以用来验证链接是否跳转到预期的页面。
- 应用程序的主页是否在预期页面顶部包含图像?
- 网站的每个页面是否包含一个页脚区域,该区域中包含公司联系信息,隐私政策和商标信息的链接?
- 每个页面是否都使用<h1>标签标题文本开头?而且,每个页面在该标题中的文本信息是否正确?
您可能需要也可能不需要内容测试。如果您的页面内容不可能受到影响,那么手动测试页面内容可能会更有效。
但如果您的应用程序涉及将文件移动到不同的位置,则内容测试可能证明是有价值的。如何理解这句话呢?
- 链接跳转测试
网站的常见错误是链接跳转后链接断开或缺少页面。测试用例包括点击每个链接并验证跳转到期望页面。如果静态链接很少改变,那么手动测试可能就足够了。但是,如果您的网页设计师经常更改链接,或者偶尔重新定位文件,则链接测试最好是自动的。
- 功能测试
这些将是您的应用程序中特定功能的测试,需要某种类型的用户输入,并返回某种类型的结果。通常一个函数测试用例将涉及多个页面,其中包含一个包含一组输入字段集合的基于表单的输入页面,提交和取消操作以及一个或多个响应页面。用户输入可以通过文本输入字段,复选框,下拉列表或任何其他浏览器支持的输入。
功能测试用例通常是您执行的最复杂的自动化测试用例,但通常是最重要的。典型的测试用例可以用于登录,登录到站点,用户账户操作,账户设置变化,复杂的数据检索操作等等。
功能测试通常反映用于指定功能、设计、用户场景或业务流程。
- 动态元素测试
通常,网页元素具有唯一标识符,用于在页面中唯一地定位该元素。通常这些都是使用html标签的'id'属性或其'name'属性实现的。这些名称可以是静态的,即不变的字符串常量。它们也可以是动态生成的值,可以改变页面的每个实例。例如,某些Web服务器可能会将显示的文档doc3861命名为页面的一个实例,而对于不同的页面实例则会命名为“doc6148”,具体取决于用户正在查看的“文档”。写验证这类文档存在的测试脚本时可能没有用于定位该文档的唯一标识符比如id。通常,基于用户操作,在同一页面上某种类型的元素其标识符内容不同。这当然取决于Web应用程序的功能。
这是一个例子。
<input type="checkbox" value="true" id="addForm:_ID74:_ID75:0:_ID79:0: checkBox"/>
这显示了一个复选框的HTML标记。它的ID(addForm:_ID74:_ID75:0:_ID79:0:checkBox)(ID就是标识符)是一个动态生成的值。下一次打开同一页面时,它可能会是一个不同的值。
- Ajax测试
Ajax是一种支持动态更改的用户界面元素的技术,可以动态更改,而无需浏览器重新加载页面,如动画,RSS源和实时数据更新等。Ajax有无数种方法用来更新网页上的元素。但是,利用这一简单的方法是,在Ajax驱动的应用程序中,可以从应用程序服务器检索数据,然后在再页面上显示数据,而无需重新加载整个页面。这样只有一部分页面,或整个元素本身被重新加载。
原文地址:测试设计注意事项
下一节: