0
点赞
收藏
分享

微信扫一扫

什么样的项目适合自动化测试

虽然,在你拿到这本书时已经对要测试的项目做了一些分析和考量,但笔者还是有必要在这里啰

嗦一下不是所有项目都适合实施自动化测试的,以免读者对项目实施自动化过程中感到困难重重,浪

费了大量的人力和时间而没有得到应有的收益。

1、任务测试明确,不会频繁变动

2、每日构建后的测试验证

3、比较频繁的回归测试

4、软件系统界面稳定,变动少

5、需要在多平台上运行的相同测试案例、组合遍历型的测试、大量的重复任务

6、软件维护周期长

7、项目进度压力不太大

8、被测软件系统开发比较规范,能够保证系统的可测试性

9、具备大量的自动化测试平台

10、测试人员具备较强的编程能力

当然,并非以上 10 条都具备的情况下才能开展测试工作。这里就需要读者做综合的权衡。在我

们普遍的自动化测试经验中,一般满足三个条件就可以对项目开展自动化测试:

软件需求变动不频繁

测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根

据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个开发代码的过程,需

要修改、调试,必要的时候还要修改自动化测试的框架,如果所花费的成本高于利用其节省的测试成

本,那么自动化测试便是失败的。

项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动

化测试,而变动较大的仍是用手工测试。

项目周期较长

由于自动化测试需求的确定、自动化测试框架的设计、脚本的开发与调试均需要时间来完成。这

样的过程本身就是一个测试软件的开发过程。如果项目的周期比较短,没有足够的时间去支持这样一

个过程,那么自动化测试便成为笑谈。

自动化测试脚本可重复使用

自动化测试脚本的重复使用要从三个方面来考量,一方面所测试的项目之间是否很大的差异性(如

C/S 系统和 B/S 系统的差异);所选择的测试工具是否适应这种差异;最后,测试人员是否有能力开发出

适应这种差异的自动化测试框架。

自动化测试及工具简述

自动化测试的概念有广义与狭义之分;广义上来讲所有借助工具来进行软件测试都可以称为自动化测

试;狭义上来讲,主要指基于 UI 层的自动化测试;除此之外还有基代码编写阶段的单元自动化测试,基

本集成测试阶段的接口自动化测试。

注意:如果没有特别说明,本文所说的“自动化测试”均指基于“UI 的功能自动化测试”。

目前市面上的自动化测试工具非常多,下面几款是比较常见的自动化测试工具。

QTP

QTP 是 HP Quick Test Professional software 的简称,是一种企业级的自动测试工具。提供了强大

易用的录制回放功能。支持 B/S 与 C/S 两种架构的软件测试。是目前主流的自动化测试工具。

t Robot Framework

Robot Framework 是一款 Python 编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,

可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。

watir

Watir 全称是“Web Application Testing in Ruby”。它是一种基于 Web 模式的自动化功能测试工具。

watir 是一个 Ruby 语言库,使用 Ruby 语言进行脚本开发。

Selenium

Selenium 也是一个用于 Web 应用程序测试的工具,支持多平台、多浏览、多语言去实现自动化测试。

目前在 web 自动化领域应用越来越广泛。

当然,除了上面所列自动化测试工外,根据不同的应用还有很多商业的、开源的以及公司自己开发的

自动化测试工具。

什么是 Selenium?

Selenium 自动化测试浏览器,它主要是用于 Web 应用程序的自动化测试,但肯定不只局限于此,同

时支持所有基于 web 的管理任务自动化。

Selenium 的特点:

 开源,免费

 多浏览器支持:FireFox、Chrome、IE、Opera

 多平台支持:linux 、windows、MAC

 多语言支持:java、Python、Ruby、php、C#、JavaScript

 对 web 页面有良好的支持

 简单(API 简单)、灵活(用开发语言驱动)

 支持分布式测试用例执行

