使用 Selenium 实现基于 Web 的自动化测试

发表于:2017-7-17 13:56

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

 作者:jibm    来源:51Testing软件测试网采编

  Selenium 及其实现原理
  Selenium 的主要功能包括:
  1)测试浏览器的兼容性:测试应用程序能否兼容工作在不同浏览器和操作系统之上。
  2)测试系统功能:录制用例自动生成测试脚本,用于回归功能测试或者系统用例说明。
  简而言之,Selenium 就是一款可以录制用户操作,帮助 Web 测试人员简化重复劳动的工具。
  目前为止 Selenium 有两种版本:
  Selenium 1(Selenium RC,Remote Control):传统 Selenium 框架,支持多种编程语言脚本生成。但需要启动一个代理 Server 来处理用户与测试 Server 之间的通讯。
  Selenium 2(Selenium Webdriver):全新自动化接口,突破了 Selenium 1 的一些限制,剔除了中间 Server,但由于写这篇文章为止自动生成脚本工具对 Selenium 2 的支持还不好,适合熟悉 Selenium API 的手写 case 测试人员使用。
  阅读本文读者可以学习到以下技能:
  了解 Selenium 自动化测试框架的基本概念。
  学会搭建应用 Selenium 自动化测试框架的环境。
  搭建一个自集成的测试容器以持续测试 Selenium 测试用例
  本文着重介绍传统 Selenium 1 的原理及使用方法。接下来让我们看看 Selenium 是如何调用录制脚本并实现自动测试的。
  Selenium 1 实现原理
  Selenium 引入了 Remote Control Server 这样一个代理 Server,JavaScript 脚本注入和与 Server 通讯都通过这个代理 Server 来进行。如下图所示:
  图 1. Remote Control 模式运行流程
  之所以引入这个代理 Remote Control Server 是因为“同源策略”的限制,通过这个代理服务器来“欺骗”远程 Server,达到使其以为是从同一个地方 load 代码以正确返回请求数据的效果。
  流程说明:
  客户端建立与 selenium-RC server 的连接。
  Selenium RC Server 启动一个浏览器(或是已经使用中),并注入 JS 代码
  将 Selenese 代码传到客户端的 Selenium-Core 中。
  Selenium-Core 翻译并解析执行用户录制的操作。
  让代理 Server 进行通讯
  Remote Control Server 负责跟远程 Web 应用服务器进行通讯。
  操作完成,显示结果,并执行下一指令。
  以上就是 Selenium Remote Control 的执行原理,接下来的章节中将一步步以图例加说明的方式快速说明如何使用 Selenium 来录制脚本,导入 Java 工程,然后定期维护工程。
  使用 Selenium 实现自动化测试
  使用 Selenium IDE 录制用户操作
  Selenium IDE 是一个基于 Firefox 的插件,用户可以在通过这个插件将客户端操作录制成脚本并导出为 Java、c#、Ruby 等多种运行语言以便统一管理测试用例。
  下载 FireFox: 推荐 Firefox 5.0 以上,目前 Selenium IDE 只提供 Firefox 的插件。
  下载 Selenium IDE:http://seleniumhq.org/download/
  安装插件:
  Tools --> Add-ons --> 将下载的 selenium-ide-1.x.xpi 文件拖入对话框即可安装。
  安装后可以启动 IDE 插件查看是否安装成功。
  图 2. 启动 Selenium IDE 插件
  安装后,以 IBM Systems Director 产品为例,说明如何实现“用户登录”这个测试用例。
  点击录制按钮 如下图 3 中的 1
  录制过程中,登录用户界面,输入用户名密码。如下图 4
  然后可以通过是否包含某些字符串来验证是否登录成功。如果下图 5
  回到登录 IDE 界面,查看已录制步骤 如图 3 中的 2
  在 IDE 界面中可以验证录制的脚本,必要时回到第四步,如图 3 中的 3
  在 IDE 中重运行录制的脚本通过就说明脚本没问题,可以用于测试用例代码导出了。
  图 3. Selenium IDE 录制窗口
  图 4. 录制过程中,输入用户名密码
  图 5. 通过确认是否包含某些文字来验证是否成功登录
  使用 Selenium IDE 导出 JUnit 测试用例
  在 Selenium IDE 中执行成功后,就可以把测试脚本导出成 JUnit 测试用例了,如图 6 所示:
  图 6. 导出 JUnit 代码

  本文首先介绍了 Selenium 以及 Selenium 1 的实现原理。紧接着用一个 Login 的简单例子讲述了如何去搭建 Selenium 运行环境,并将其导出为 JUnit 代码。最后构建了一个基于 Ant 的自动化测试 Selenium 框架,持续地对生成的 JUnit 测试用例进行管理以及功能性测试。读者也可以借鉴该脚本搭建自己的轻量级的单元测试框架。
  目前主流的 web 自动化测试框架还有 QTP,基于 Ruby 的 WATIR。与这些框架相比,Selenium 支持 IE、Mozilla Firefox 等多种浏览器,同时支持自动录制脚本以及 Java、C#、Ruby 等多种运行语言的自动生成,测试用例制作快捷,运行也比较快速。对于较为轻量级相比起来 Selenium 要显得更为灵活实用。Selenium 不仅用于功能性测试及回归测试,同时也可用于 Web 可视化验收测试。更多的,Selenium 可集成在诸如 Cruise 持续集成软件中,为整体项目提供更大集成测试范围。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号