Selenium 测试介绍
本文会从以下下几个方面介绍Selenium,相信大家阅读后会对Selenium有一个全新的认识。
为什么是Selenium
初探Selenium
Selenium组成
Selenium工具介绍
Selenium核心
Selenium IDE(Selenium开发环境)
Selenium RC(Selenium 远程控制)
Selenium Grid
Selenium WebDriver
Selenium 3
环境与技术
支持浏览器
支持的程序设计语言
支持的操作系统
支持测试框架
结论
如何开始学习Selenium
最好的学习方式是通过一系列免费的Selenium课程资料进行学习,读书、在家里通过例子练习、带着你的疑问去阅读各个章节,你也可以通过回答各个章节作者的疑问来增强对知识的理解等,这些都是可以快速帮你了解测试工具的方法。
Selenium介绍
Selenium不仅仅是一个工具,比其他工具有一个特点是其独立性,我们会详细研究每一个工具的组成部分,而且在每一部分都会举一些实际的例子供大家参考,我们开始吧
- 为什么是Selenium
当前自动化是一个流行趋势,有些手工测试场景往往是重复的,这些重复的手工测试场景就导致了自动化的需求
让我们一起看看自动化的几点好处:
支持重复执行测试用例
大型测试矩阵的辅助工具
支持并发操作
减少人为错误从而提高精度
节省时间和金钱
这些好处会给我们带来高回报和市场的快速运转
整个测试行业都在讨论和公认的自动化测试优点:
它是开源的
它拥有庞大的用户群和帮助社区。
它具有多浏览器和平台兼容性。
它拥有活跃的开发库
它支持多种语言实现。
- 初探Selenium
Selenium是最受欢迎的自动测试套件之一,它是基于Web的应用程序和支持各种浏览器平台的功能方面的自动化测试,再加上它是开源的,逐渐成为了测试专业人员中最被接受的工具之一。
Selenium 支持多浏览器、多种技术和多平台

- Selenium组成
Selenium不仅仅是一个工具或程序,而是一个包含多个测试工具的软件包,因此它被称为套件。每一个工具都能满足不同的测试和测试环境的要求
套件包由以下工具组成:
• Selenium集成开发环境(IDE)
• Selenium远程控制(RC)
• Selenium WebDriver
• Selenium Grid
Selenium RC称为Selenium 1,Selenium RC和WebDriver结合在一起,俗称Selenium 2

- Selenium工具介绍
Selenium核心
Selenium是由来自ThoughtWorks的工程师杰森•哈金斯不断努力的成果,他负责内部时间和费用应用程序的测试,他意识到需要一个自动化测试工具,以便在不影响质量和准确性的情况下摆脱重复的手动任务。
所以,他在2004年初建立了一个名为“ JavaScriptTestRunner ” 的JavaScript程序,它可以自动控制浏览器的操作,这些操作看起来与用户与浏览器通信的操作非常相似。
从此以后,杰森开始向广大受众演示该工具。最后,大家将该工具分类为开源类别,并将其作为其他基于Web的应用程序的可重用测试框架发展。
该工具后来被称为“ Selenium Core ”
Selenium IDE
Selenium IDE由Shinya Kasatani开发。在研究Selenium Core时,他意识到JavaScript代码可以扩展为一个集成开发环境(IDE),可以嵌入到Mozilla Firefox浏览器中。它可以在Firefox实例上记录和回放用户操作。后来,Selenium IDE在2006年成为了Selenium Package的一部分,并且为社区带来了巨大的价值和潜力。
Selenium IDE是Selenium Package中所有工具中最简单,最简单的。它的记录和回放功能使得学习起来非常简单,只需要熟悉任何编程语言。虽然有了几个优点,但是Selenium IDE附带了一些缺点,因此不适合在更高级的测试脚本中使用。
Selenium IDE的优点和缺点:

实际上,IDE的缺点实际上并不是Selenium的缺点。相反,它们只是限制IDE可以实现的功能。使用Selenium RC或WebDriver可以克服这些限制。
Selenium RC

