Selenium自动化测试框架入门整理

本文主要针对Selenium自动化测试框架入门整理,只涉及总体功能及框架要点介绍说明,以及使用前提技术基础要求整理说明。作为开发人员、测试人员入门参考。

本文参考:Selenium框架最新技术规范及相关资料

简介

Selenium也是一款同样使用Apache License 2.0协议发布的开源框架。Selenium也是一套完整的Web应用程序测试系统工具,它包含了:

  • Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可运行于任何支持JavaScript的浏览器上;
  • 测试的录制(Selenium IDE);
  • 编写及运行(Selenium Remote Control)(3.X移除了);
  • 测试的并行处理(Selenium Grid);
  • Selenium2.X包含该了WebDriver和SeleniumRC(兼容以前版本)。Selenium3.X只包含WebDriver,移除了SeleniumRC。

Selenium整体产品结构如下:(3.x以后版本去除了SeleniumRC)

Selenium IDE:

是一个用于构建脚本的初级工具,其实是FireFox的一个插件,拥有一个易于使用的界面。它拥有记录功能,能够记录用户执行的操作,并可以导出为可重复使用的脚本。如果没有编程经验,可以通过Selenium IDE来快速熟悉Selenium的命令。该工具实际使用不多。Selenium-core 是使用HTML的方式来编写测试脚本,你也可以使用 Selenium-IDE来录制脚本,但是目前Selenium-IDE只有 FireFox 版本。

Selenium-RC(Selenium3.X 移除):

selenium-remote control 缩写,是使用具体的语言来编写测试类。Selenium RC支持多种不同的语言编写自动化测试脚本,通过SeleniumRC的服务器作为代理服务器去访问应用,从而达到测试的目的。主要包含以下两大部分:

  • ClientLibraries库主要用于编写测试脚本,用来控制SeleniumServer的库。
  • SeleniumServer负责控制浏览器行为。SeleniumServer包含三部分:Launcher,Http Proxy和Core。其中,Selenium Core是被Selenium Server嵌入到浏览器页面中的,其实SeleniumCore就是一堆JavaScript函数的集合,即通过这些JavaScript函数,我们才可以实现用程序对浏览器进行操作。Launcher用于启动浏览器,把Selenium Core加载到浏览器页面当中,并把浏览器的代理设置为SeleniumServer的HttpProxy。

WebDriver:

Selenium2.x提出了WebDriver的概念之后,它提供了完全另外的一种方式与浏览器交互。那就是利用浏览器原生的API,封装成一套更加面向对象的SeleniumWebDriver API,直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的)。由于使用的是浏览器原生的API,速度大大提高,而且调用的稳定性交给了浏览器厂商本身,显然是更加科学。然而带来的一些副作用就是,不同的浏览器厂商,对Web元素的操作和呈现多少会有一些差异,这就直接导致了Selenium WebDriver要分浏览器厂商不同,而提供不同的实现。例如Firefox就有专门的FirefoxDriver,Chrome就有专门的ChromeDriver等等。(甚至包括了AndroidDriver和iOS WebDriver)

Selenium Grid:

实现测试的并行处理。

基于Selenium进行测试的方式及流程

Selenium RC方式(3.X以后版本移除该方式):

  • 测试用例通过Http请求建立与 Selenium-RC server 的连接;
  • Selenium RC Server 驱动一个浏览器,把Selenium Core加载入浏览器页面当中,并把浏览器的代理设置为Selenium Server的Http Proxy;
  • 执行用例向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core执行操作浏览器的动作并注入 JS 代码;
  • Selenium Core执行接受到的指令并操作;
  • 当浏览器收到新的请求时,发送http请求
  • Selenium Server接收到浏览器发送的Http请求后,自己重组Http请求,获取对应的Web页面;
  • Selenium Server中的Http Proxy把接受到的页面返回给浏览器。

WebDriver(目前主流方式):

Selenium 2.X启动SeleniumRC至今为止还保留着,应该是考虑到向前兼容。Selenium 3.X完成移除了SeleniumRC。

Selenium2.X增加了WebDriver,保持RC向前兼容。WebDriver项目是由Simon Stewart创建的,它是一个非常便捷的自动化测试工具。WebDriver对不同浏览器的处理方式和RC有着明显的不同,RC是不管什么浏览器都是JavaScript来处理,而WebDriver是选择浏览器最容易接受的语言来处理。比如,在IE中,C++最合适,在Firefox中, JavaScript最合适等等。通过灵活选择最合适的语言来处理多浏览器,我们可以很好的回避某些浏览器对JavaScript的安全限制。而且WebDriver不仅仅具有这些能力,它还能够调用操作系统API,尤其是当用户需要模拟鼠标和键盘进行真实的页面操作的时候,这项能力的作用尤为明显。

现在支持的WebDriver:AndroidDriver,ChromeDriver, FirefoxDriver, HtmlUnitDriver, EventFiringWebDriver,InternetExplorerDriver, IPhoneDriver, IPhoneSimulatorDriver, RemoteWebDriver。

Selenium Grid(目前主流的方式):

传统的无Grid的模式,只能在一台机器上进行测试。Selenium可以在上面两种方式下进行执行,第一种是每台机器都是一致的,第二种是可以指定特定的浏览器或者特定的操作系统执行。

自动化测试脚本编制要求

  • 前提熟悉:HTML /XML/...
  • 前提熟悉:XPath(XML路径语言 http://www.runoob.com/xpath/xpath-tutorial.html
  • 开发语言:Java/Python/C#/PHP/…,最起码熟悉一种开发语言。
  • FIT模式:Selenium脚本(JS):命令用法
  • Driver模式:库(不同语言有不同客户端)的熟练使用:方法、函数等。
  • 可采用Selenium WebDriver + TestNG框架(TestNG 是一个测试 Java 应用程序的新框架)模式。
  • 建立测试用例脚本的编制规范(针对WebDriver模式)
  • 可利用Jenkins集成Selenium Grid + WebDriver,及 Selenium Report插件。

测试结果报告展现方式

要结合其他框架的测试报告模板,例如TestNG的测试结果报告、ReportNg等;

Jenkins集成selenium,可利用 selenium report 插件输出;

可结合自主开发测试结果展现处理平台,关联到任务平台当中。

集成成本及方式

需进行Selenium脚本的学习以及相关技术的学习;

基于Selenium的WebDriver模式,测试用例的编制要求具备数据一种开发语言(主流模式);

如结合TestNG,则需熟悉Java。

我们可采用Jenkins + Selenium + TestNG + Selenium report (ReportNG) 集成的模式进行Web应用的自动化测试。在DevOps产品研发中,可融合封装使用Selenium进行WEB应用自动化测试。

如需深入了解,请在网络上参考官方的文档及相关资料等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!


最后基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源【免费】。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值