1.问题的提出
最近几年来,我的自动化测试工具之旅大致是这样的,最早用的是QTP,然后是RFT(IBM的功能测试自动化产品),之后也经历了Selenium, Watir等,再后还是一些商业工具主要是偏web自动化及移动自动化,如sahi, appnium, Keynote DeviceAnywhere, SeeTest, HP UFT等,这一系列的变化,让人痛苦的不是学习的过程,也不是各种编程语言的转换,最痛苦的是我们的自动化测试脚本要因为工具的变化而需要重写,因为无法重用,我们或是维护多种自动化工具脚本,或是将自动化测试脚本为最近使用的工具进行重写编写,有太多的effort花在这些事情上。
我们怎么解决这类问题呢?试想,如果我们能够有这样一个平台,如果提供统一的自动化编程API,而且独立于某种工具,那该 有多好。所以本文的目的要设计 这样一个平台,能够对自动化测试人员提供统一的编程接口,能够适应测试工具的变化,而无须修改已经基于此平台编程好的自动化测试脚本。
2. 如何实现工具无关化
首先,我们要考虑工具无关化,如果要实现工具无关化,那么对于使用者(自动化测试脚本实现者)一定是使用一致的api,一致的测试元素,一致的数据访问方式。那么我们先要考虑一下测试元素的一致性。
这里我们先假设我们未来的待测试应用都是web应用或是mobile应用,而mobile应用我们使用的都是hybrid应用。对于测试元素来讲,最重要的是如何能够识别它,我们在识别元素的时候,都会找到一个唯一id或属性来标识它。来看我们上边假设的应用,我们可以使用xpath来做为唯一id来识别元素。你可能根据自已实际场景来设计来定义它。除此之外,为了能够操作元素,我们需要知道它的名字,因为我们还需要为它命名。除此之外,我们还需要使用一个类型字段来区别不同工具之间可能对测试元素有些特别的要求,我们通常使用type字段来标识它。所以我们从逻辑上来看,一个工具无关的测试元素大致看起来是这样的。
对于测试数据来讲,我认为,每个数据都是有一个列和一个值组成,所有数据看起来比较简单。
数据有一点需要注意一下,如果我们要实现数据驱动的自动化测试,我们就需要在此平台提供处理多行数据能力。
有了测试对象和测试数据之后,我们需要了解我们的待测试应用,我们的平台需要对待测试应用使用之前进行一些配置,使用时还要进行一些初始化等工作,使用完我们还会对些进行一些清理销毁等工作。
... ...
查看更多精彩内容,请点击下载:http://www.51testing.com/html/35/n-3578035.html
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。