什么是selenium ?
• 一套软件工具,用来支持不同的自动化测试方法。
• 开源软件:可以根据需要来增加或者重构工具的某些功能
• 跨平台:linux windows mac
• 核心功能就是可以在多个浏览器上进行自动化测试
• 支持多种编程语言
• 目前已经被google、百度、腾讯等公司广泛使用
• 能够实现类似商业工具的大部分功能,并且还实现了商业工具不能支持的功能。
• 建议大家整体学习整套工具,将来好选择适合自己测试目的的测试工具。

 

Selenium 的发展历史
• 2004年在 ThoughtWorks 公司,一个叫做 Jason Huggins 为了减少手
工测试的工作,自己写了一套 JavaScript 的库,这套库可以进行页面交互,并且可以重复的在不同浏览器上进行重复的测试操作。
• 这套库后来变为了 Selenium Core,为Selenium Remote Control (RC)
和 Selenium IDE提供了坚实的核心基础能力。
• Selenium 的作用是划时代的,因为他允许你使用多种语言来控制浏览器。
• 思考:为何这样的工具在中国很难诞生? 诞生这样的工具需要具备什么样的个人素质和能力

• 浏览器的对 JS 的安全限制也对 Selenium 的发展带来了困扰,并且
Web 程序也越来越强大,特性也越来越多,都对 Selenium 的发展来说带来了不少困难。
• 2006年Google的工程师 Simon Stewart 开启了一个叫做 WebDriver 的项目,此项目可以直接让测试工具使用浏览器和操作系统本身提供方
法,借此来绕过 JS 环境的沙盒效应。WebDriver项目目标就是为了解决Selenium的痛处。
• 2008年北京奥运会年, Selenium 和 WebDriver这两个项目进行了合并,Selenium 2.0出现了,也就是大家常说的 WebDriver

 

 

Selenium 的工具套件
• Selenium 2 (aka. Selenium Webdriver)提供了极佳的测试工具特性,例如:关联的面向对象API
• Selenium 1 (aka. Selenium RC or Remote Control)支持更多的浏览器,支持更多的编程语言 (Java, JavaScript, Ruby,PHP,Python,Perl and C#)
• Selenium IDE(集成开发环境)是 Firefox 的插件,有图形界面来录制和回放脚本。此插件只是用来做原型工具,并不希望你使用这个工具来运行所有的测试脚本。
• Selenium -Grid 可以并行的在多个测试环境执行测试脚本,实现脚本的并发测试执行。缩短大量测试脚本集合的执行时间

 

 

选择你的 Selenium 工具
• 如果没有编程经验,建议选择Selenium IDE 来熟悉Selenium 的命令。使用 IDE 以快速的创建简单的测试脚本。
• 我们不建议你选择 Selenium IDE来执行自动化测试,建议使用编程语言使用 Selenium 1 或 2 来构建,可以根据个人爱好来进行选择。
• 建议先熟悉:Selenium IDE
• 再进一步熟练使用 Selenium-WebDriver API

 

 

 

Selenium IDE 和 Selenium 1 支持的浏览器和操作系统

 

 

 

WebDriver支持的浏览器
• IE 6-11
• FireFox 大部分版本
• Chrome
• Safari
• Opera
• Android 系统上的自带浏览器
• IOS 系统上的自带浏览器
• HtmlUnit 的无界面实现

 

 

Selenium 1 和 WebDriver 的关系
• WebDriver 是 Selenium 1 的升级版本,也可以理解为两个不同的产品
• WebDriver 相比 Selenium 1来说可以更好地绕过 JS 的限制、API也更易于使用。
• Selenium 1 比 WebDriver支持更多的浏览器
• WebDriver可以实现向下兼容 Selenium 1的脚本

 

 

 

Selenium 1.0 的工作原理

Selenium 1.0 组成:
(1)Selenium IDE:一个firefox的plug-in,可以录制和回放并保存test cases,测试用例为html格式
(2)Selenium Core:整个测试机制的核心部分,即有assertion(断言)机制的test suite runner。它由一些纯js代码组成,可以运行在windows/linux的不同browser上
(3)Selenium Remote Control(RC):一个代理与控制端, 可代替Seleniumcore/ Selenium IDE的client端(相当于通过编程来实现一切),是支持多语言的.

 

 

 

 

 

 

 

执行过程解析:

1 执行测试脚本,要启动某个浏览器
2 脚本把打开浏览器的命令发给RC(selenium remote control)
3 RC的launcher打开了指定的浏览,可能是ie,chrome,firefox。。。。
4 启动浏览器之后,访问脚本指定的网址
5 浏览器(设置的代理:RC)发出请求网页的请求,给你RC
5 RC收到请求的url(被测试对象的网址),RC去真正请求url对应的网页内容
6 被测试服务器返回所有的hmtl,css,js等内容给RC
7 RC拿到了之后,注入selenium Core
8 RC将注入selenium core的全部网页内容发给了浏览器
9 测试脚本中的其他测试逻辑,均通过操作selenium core来实现。

 

posted on 2019-11-11 11:25  腿短毛不多  阅读(277)  评论(0编辑  收藏  举报