Selenium 经历了两个版本,Selenium 1.0 和 Selenium 2.0 ,Selenium 也不是简单一个工具,而

是由几个工具组成,每个工具都有其特点和应用场景。

Selenium IDE

Selenium IDE 是嵌入到 Firefox 浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能。

那么什么情况下用到它呢?

快速的创建 bug 重现脚本,在测试人员的测试过程中,发现了 bug 之后可以通过 IDE 将重现的步骤录

制下来,以帮助开发人员更容易的重现 bug。

IDE 录制的脚本可以可以转换成多种语言,从而帮助我们快速的开发脚本,关于这个功能后而用到时

再详细介绍。

m Selenium Grid

Selenium Grid 是一种自动化的测试辅助工具,Grid 通过利用现有的计算机基础设施,能加快 Web-app

的功能测试。利用 Grid,可以很方便地同时在多台机器上和异构环境中并行运行多个测试事例。其特点为:

 并行执行

 通过一个主机统一控制用例在不同环境、不同浏览器下运行。

 灵活添加变动测试机

m Selenium RC

Selenium RC 是 Selenium 家族的核心工具,Selenium RC 支持多种不同的语言编写自动化测试脚本,

通过 Selenium RC 的服务器作为代理服务器去访问应用从而达到测试的目的。

Selenium RC 使用分 Client Libraries 和 Selenium Server,Client Libraries 库主要主要用于编

写测试脚本,用来控制 Selenium Server 的库。

Selenium Server 负责控制浏览器行为,总的来说,Selenium Server 主要包括 3 个部分:Launcher、

Http Proxy、Core。其中 Selenium Core 是被 Selenium Server 嵌入到浏览器页面中的。其实 Selenium Core

就是一堆 JS 函数的集合,就是通过这些 JS 函数,我们才可以实现用程序对浏览器进行操作。Launcher 用

于启动浏览器,把 selnium Core 加载到浏览器页面当中,并把浏览器的代理设置为 Selenium Server 的

Http Proxy。

m Selenium 2.0

搞清了 Selenium 1.0 的家族关系,Selenium 2.0 是把 WebDriver 加入到了这个家族中;简单用公

式表示为:

Selenium 2.0 = Selenium 1.0 + WebDriver

需要强调的是,在 Selenium 2.0 中主推的是 WebDriver ,WebDriver 是 Selenium RC 的替代品,因

为 Selenium 为了向下兼容性,所以 Selenium RC 并没有彻底抛弃,如果你使用 Selenium 开发一个新自

动化测试项目,强列推荐使用 WebDriver 。那么 Selenium RC 与 webdriver 主要有什么区别呢?

Selenium RC 在浏览器中运行 JavaScript 应用,使用浏览器内置的 JavaScript 翻译器来翻译和执行

selenese 命令(selenese 是 Selenium 命令集合)。

WebDriver 通过原生浏览器支持或者浏览器扩展直接控制浏览器。WebDriver 针对各个浏览器而开发,取代了嵌入到被测 Web 应用中的 JavaScript。与浏览器的紧密集成支持创建更高级的测试,避免了

JavaScript 安全模型导致的限制。除了来自浏览器厂商的支持,WebDriver 还利用操作系统级的调用模拟

用户输入。

Selenium 与 WebDriver 原先属于两个不同的项目,WebDriver 的创建者 Simon Stewart 早在 2009 年

八月的一份邮件中解释了项目合并的原因。

Selenium 与 WebDriver 合并原因:

为何把两个项目合并?部分原因是 WebDriver 解决了 Selenium 存在的缺点(比如,能够绕过 JS 沙

箱。我们有出色的 API),部分原因是 Selenium 解决了 WebDriver 存在的问题(例如支持广泛的浏览

器),部分原因是因为 Selenium 的主要贡献者和我都觉得合并项目是为用户提供最优秀框架的最佳途

径。

举报

相关推荐

0 条评论