自动化测试工具:selenium

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快

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

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/966408.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UIAbility 生命周期方法

生命周期流程图 UIAbility的生命周期官方文档地址https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/uiability-lifecycle-V13 1. onCreate(want: Want, launchParam: LaunchParam) 触发时机:Ability首次创建时 作用:初始化核心资源…

C语言:函数栈帧的创建和销毁

目录 1.什么是函数栈帧2.理解函数栈帧能解决什么问题3.函数栈帧的创建和销毁的过程解析3.1 什么是栈3.2 认识相关寄存器和汇编指令3.3 解析函数栈帧的创建和销毁过程3.3.1 准备环境3.3.2 函数的调用堆栈3.3.3 转到反汇编3.3.4 函数栈帧的创建和销毁 1.什么是函数栈帧 在写C语言…

开箱即用的.NET MAUI组件库 V-Control 发布了!

之前写过挺多的MAUI Sample,其中有很多代码可以打包成组件,当组件完善到一定程度,我会把控件封装起来放到控件库中。 今天,在这个仓库建立一年零八个月后,我觉得可以考虑将其作为开源库发布。 有很多网友在观望.NET …

Qt:项目文件解析

目录 QWidget基础项目文件解析 .pro文件解析 widget.h文件解析 widget.cpp文件解析 widget.ui文件解析 main.cpp文件解析 认识对象模型 窗口坐标系 QWidget基础项目文件解析 .pro文件解析 工程新建好之后,在工程目录列表中有⼀个后缀为 ".pro" …

装备库室管控系统|支持国产化、自主研发

装备库室管控系统(DW-S306)利用现有内部网络,部署综合管理系统,形成一套上下统一、功能完善的管理体系,建设一个功能完善、规范有序为目标,实现可视化监管、数字化军械管理、安全监管于一体的物联网信息化管…

软件测试就业

文章目录 2.6 初识一、软件测试理论二、软件的生产过程三、软件测试概述四、软件测试目的五、软件开发与软件测试的区别?六、学习内容 2.7 理解一、软件测试的定义二、软件测试的生命周期三、软件测试的原则四、软件测试分类五、软件的开发与测试模型1.软件开发模型…

【Java基础】序列化、反序列化和不可变类

Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 🌱🌱个人主页:奋斗的明志 🌱🌱所属专栏:Java基础面经 📚本系列文章为个…

upx压缩工具使用说明

UPX(Ultimate Packer for Executables)是一款开源的可执行文件打包工具,能够将可执行文件(如Windows的.exe文件或Linux的ELF文件)进行压缩,以减少文件大小,并增加反逆向工程的难度。 下载相关安…

DeepSeek-R1 32B Windows+docker本地部署

最近国产大模型DeepSeek兴起,本地部署了一套deepseek同时集成Open WebUI界面,给大家出一期教程。 软件:Ollama、docker、Open WebUI 一、用Ollama下载模型 首先我们需要安装Ollama,它可以在本地运行和管理大模型。 到Ollama官网 https://ol…

活动预告 |【Part 2】Microsoft 安全在线技术公开课:通过扩展检测和响应抵御威胁

课程介绍 通过 Microsoft Learn 免费参加 Microsoft 安全在线技术公开课,掌握创造新机遇所需的技能,加快对 Microsoft Cloud 技术的了解。参加我们举办的“通过扩展检测和响应抵御威胁”技术公开课活动,了解如何更好地在 Microsoft 365 Defen…

(2024|CVPR,MLLM 幻觉)OPERA:通过过度信任惩罚和回顾分配缓解多模态大型语言模型中的幻觉

OPERA: Alleviating Hallucination in Multi-Modal Large Language Models via Over-Trust Penalty and Retrospection-Allocation 目录 1. 引言 2. 相关研究 2.1 多模态大语言模型 2.2 LLM 的幻觉与解决方案 2.3. 语言模型中的解码策略 3. 方法 3.1 MLLM 生成过程 3.2…

激活函数篇 03 —— ReLU、LeakyReLU、ELU

本篇文章收录于专栏【机器学习】 以下是激活函数系列的相关的所有内容: 一文搞懂激活函数在神经网络中的关键作用 逻辑回归:Sigmoid函数在分类问题中的应用 整流线性单位函数(Rectified Linear Unit, ReLU),又称修正线性单元&a…

C++20新特性

作者:billy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 前言 C20 是 C 标准中的一个重要版本,引入了许多新特性和改进,包括模块(Modules)、协程…

新增md、html压缩文档上传,开放接口访问密钥改为多个,zyplayer-doc 2.4.7 发布啦!

zyplayer-doc是一款适合企业和个人使用的WIKI知识库管理工具,支持在线编辑富文本、Markdown、表格、Office文档、API接口、思维导图、Drawio以及任意的文本文件,专为私有化部署而设计,最大程度上保证企业或个人的数据安全,支持以内…

ES管理器焕新升级:紫色银狼主题来袭!

ES管理器(安卓版)迎来了一次令人眼前一亮的改头换面!此次更新最直观的变化集中在UI界面设计上。开发团队大胆突破,摒弃了以往稍显平庸的风格,引入了极具个性的全新主题——以热门游戏《崩坏:星穹铁道》中的…

SwiftUI 学习 Toggle 遇到的问题

最近学习SwifyUI,心中存疑,于是记录这些问题 List {Toggle(isOn: $showFavoriteOnly) {Text("Favorite only")}ForEach(filterLandmarks) { landmark in// 在 NavigationLink 中,label 是用于指定导航链接显示内容的部分Navigati…

HarmonyOS:电话号码格式化

一、使用场景 不同国家和地区的电话号码在号码位数、组合方式、呈现方式等都存在差异。同时,在不同环境和条件下,电话号码可能存在不同的拨打方式和号码格式。例如,在中国境内跨地区打电话,通常需要先输入“0”,再拨打…

网络分析工具—WireShark的安装及使用

Wireshark 是一个广泛使用的网络协议分析工具,常被网络管理员、开发人员和安全专家用来捕获和分析网络数据包。它支持多种网络协议,能够帮助用户深入理解网络流量、诊断网络问题以及进行安全分析。 Wireshark 的主要功能 数据包捕获与分析: …

优惠券平台(十七):实现用户查询/取消优惠券预约提醒功能

业务背景 当用户预约了一个或多个优惠券抢购提醒后,如果不再需要提醒,可以取消预约通知。不过,虽然用户可以取消提醒,但已经发送到 MQ 的消息不会被撤回,消费者在时间点到达时依然会收到消息。此时,我们不…

10vue3实战-----实现登录的基本功能

10vue3实战-----实现登录的基本功能 1.基本页面的搭建2.账号登录的验证规则配置3.点击登录按钮4.表单的校验5.账号的登录逻辑和登录状态保存6.定义IAccount对象类型 1.基本页面的搭建 大概需要搭建成这样子的页面: 具体的搭建界面就不多讲。各个项目都有自己的登录界面&#…