你想知道的测试自动化-概览篇

news2024/9/27 23:30:14

  

测试自动化概念整理

协议

JSON Wire Protocol Specification

JSON Wire 协议

现已过时的开源协议的端点和有效负载,它是W3C webdriver的先驱。

devtool协议

Chrome DevTools 协议允许使用工具来检测、检查、调试和分析 Chromium、Chrome 和其他基于 Blink 的浏览器。 许多现有项目目前使用该协议。 Chrome DevTools 使用此协议,团队维护其 API。

webdriver协议

www.w3.org/TR/webdrive…

WebDriver 是一个远程控制接口,可以实现用户代理的自省和控制。它提供了一种平台和语言中立的有线协议,作为进程外程序远程指示 Web 浏览器行为的一种方式。

提供了一组接口来发现和操作 Web 文档中的 DOM 元素并控制用户代理的行为。它的主要目的是允许 Web 作者编写测试,从单独的控制过程中自动化用户代理,但也可以以允许浏览器内脚本控制(可能是单独的)浏览器的方式使用。

实现整理

puppeteer

当您安装 Puppeteer 时,它会下载最新版本的 Chromium(~170MB Mac、~282MB Linux、~280MB Win),该版本保证可以与 API 一起使用。要跳过下载、下载到其他路径或下载其他浏览器,请参阅环境变量。

puppeteer-core

从 1.7.0 版本开始,发布了这个puppeteer-core包,一个默认不下载任何浏览器的 Puppeteer 版本。

selenium簇

Selenium 是一个涵盖一系列工具和库的项目,这些工具和库支持和支持 Web 浏览器的自动化。

它提供了模拟用户与浏览器交互的扩展、用于扩展浏览器分配的分发服务器,以及用于实现 W3C WebDriver 规范的基础架构 ,允许您为所有主要 Web 浏览器编写可互换的代码。

Selenium WebDriver

如果您想创建健壮的、基于浏览器的回归自动化套件和测试、在许多环境中扩展和分发脚本,那么您需要使用 Selenium WebDriver,它是一组特定于语言的绑定来驱动浏览器——这就是它的本意 驱动。

有好几个版本:

  1. 翻译成js,侵入
  2. Selenium 2 是使用 WebDriver 代码实现的 Selenium 1 的重写。 不进行代码侵入操作
  3. Selenium 3 是没有 Selenium RC 代码的 WebDriver 的实现。此后它已被 Selenium 4 取代,后者实现了 W3C WebDriver 规范。
  4. 实现W3C WebDriver 规范
selenium-standalone

A Node.js based package and CLI library for launching Selenium with WebDrivers support (Chrome, Firefox, IE, Edge)

webdriveio 框架

WebdriverIO 是一个渐进式自动化框架,旨在自动化现代 Web 和移动应用程序。它简化了与您的应用程序的交互,并提供了一组插件来帮助您创建可扩展、健壮和稳定的测试套件。

它被设计为:

  • 可扩展- 添加辅助函数,或更复杂的集合和现有命令的组合非常简单非常有用
  • 兼容- WebdriverIO 可以在WebDriver 协议上运行,用于真正的跨浏览器测试,也可以在Chrome DevTools 协议上运行,用于使用Puppeteer实现基于 Chromium 的自动化。
  • 功能丰富- 种类繁多的内置和社区插件使您可以轻松集成扩展您的设置以满足您的要求。

可供多个服务进行集成,如:

  • Appium Service
  • Selenium Standalone Service
  • Devtools Service
  • Browserstack Service
  • ChromeDriver Service
  • ....
Appium

Appium 是一个开源测试自动化框架,用于原生、 混合和移动 Web 应用程序。 它使用 WebDriver 协议驱动 iOS、Android 和 Windows 应用程序。

Appium 旨在自动化任何语言和任何测试框架的任何移动应用程序,并从测试代码中完全访问后端 API 和 DB。使用上述所有编程语言,甚至更多(使用 Selenium WebDriver API 和特定于语言的客户端库),使用您最喜欢的开发工具编写测试。