Selenium RC是一个用Java编写的工具,允许用户使用他/她选择的任何编程语言构建测试脚本。因此,Selenium RC克服了 Selenium IDE或Core带来的各种缺点。
工作流程描述
• 用户使用所需的编程语言创建测试脚本。
• 对于每种编程语言,都有一个指定的客户端库。
• 客户端库将测试命令发送给selenium服务器。
• Selenium服务器解密并将测试命令转换为JavaScript命令并将它们发送到浏览器。
• 浏览器使用Selenium Core执行命令,并将结果发送回Selenium服务器
• Selenium服务器将测试结果提供给客户端库
在创建Selenium RC脚本之前,有一些先决条件:
• 编程语言:Java,C#,Python等
• 综合开发环境:Eclipse,Netbeans等
• 测试框架(可选):JUnit,TestNG等
Selenium RC的优点和缺点:
有关Selenium RC的优缺点,请参阅下图

Selenium Grid
selenium RC的出现,使测试者的工作变的非常简便,但是要满足在多个平台和浏览器上同时执行相同或不同测试脚本,实现分布式测试执行,所以Selenium Grid应用而生
Selenium Grid由Pat Lightbody引入,以满足同时在多个平台上执行测试套件的需求
Selenium WebDriver
Selenium WebDriver由ThoughtWorks的另一位工程师Simon Stewart在2006年创造的.WebDriver也是一个基于网络的测试工具,它与Selenium RC有细微差别。由于该工具的使用与客户端没有关系,直接与浏览器接触,不需要JavaScript。这导致了Selenium RC和WebDriver之间的兼容性分析。因此,开发了一种名为Selenium 2的功能更强大的自动化测试工具。
WebDriver是干净的,纯粹是面向对象的框架。它利用浏览器与自动化的本机兼容性,而无需使用任何外围设备实体。随着需求的增加,它已经获得了很大的知名度和用户群
Selenium WebDriver的优点和缺点

Selenium 3
Selenium 3是Selenium 2的高级版本。它是一个专注于移动和Web应用程序自动化的工具。WebDriver API已经扩展到满足移动应用程序测试的需求,该工具预计很快将在市场上推出。
随着Selenium套件中每个新工具的出现和增加,环境和技术变得更加兼容。以下是Selenium Tools支持的环境和技术的详尽列表。
5.环境与技术
支持的浏览器

支持的编程语言

支持的操作系统

支持的测试框架

