Selenium

优质
小牛编辑
133浏览
2023-12-01
更改历史

* 2017-11-12    张会美    初始化文档

1 历史、现状和发展

Jason Huggins在2004年发起了Selenium项目,当时身处ThoughtWorks的他,为了不想让自己的时间浪费在无聊的重复性工作中,幸运的是,所有被测试的浏览器都支持Javascript。Jason和他所在的团队采用Javascript编写一种测试工具来验证浏览器页面的行为;这个JavaScript类库就是Selenium core,同时也是seleniumRC、Selenium IDE的核心组件。Selenium由此诞生。

关于Selenium的命名比较有意思,当时QTP mercury是主流的商业自化工具,是化学元素汞(俗称水银),而Selenium是开源自动化工具,是化学元素硒,硒可以对抗汞。

Selenium IDE

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

Selenium Grid

Selenium Grid是一种自动化的测试辅助工具,Grid通过利用现有的计算机基础设施,能加快Web-App的功能测试。利用Grid可以很方便地实现在多台机器上和异构环境中运行测试用例。

Selenium RC

Selenium RC(Remote Control)是Selenium家族的核心部分。Selenium RC 支持多种不同语言编写的自动化测试脚本,通过Selenium RC的服务器作为代理服务器去访问应用,从而达到测试的目的。

Selenium RC分为Client Libraries和Selenium Server。Client Libraries库主要用于编写测试脚本,用来控制Selenium Server的库。Selenium Server负责控制浏览器行为。 在2006年的时候,Google的工程师Simon Stewart发起了WebDriver的项目;因为长期以来Google一直是Selenium的重度用户,但却被限制在有限的操作范围内。

Selenium RC 是在浏览器中运行JavaScript应用,使用浏览器内置的JavaScript翻译器来翻译和执行selenese命令(selenese是Selenium命令集合)。

WebDriver是通过原生浏览器支持或者浏览器扩展来直接控制浏览器。WebDriver针对各个浏览器而开发,取代了嵌入到被测Web应用中的JavaScript,与浏览器紧密集成,因此支持创建更高级的测试,避免了JavaScript安全模型导致的限制。除了来自浏览器厂商的支持之外,WebDriver还利用操作系统级的调用,模拟用户输入。

因为Selenium和Webdriver的合并,所以,Selenium 2.0由此诞生。简单用公式表示为:

Selenium 2.0 = Selenium 1.0 + WebDriver

需要强调的是,在Selenium 2.0中主推的是WebDriver,可以将其看作Selenium RC的替代品。因为Selenium为了保持向下的兼容性,所以在Selenium 2.0中并没有彻底地抛弃Selenium RC。

它的工作原理是这样的:

Selenium 3.0做了一些不大不小的更新:

1、终于去掉了RC,简单用公式表示为:

Selenium 3.0 = Selenium 2.0 + Selenium RC(Remote Control)

2、Selenium3.0只支持Java8版本以上。

3、Selenium3.0中的Firefox浏览器驱动独立了,以前装完selenium2就可以驱动Firefox浏览器了,现在和Chrome一样,必须下载和设置浏览器驱动。

难点:预测发展方向。

2 安装和使用

2.1 安装

在安装Selenium 之前我们应该根据具体情况选择什么版本,以及工具集的选择,目前Selenium工具集包括:Selenium Core、Selenimu IDE、Selenium Remote Control(selenium RC)、Selenium Grid。

step1:下载安装FireFox浏览器。

step2:打开FireFox浏览器,按“工具-附件组件-获取添加组件”菜单顺序找到插件安装页面,在搜索栏输入“selenium ide”进行搜索,选择一个版本进行安装(即:选择“添加至FireFox”操作。

2.2 使用

Selenium IDE是Firefox的一个插件,是可以进行脚本录制以及案例转换,所以Selenium IDE+Firebug会成为你日后写测试案例的两大助手(IE下可以使用Selenium Core+IEDevelperToolBar)。 由Command,Target,Value组成的表格就是脚本,每个脚本都是由一条一条的Action(行为)组成,而每个Action又由(Command,Target,Value)三者组成

脚本的录制及运行

当弹出IDE窗口后,我们就可以开始Selenium的脚本录制了,右上角有个红色的圆点,当它下按红色按钮会出现灰色的边框,就表示IDE正在进行脚本录制。开始录制,录制的时候,直接操作Firefox浏览器窗口就可以了,IDE会自动记录你的操作,录制完成后点击红色按钮,停止录制。 1.指的是你当前录制时的开始连接地址。

2.这里就是你的测试用例,刚开始录制好之后都是没有命名的。

3.脚本命令内容,command:方法关键字;Target:元素定位;Value:参数。

4.新建和修改脚本的地方。

5.日志输出。

6.右上角的红色圆,空心的时候表示的正在录制,实心表示录制结束。

2.3 示例

2.4 最佳实践

难点:最佳实践,超出于示例,应该归纳总结出积累的技巧。

3 同类技术对比

selenium与QTP对比

selenium优势:

1.支持多种平台,多种浏览器,多种编程语言

2.开源免费

3.代码小巧,简介,灵活

4,更容易和其他测试框架整合

selenium劣势:

1.没有QTP功能强大,不支持客户端类应用

2,QTP更容易入门,selenium学习成本比较高

3,没有基本化界面

QTP优势:

1.QTP是一个侧重于功能的回归自动化测试工具;提供了很多插件

2.QTP支持的脚本语言是VBS

3.拥有Object Spy,可以用来查看Run-time object和Test object属性和方法

4.Action是QTP组织测试用例的具体形式,拥有自己的DataTable和Object Repository,支持Input和output参数

QTP劣势:

1.QTP对系统的环境要求很高

2.QTP支持windows,没有selenium支持的浏览器多

难点:归纳比对项

参考资料