自动化测试工具——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详解 的相关文章

随机推荐

  • 解决resultMap报错

    发现问题是使用resultMap来指定类型封装结果的时候出现错误 错误如下 首先排除代码层面的错误 点开错误也没有发现原因 经过查找原来是数据库的字段名和实体的实体名不一致 resultMap则不能自动封装数据 使用reultType 也并
  • Linux防火墙——iptables以及firewalld的使用介绍

    本文基于Linux上CentOS 7版本配合iptables iptables services firewalld等服务进行演示 一 防火墙概念以及Netfilter机制介绍 1 概念 2 防火墙两大类型 3 Netfilter功能 二
  • AOP是什么?如何使用AOP?

    AOP 基本概念是什么 xff1f 什么是AOP xff1f AOP 就是面向切面编程 xff0c 或者叫面向方面编程 xff0c 或者开玩笑的说叫面向方便面编程 在软件业 xff0c AOP为Aspect Oriented Program
  • 情人节浪漫表白,程序员的专属浪漫-----烟花表白

    谁说程序员不懂浪漫 xff1f for birth death love 43 43 do love 43 43 while death 可执行的exe文件我放在文章后面了 xff01 直接双击点开就可以使用了 最终效果 xff1a 运行环
  • 养老产业政策链接

    江西省养老政策文件 xff1a 江西省养老服务条例 http mzw ganzhou gov cn gzsmzjy c103172 202201 d238525b35bb47b49b3de312c9b63a60 shtml 南昌市养老服务体
  • 生产消费模型详解以及代码实现(Java)

    生产消费模型的由来以及定义 xff1a 生产消费者模型是程序设计当中一种非常常见的设计模式 xff0c 被广泛应用于消息队列以及其他的一些场景当中 xff0c xff0c 生产消费模型其中包括三者 xff08 生产者 xff0c 消费者 x
  • java业务代码发送http请求(Post方式:请求参数为JSON格式;Get方式)

    实际开发中 xff0c 可能需要发送http请求到第三方服务获取数据 xff0c 于是就有以下应用 xff1a 依赖 xff1a lt dependency gt lt groupId gt com alibaba lt groupId g
  • IDEA打开终端报错Cannot open Local Terminal命令行功能

    项目场景 xff1a idea项目中不能打开命令行功能 IDEA打开终端报错Cannot open Local Terminal 意思是打开命令行发生错误 idea上配置shell终端 xff0c 命令行页面 问题描述 打开IDEA后 xf
  • 【Linux系统无法连接网络,修改IP地址和网关,ping解决主机不可达的情况】

    文章目录 配置网络 修改状态配置网络 IP地址配置VirtualBox网络修改IP地址修改DNS重启服务的方法修改netplan文件的配置 Ubuntu出现无法连接网络 xff0c ping公网IP地址显示主机不可达 xff0c 打开Fir
  • @vue/eslint-config-standard@6.1.0 from root project

    什么都安装好了 xff0c 但是每次npm i 都报错 xff0c 后来查了资料发现是自己的npm 版本太高 xff0c 切换一下就好了 如下代码 运行后再重新 npm i npm install npm 64 6 14 15 g
  • C++之生产者和消费者模型分析(条件变量)

    先看一下生产者消费者模型 概述 xff1a 生产者把需要处理的数据放到缓存队列中并向消费者发出信号 xff0c 然后消费者把数据拿出来处理 xff0c 这里生产者可以是单线程或者多线程 xff0c 而消费者一般是多线程 xff0c 消费者线
  • 小米(MIUI)ROOT线刷教程

    一 解锁BL锁 1 不论是root还是刷入第三方或外版的rom都需要解锁bl锁 这是最重要的一点 首先打开手机设置 xff0c 登录或注册你的小米账户 xff0c 点击 我的设备 下拉找到 全部参数 进入找到 MIUI版本 连续点击7下打开
  • SpringMVC处理请求流程

    1 用户先发送请求 xff0c 请求被springMvc前端控制器捕获 2 前端控制器对请求URL解析获取请求URL xff0c 根据URL xff0c 调用HandlerMapping 3 前端控制器获得返回的HandlerExecuti
  • C语言(选择结构程序设计)4道例题答案

    1 xff0c include lt stdio h gt include lt math h gt int main float x printf 34 输入x的值是 xff1a n 34 scanf 34 f 34 amp x if x
  • C++ 图论之求图的连通块数量

    1 连通块的定义 块内每个点之间都有一条路径 2 思路 我们可以用dfs深度优先搜索 xff1a 从一个点出发遍历图将遍历过的点全部标记 xff0c 标记过的点则不会再遍历到 再写一个循环枚举所有的点 xff08 枚举起点 xff09 xf
  • 我花1200大洋所学的“元学习课”究竟学了些什么?

    我花1200大洋所学的 元学习课 究竟学了些什么 xff1f 讲课的是台湾的一位大牛名叫Xdite xff0c 以及亿万富豪李笑来 能够跟牛人学习怎么学习我想应该不会有错吧 xff0c 对我来说这次做的应该是一次正确的决定 xff0c 所谓
  • Javaer都在用的Java后端面试笔记, 涵盖90%的主流技术,啃完分分钟拿下大厂offer!!

    到底该如何准备高级开发 架构师级别的面试 xff1f 为了帮助有需要的朋友在金九银十面试 xff0c 最近整理了一份面试知识点笔记复习资料 xff0c 内容包含 xff1a JVM xff0c JAVA多线程并发 xff0c Spring
  • 八种排序算法和耗时

    读取文件big a txt的数据 xff08 包含500000个随机数 xff0c 1 5000000 xff09 xff0c 利用插入排序 希尔排序 xff0c 冒泡排序 快速排序 选择排序 堆排序 xff0c 归并排序 基数排序8种排序
  • Centos7.x升级内核

    文章目录 引言安装elrepo并修改为默认从清华源下载查看可用内核安装包 更新内核卸载多余的内核安装稍微没那么新版本的内核 引言 默认情况下Centos7 9的内核是3 10 xff0c 咱们给他升级一下 span class token
  • 自动化测试工具——Selenium详解

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