简单来讲:就是一个中转服务器,接收命令,并转换成目标的对应指令

javascript相关的测试框架

mocha

mochajs.org/

用于 Node.js 和浏览器的简单、灵活、有趣的 JavaScript 测试框架

Jest

比较集成的JavaScript 测试框架


如果你想学习自动化测试,那么下面这套视频应该会帮到你很多 

如何逼自己1个月学完自动化测试,学完即就业,小白也能信手拈来,拿走不谢,允许白嫖....

最后我这里给你们分享一下我所积累和整理的一些文档和学习资料,有需要直接领取就可以了

以上内容,对于软件测试的朋友来说应该是最全面最完整的备战仓库了,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

轻松驾驭Hive数仓,数据分析从未如此简单!

1 前言 先通过SparkSession read API从分布式文件系统创建DataFrame 然后,创建临时表并使用SQL或直接使用DataFrame API,进行数据转换、过滤、聚合等操作 最后,再用SparkSession的write API把计算结果写回分布式文件系统 直接与文件系统交…

MyLife - Docker安装Redis

Docker安装Redis 个人觉得像reids之类的基础设施在线上环境直接物理机安装使用可能会好些。但是在开发测试环境用docker容器还是比较方便的。这里学习下docker安装redis使用。 1. Redis 镜像库地址 Redis 镜像库地址:https://hub.docker.com/_/redis/tags 这里是官方…

四向穿梭车智能机器人|HEGERLS托盘式四向穿梭车系统的换轨技术和故障恢复功能

随着物流行业的迅猛发展,托盘四向穿梭式立体库因其在流通仓储体系中所具有的高效密集存储功能优势、运作成本优势与系统化智能化管理优势,已发展为仓储物流的主流形式之一。托盘四向穿梭车立体仓库有全自动和半自动两种工作模式,大大提高了货…

java基础 异常

异常概述: try{ } catch{ }: package daysreplace;import com.sun.jdi.IntegerValue;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.…

pymoo包NSGA2算法实现多目标遗传算法调参详细说明

