一文详解:自动化测试工具——Selenium

2353 篇文章 33 订阅
1785 篇文章 17 订阅

前言

Selenium是一个用于Web应用程序测试的工具。是一个开源的Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium可以直接运行在浏览器上,它支持所有主流的浏览器,支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。

图片

Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。

Selenium 自己不带浏览器,不支持浏览器的功能,它需要与上面提到的第三方浏览器结合在一起才能使用。但是我们有时候需要让它内嵌在代码中运行,所以我们可以用一个叫 PhantomJS 的工具代替真实的浏览器。

01 Selenium的几个特点

1.开源软件:源代码开放可以根据需要来增加工具的某些功能

2.跨平台,多平台支持:linux 、windows 、mac

3.支持多浏览器:Firefox、Internet Explorer、Safari、Opera、Chrome、Edge

4.核心功能:就是可以在多个浏览器上进行自动化测试

5.可以搭配多种编程语言使用:Java、Python、C#、JavaScript、Ruby等

6.成熟稳定:目前已经被google , 百度, 腾讯等公司广泛使用

7.支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能

8.功能强大:能够实现类似商业工具的大部分功能,因为开源性,可实现定制化功能

Selenium的主要功能包括:

测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上;测试系统功能——创建回归测试检验软件功能和用户需求;支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。

①框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。

②使浏览器兼容性测试自动化成为可能,尽管在不同的浏览器上依然有细微的差别。

③使用简单,可使用Java,Python等多种语言编写用例脚本。

02 Selenium的组成部分

图片

1. Selenium RC

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

RC的流程为:

1.测试用例通过Http请求建立与 Selenium RC Server 的连接

2.Selenium RC Server 驱动一个浏览器,把Selenium Core加载入浏览器页面当中,并把浏览器的代理设置为Selenium Server的Http Proxy

3.执行用例向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core执行操作浏览器的动作并注入 JS 代码

4.Selenium Core执行接收到的指令并操作

5.当浏览器收到新的请求时,发送http请求

6.Selenium Server接收到浏览器发送的Http请求后,自己重组Http请求,获取对应的Web页面

7.Selenium Server中的Http Proxy把接收到的页面返回给浏览器

2. Selenium IDE

selenium IDE 是 Selenium Suite下的开源Web自动化测试工具,该工具是一个用于构建脚本的初级工具,其实是FireFox的一个插件,拥有一个易于使用的界面。它拥有记录功能,能够记录用户执行的操作,并可以导出为可重复使用的脚本。它无需使用任何编程逻辑来编写测试基本,而只需记录与浏览器的交互以创建测试用例。之后,可以使用播放选项重新运行测试用例。如果没有编程经验,可以通过Selenium IDE来快速熟悉Selenium的命令。

3. Selenium Grid

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

1.并行执行

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

3.灵活添加变动测试机

4. Selenium WebDriver

selenium 2.0 = selenium 1.0 + WebDriver

在selenium 2.0 中主推的是WebDriver ,WebDriver 是selenium RC 的替代品,因为 selenium 为了向下兼容性,所以selenium RC 并没有彻底抛弃,如果你使用selenium开发一个新自动化测试项目,强烈推荐使用WebDriver 。

03 Selenium RC与WebDriver的主要区别

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

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

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

使用webdriver需要给浏览器安装驱动,chrome浏览器驱动是chromedriver,IE浏览器驱动是IEDriver,firefox浏览器驱动是geckodriver,其中浏览器与驱动有对应的版本要求。

selenium2.0以上支持多语言的测试脚本编写,因为使用webdriver,webdriver是基于JSON Wire Protocol协议,JSON Wire protocol是在http协议基础上,对http请求及相应的body部分的数据的进一步规范。WebDriver中请求报文和响应报文数据都是以JSON的形式存在并进行传送的,所以在Client和Server之间,只要是基于JSON Wire Protocol来传递数据,就与具体的脚本语言无关了,这样同一个浏览器的驱动就即可以处理Java语言的脚本,也可以处理Python语言的脚本。

好啦,今天的自动化测试工具Selenium就分享到这里了,希望可以帮助到大家更好地认识到这个工具!


资源分享

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值