使用XML维护Selenium自动化测试脚本

发表于:2013-6-07 10:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:祝尚元    来源:51Testing软件测试网采编

  简介:软件自动化回归测试是软件工程实践中的重要发展趋势之一。目前业内主流的商业自动化测试工具和开放源代码测试工具,都需要自动化测试人员熟悉开发编程语言。但是过高的编程门槛让很大一部分优秀的业务测试人员只能对自动化测试驻足遥望。为解决该群体的困扰,本文将介绍如何让不熟悉编程的业务测试人员也能编写出类似传统功能测试用例的自动化测试用例,从而扫除自动化测试的技术障碍。

  本文适用于需要为测试团队开发自动化回归测试框架的测试设计开发人员。目前业内主流的商业自动化测试工具和开放源代码测试工具,都需要测试人员熟悉开发编程语言。但是过高的编程门槛让很多测试人员只能对自动化测试驻足遥望。为解决该群体的困扰,本文将介绍一种基于XML维护自动化测试脚本的自动化测试框架,并详细描述了其中的技术实现细节。XML具有编写简单,易于在任何程序中读写数据等特性,这使得XML成为了数据交换的唯一公共语言。使用基于XML的Selenium自动化测试框架,可以让不熟悉编程的测试人员快速编写出类似传统功能测试用例的自动化测试用例,从而扫除自动化测试的技术障碍。

  本文首先会对比一下业内主流的自动化测试工具,简单分析测试人员使用这些工具时存在的问题。然后以测试人员编写的一份传统测试用例为例子,演示如何使用Selenium为其编写自动化测试脚本文件。接着,介绍了如何开发基于XML的Selenium自动化测试框架。最后,简单介绍了一下如何为基于XML的Selenium自动化测试框架编写更多的特性。通过比较两种自动化测试实现方式,使用XML维护Selenium自动化测试脚本的优势一览无余的展示出来。

  Web 应用自动化回归测试工具一览

  随着软件公司的发展,产品线不断扩大,软件新版本不断推出,支持的平台越来越丰富,如何高效、快速的对软件产品进行测试成为软件测试团队的新挑战。越来越多的项目组在考虑对软件软件产品进行自动化回归测试,考虑选取适合自己项目组的自动化工具。面对数目繁多、各式各样的自动化工具,选择也不是件很容易的事情。测试人员耳熟能详的测试工具如下表:

表格 1. 自动化测试工具

  如上表所示,开源的有Selenium、Watir等,商业的测试工具如Rational Functional Tester、Rational Robot、QTP、SilkTest等等。开源工具使用成本比较低,但功能不如商业工具丰富。商业工具可以提供强大的录制功能,为初学者所喜爱,但录制脚本并不是自动化测试最优方案。录制脚本中的测试数据和脚本程序混杂在一起,很难进行维护;此外,当测试用例发生较大的变更时,维护用例和重新录制用例所花费的精力不分上下。值得一提的是,RFT作为IBM Rational产品家族的重要组成部分,吸引了大量的测试人员使用该工具。IBM Frame框架,更是让RFT测试脚本开发效率倍增,您们可以再 developerWorks上面发现很多关于这个框架的文章。以Selenium为代表的开源工具,也吸引了大量的测试人员,developerWorks上也发表了很多文章,如《使用分层的Selenium框架进行复杂 Web 应用的自动测试》等等。但是,不管使用什么样的工具,都需要测试人员熟悉开发编程语言。编程门槛让很大一部分的熟悉业务的测试人员只能对自动化测试驻足遥望。那么,如何让不熟悉编程的测试人员也能编写自动化回归测试用例呢?

  业务测试人员擅长什么

  显然,测试人员十分熟悉业务,擅长编写传统的功能测试用例文档。本文会给出一份简化的测试用例:在搜索引擎谷歌站点查询IBM开发者社区,如下表:

表格 2. 测试用例

  该测试用例只包括测试步骤,每个测试步骤又分成若干组成部分:步骤编号、测试步骤、期望结果、实际结果、执行状态等。很显然,业务测试人员肯定会写出比这复杂得多的用例。我们用这份简单的测试做演示使用。下面就演示如何对这个用例做自动化测试。

  使用 Selenium 为测试用例编写自动化脚本

  我们先以开源的 Selenium 工具为例,开发上述用例的自动化测试脚本。Selenium 包含 Selenium-IDE、Selenium Remote Control、Selenium WebDriver 和 Selenium Grid,他们共同组成了强大的自动化测试工具。Selenium RC 和 Selenium WebDriver 都可以使用 Selenium Sever,Selenium Server 还包括内建的 Grid 功能特性。如果浏览器和测试用例运行在相同的机器上并且测试用例完全基于 WebDriver API 编写,可以直接使用 WebDriver 驱动浏览器,而不必使用 Selenium Server。在特定情况下,比如计划使用 Selenium Grid 创建分布式自动化测试环境、或需要连接到安装特别版本浏览器的远程机器上执行测试用例脚本,必须使用 Selenium Server。下面分别简单介绍一下各个组件:

  ● Selenium 2(又名 Selenium WebDriver):Selenium 2.0 的主要新特性就是集成了 Selenium WebDriver API。WebDriver 被设计用于提供简化精炼的编程接口,并解决了在 Selenium RC 中的一些限制。WebDriver 可以更好的支持使用 AJAX 技术的动态网页。总的来说,WebDriver 提供设计良好的面向对象的接口和改进的对动态网页支持,是 Selenium 的未来发展方向。

  ● Selenium 1(Selenium Remote Control):曾是 Selenium 的主要组成部分,现已经正式被 Selenium 官方弃用。替代者为 Selenium 2(Selenium WebDriver)。更多详细内容,请参考 Selenium 项目简史。

41/41234>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号