自动化测试工具——Selenium详解

2023-05-16

目录

前言

Selenium的几个特点

seleniun组成部分

selenium RC

selenium IDE

selenium Grid

selenium webDriver

那么selenium RC 与webdriver 主要有什么区别呢?

结语

如果下面这些资料用得到的话可以直接备注777拿走:


前言

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


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

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

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等不同语言的测试脚本。

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

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

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

seleniun组成部分

selenium RC

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

RC的流程为:

测试用例通过Http请求建立与 selenium-RC server 的连接

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

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

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

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

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

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

selenium IDE

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

selenium Grid

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

1.并行执行。

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

3.灵活添加变动测试机。

selenium webDriver

selenium 2.0 = selenium 1.0 + WebDriver

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

那么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语言的脚本。

结语

这篇贴子到这里就结束了,最后,希望看这篇帖子的朋友能够有所收获。

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

感谢每一个认真阅读我文章的人!!!

如果下面这些资料用得到的话可以直接备注777拿走:

1、自学开发或者测试必备的完整项目源码与环境

2、测试工作中所有模板(测试计划、测试用例、测试报告等)

3、软件测试经典面试题

4、Python/Java自动化测试实战.pdf

5、Jmeter/postman接口测试全套视频获取

6、Python学习路线图

重点:配套学习资料和视频教学

那么在这里我也精心准备了上述大纲的详细资料包含:电子书,简历模板,各种工作模板,面试宝典,自学项目等。需要的朋友和我在评论区互动交流吧!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自动化测试工具——Selenium详解 的相关文章

随机推荐

  • FreeRTOS学习笔记——(2)官方源码、源码结构、编程规范

    系列文章目录 FreeRTOS学习笔记 系列文章目录 文章目录 系列文章目录一 官方源码1 源码2 FreeRTOS 目录结构 二 数据类型及编程规范1 数据类型2 变量名3 函数名3 宏的名 一 官方源码 1 源码 链接 xff1a ht
  • FreeRTOS学习笔记——(4)同步与互斥之队列

    系列文章目录 FreeRTOS学习笔记 系列文章目录 文章目录 系列文章目录同步与互斥队列一 队列函数1 创建2 复位3 删除4 写队列5 读队列6 查询7 覆盖 偷看 二 队列的应用1 串口发送字符串2 分辨数据源 xff08 多个数据来
  • FreeRTOS学习笔记—— 系列文章目录

    FreeRTOS学习笔记 系列文章目录 FreeRTOS学习笔记 xff08 1 xff09 ARM架构调用标准AAPCS 现场的保存与恢复 FreeRTOS学习笔记 xff08 2 xff09 官方源码 源码结构 编程规范 FreeRTO
  • FreeRTOS学习笔记——(5)信号量

    系列文章目录 FreeRTOS学习笔记 系列文章目录 文章目录 系列文章目录信号量一 信号量函数1 创建2 删除3 give take 函数 二 信号量的应用1 二进制信号量 xff08 防止数据丢失 xff09 2 计数型信号量 信号量
  • shell脚本自动登录远程主机执行脚本或命令

    usr bin expect set WORK PATH 34 root 34 set hostname 34 10 239 227 224 34 spawn ssh root 64 hostname expect 34 yes no 34
  • 获得鼠标离开消息。

    要知道什么时候一个鼠标指针进入一个窗口或是在它上面移动是非常简单的 因为窗口会接收到WM MOUSEMOVE消息 在Windows NT 4 0中初次亮相的 TrackMouseEvent函数使得确定什么时刻鼠标指针离开窗口或者是静止悬于窗
  • Spring中AOP的使用以及举例

    1 AOP的简介 1 1 什么是AOP AOP Aspect Oriented Programming 面向切面编程 xff0c 一种编程范式 xff0c 指导开发者如何组织程序结构 OOP Object Oriented Programm
  • openstack创建云主机实例错误

    求大佬们帮忙看看是什么问题
  • RTOS任务调度过程(上下文切换)

    RTOS任务调度过程 xff08 上下文切换 xff09 解析 xff1a RTOS任务调度的机制是基于内核异常机制的 xff0c 即每产生一次调度就会产生一次内核异常 xff0c 那么 xff0c 要了解RTOS的任务调度机制需要先明白内
  • runtime-core.esm-bundler.js:40 [Vue warn]: Vue received a Component which was made a reactive object

    vue3 Vue warn 96 96 96 runtime core esm bundler js 40 Vue warn Vue received a Component which was made a reactive object
  • Prometheus监控k8s

    文章目录 前情提要监控k8s节点监控coreDns服务监控Ingress nginx监控k8s state metrics修改Prometheus的configmap并重载PrometheusGrafana展示监控的数据节点基础信息监控co
  • JDK更换IDEA如何修改

    一 打开idea设置 1 点击file里面的settings 二 取消默认javac编译 2 然后点开 Build Execution Deployment找到里面的compiler xff0c 再点开Java compiler 取消勾选
  • VUE父子传值报错问题

    Avoid mutating a prop directly since the value will be overwritten whenever the parent component re renders Instead use
  • Postman简介及接口测试流程(小菜鸟攻略)

    目录 前言 一 常见接口 二 前端和后端 三 什么是接口测试 四 接口组成 1 接口说明 2 调用url 3 请求方法 xff08 get post xff09 4 请求参数 参数类型 请求参数说明 5 返回参数说明 五 为什么要做接口测试
  • k8s:Pod 基础概念

    目录 一 资源限制 xff0c 二 Pod 的两种使用方式 三 Pod 资源共享 四 底层容器Pause 4 1 Pause共享资源 4 1 1 网络 4 1 2 存储 4 1 3 小结 4 2 Pause主要功能 4 3 Pod 与 Pa
  • Docker-dockerfile

    目录 一 dockerfile概念 二 Docker镜像创建 1 基于现有镜像创建 2 基于本地模板创建 3 基于dockerfile创建 3 1 dockerfile结构 3 2 构建镜像命令 三 dockerfile操作指令 1 ENT
  • windows/linux 下iozone参数详解

    iozone是一个文件系统的benchmark工具 xff0c 可以测试不同的操作系统中文件系统的读写性能 可以测试 Read write re read re write read backwards read strided fread
  • Windows认证Kerberos访问HDFS

    一 Windows认证Kerberos访问HDFS 1 官网下载地址 xff1a http web mit edu kerberos dist 2 安装步骤 默认安装地址 C Program Files MIT Kerberos C Pro
  • 2022(招聘季)linux面试高频题

    大家好 xff0c 今天给大家分享一下2022最新最全的linux面试高频题 xff0c 希望你们喜欢 linux运维工程师在面试的时候经常会被问到各种问题 xff0c 接下来我也会根据自己的经验将面试题整理下来供大家参考 有不同见解的欢迎
  • 自动化测试工具——Selenium详解

    目录 前言 Selenium的几个特点 seleniun组成部分 selenium RC selenium IDE selenium Grid selenium webDriver 那么selenium RC 与webdriver 主要有什