pymoo包NSGA2算法实现多目标遗传算法调参详细说明 1.定义待求解问题1.0定义问题的参数说明1.0.0 求解问题必须设置在def _evaluate(self, x, out, *args, **kwargs)函数中1.0.1 问题必须用 out["F"] [f1, f2] 包裹起来1.0.2 约束条件也必须用 out["G"] […

Oracle 简介与 Docker Compose部署

最近,我翻阅了在之前公司工作时的笔记,偶然发现了一些有关数据库的记录。当初,我们的项目一开始采用的是 Oracle 数据库,但随着项目需求的变化,我们不得不转向使用 SQL Server。值得一提的是,公司之前采用的…

Windows保姆级安装Docker教程

1.官网下载 2.安装 3.启动Hyper-V 4.检查是否安装成功 1.下载 1.1.打开官网,然后点击下载 官网链接:https://hub.docker.com/ 2.安装 下载好之后会得到一个exe程序,然后启动它,进行安装。 去掉 WSL 不使用Hyper-V&#xff0…

KdMapper扩展实现之REALiX(hwinfo64a.sys)

1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称hwin…

使用testMe自动生成单元测试用例

文章目录 1、testMe简介2、插件对比2.1 testMe2.2 Squaretest2.3 Diffblue 3、IDEA插件安装4、单测用例4.1 maven依赖4.2 生成用例 5、自定义模板6、使用自定义模板生成用例7、调试用例 1、testMe简介 公司对于系统单元测试覆盖率有要求,需要达到50%或80%以上才可以…

RV1126-RV1109-进入uboot的按键和名字显示-HOSTNAME

今天添加一个小功能,就是uboot是按CTRLC进入的 今日我做了一个定制,让按L或者l让也进入uboot指令模式,并且修改主板名字显示 默认是CTRLC:键码值是0x03(ASCII对照表) 于是代码中跟踪: //rv1126_rv1109/u-boot/common/console.c int ctrlc(void) { #ifndef CONFIG_SANDBOXif (…

Python大数据之Python进阶(五)线程

文章目录 线程1. 线程的介绍2. 线程的概念3. 线程的作用4. 小结 线程 学习目标 能够知道线程的作用 1. 线程的介绍 在Python中,想要实现多任务除了使用进程,还可以使用线程来完成,线程是实现多任务的另外一种方式。 2. 线程的概念 线程是进程…

【chrome基础】Chrome、Chromium、libcef、electron版本关系大揭秘!

文章目录 概述chrome、Chromium、cef、electron 版本管理chrome的各种概念和学习资料V8 bindings 设计谷歌V8引擎探秘:基础概念Chrome 的插件(Plugin)与扩展(Extension)Chrome插件开发 概述 Chrome、Chromium、libcef、…

电荷泵CP原理及在PLL/DLL中的使用

参考【模拟集成电路】电荷泵(CP)设计_pll 电荷泵-CSDN博客 PLL-CP | Fitzs Blog 1.PLL/DLL中电荷泵概念及原理 电荷泵CP(charge pump)是锁相环中重要的一个模块,其主要功能是将鉴频鉴相器 (PFD) 输出的时钟相位差值转化为电荷,将…

UE5如何实现语言本地化管理(中英文切换)

一。实现蓝图的本地化控制 1.打开本地化控制面版 2.设置收集文本的路径 3.添加自己需要使用的语言,一般是中文 4.收集文本并进行转换语言的翻译 5.进入面板之后开始翻译 6.翻译完成之后计算字数并编译 7。一整套流程下来就是这样了 8.编译完成之后会在文件中生成…

一文汇总 Linux 内核调试的方法

内核开发比用户空间开发更难的一个因素就是内核调试艰难。内核错误往往会导致系统宕机,很难保留出错时的现场。调试内核的关键在于你的对内核的深刻理解。 在调试一个bug之前,我们所要做的准备工作有: 有一个被确认的bug,包含这…

10.10泊松、指数、伽马分布的理解

泊松定理、泊松分布 泊松定理就是描述在T段时间内每时每刻一直进行一个实验,这个实验成功的概率由t段时间总的成功期望次数决定,就是给二项分布加了个时间 泊松分布可用来描述某段时间来电次数的分布,电话台收到的呼叫数,商城的…

2023年【陕西省安全员B证】最新解析及陕西省安全员B证操作证考试

题库来源:安全生产模拟考试一点通公众号小程序 2023年陕西省安全员B证最新解析为正在备考陕西省安全员B证操作证的学员准备的理论考试专题,每个月更新的陕西省安全员B证操作证考试祝您顺利通过陕西省安全员B证考试。 1、【多选题】《陕西省建设工程质量…

导入导出Excel

一、Springboot Easyexcel读取写入数据&#xff0c;多头行数&#xff0c;多sheet&#xff0c;复杂表头简单实现 1. 导入依赖&#xff0c;阿里的easyexcel插件 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId>…

uniapp上echarts地图钻取

1: 预期效果 通过切换地图 , 实现地图的钻取效果 2: 实现原理以及核心方法/参数 一开始是想利用更换地图数据的形式进行地图钻取 , 这就意味着我们需要准备全国30多个省份的地图数据 , 由于一开始考虑需要适配小程序端 , 如此多的地图文件增加了程序的体积 , 如果使用接口调…

element el-table表格表头某一列表头字段修改颜色

需求&#xff1a; 1 使用 :header-cell-class-name"addClass" 属性 2 根据显示条件 在redText&#xff0c;whiteText 中设置你想要添加的必填表头index 3.根据条件修改文字样式 完整代码 <el-table ref"tableRef" :cell-style"{ color: #FFF,…