6.结论
在本章中,我们尝试让您熟悉Selenium套件,描述其各种组件,用法以及它们之间的优势
以下是本文的关键。
• Selenium是一套多种自动化测试工具,每种工具都可满足不同的测试需求。
• 所有这些工具都属于开源类别,并且仅支持基于Web的测试。
• Selenium套件由4个基本组件组成; Selenium IDE,Selenium RC,WebDriver和Selenium Grid。
• 用户应该明智地选择合适的Selenium工具来满足他/她的需求。
• Selenium IDE作为Firefox插件发布,更易于安装和使用。用户不需要拥有编程知识。Selenium IDE是小白的理想工具。
• Selenium RC是一个允许用户使用所需编程语言创建测试脚本的服务器。它还允许在大量浏览器中执行测试脚本。
• Selenium Grid通过在不同平台和浏览器上同时执行测试脚本来实现Selenium RC的附加功能,从而实现主从架构。
• WebDriver是一个完全不同的工具,与Selenium RC相比具有各种优势。Selenium RC和WebDriver的融合也称为Selenium 2.WebDriver直接与Web浏览器通信,使本机兼容并进行自动化。
• Selenium 3更侧重于进行移动测试。
Selenium 测试介绍的更多相关文章
- python selenium自动化测试之路(1)--分层测试概念、selenium工具介绍
1.分层自动化测试概念 传统的自动化市场更关注产品UI层的自动化测试,而分层的自动化测试倡导产品开发的不同阶段都需要自动化测试 大多公司与研发团队其实是忽略了单元测试与集成测试阶段的自动化测试工作,所 ...
- Selenium测试规划
开源工具经过近几年的发展,已经出现了一大批成熟的可应用到实际项目中的产品,其中,在WEB自动化测试领域,Selenium支持广泛的浏览器和脚本开发语言,高效的执行效率,获得广泛的应用. 本课程结合Se ...
- python:selenium测试登录在chrome中闪退
问题描述:使用selenium.webdriver时测试网页,进行自动登录测试总是在登录成功时闪退.使用指定驱动器位置的方式chrome也会闪退 1.正常使用chrome驱动打开一个网页,正常访问 f ...
- Web测试介绍2一 安全测试
安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程. 主要安全需求包括: (i) 认证 Authent ...
- selenium测试框架使用xml作为对象库
之前已经写过一篇: selenium测试框架篇,页面对象和元素对象的管理 上次使用的excel作为Locator对象管理,由于excel处理不够方便,有以下缺点: 不能实现分page 加载Locato ...
- VS2010+Selenium测试脚本设计
VS2010+Selenium测试脚本设计 http://www.docin.com/p-755903506.html
- Jenkins 十二: 集成 selenium 测试
我的selenium采用的是python版本. 其实 selenium java版本也类似. 1. 在jenkins里面新建selenium 测试项目. 源码管理采用 “Subversion”,输入 ...
- Selenium测试专项一班隆重开班
Selenium测试专项一班隆重开班 应广大测试技术人员要求,以及企业技术需求.Selenium提前一周开课了,只针对合作的每家企业提供1-2个参训名额.预计培训60人次.但报名人数却远远超出我们预期 ...
- Selenium测试专项二班隆重开班
Selenium测试专项二班隆重开班 应广大测试技术人员要求,以及企业技术需求.Selenium提前一周开课了,只针对合作的每家企业提供1-2个参训名额.预计培训60人次.但报名人数却远远超出我们预期 ...
- Selenium测试专项三班隆重开班
Selenium测试专项三班隆重开班 应广大测试技术人员要求,以及企业技术需求.Selenium提前一周开课了,只针对合作的每家企业提供1-2个参训名额.预计培训60人次.但报名人数却远远超出我们预期 ...
随机推荐
- 解决SSH免密登录配置成功后不生效问题
今天配置SSH免密登录时,使用 ssh-keygen 命令成功生成了公钥和私钥,并且也执行了 ssh-copy-id 机器地址 将公钥添加到了服务器的authorized_keys文件中.紧接着用 s ...
- MybatisPlusException: can not find lambda cache for this entity[]异常解决
文章目录 场景说明 解决方案 场景说明 简单来说,我们系统中许多数据都是树状结构的,所以我定义了一个实体类父类BaseTreePO,并且想封装一个通用的树状对象的Service类,部分代码如下: ...
- Qt编写ffmpeg本地摄像头显示(16路本地摄像头占用3.2%CPU)
一.前言 内核ffmpeg除了支持本地文件.网络文件.各种视频流播放以外,还支持打开本地摄像头,和正常的解析流程一致,唯一的区别就是在avformat_open_input第三个参数传入个AVInpu ...
- 关于Qt程序中动态和静态的几点总结
在Qt程序中,分动态库版本的Qt和静态库版本的Qt. 官方默认提供的二进制包就是动态库版本的Qt,如果自行编译则编译的时候对应参数 -shared. 静态库版本的Qt需要自行编译,编译的时候对应参数 ...
- Qt编写安防视频监控系统47-基本设置
一.前言 一个系统中肯定有不少的配置参数存储在配置文件中,配置文件可以是ini文件,也可以是json文件,还可以是自定义格式的文本文件,本人比较推荐ini文件,读写节点极其方便,支持中文内容,各种Qt ...
- Qt编写安防视频监控系统37-onvif预置位
一.前言 预置位在视频监控系统中是不可或缺的存在,响应预置位功能的前提是要带预置位的云台球机,有些普通的云台球机其实不带预置位的,这个要检查清楚,硬件上不支持该功能的,你再怎么点也没反应.在这个视频监 ...
- 报错test_features2d.cpp:51:10: fatal error: features2d/test/test_detectors_regression.impl.hpp: 没有那个文件
问题描述: ubuntu18.04安装opencv4.5.1+contrib 报错test_features2d.cpp:51:10: fatal error: features2d/test/tes ...
- 阿里IM技术分享(六):闲鱼亿级IM消息系统的离线推送到达率优化
本文由阿里闲鱼技术团队逸昂分享,原题"消息链路优化之弱感知链路优化",有修订和改动,感谢作者的分享. 1.引言 闲鱼的IM消息系统作为买家与卖家的沟通工具,增进理解.促进信任,对闲 ...
- AI应用平台搭建之旅(上) - 框架篇(附:AICon大会阿里国际Agent应用平台分享)
前言 LangEngine内源项目发起于阿里巴巴集团内部组织,LangEngine是类似LLM应用开发框架LangChain的纯Java版本.该框架现已正式对外开源:https://github.co ...
- 深入理解ASP.NET Core 管道的工作原理
在 .NET Core 中,管道(Pipeline)是处理 HTTP 请求和响应的中间件组件的有序集合.每个中间件组件都可以对请求进行处理,并将其传递给下一个中间件组件,直到请求到达最终的处理程序.管 ...