从零开始的自动化测试框架——Web篇01

2023-11-17

Selenium

谈到web自动化,逃不开的一定会是Selenium。这是最为主流,也是最广为人知的一项web自动化产物。但目前业内web自动化其实主要分为以下方向:

Selenium,核心主流自动化技术,功能齐全,一般是搭配webdriver实现自动化,没啥好特别去介绍的。
Cypress,被称作后Selenium时代的产物,很多人大概都没接触过,基于JS实现的一个框架,主体是基于录制来实现,也可以自主编辑脚本,用起来其实没有Selenium那么好用,算是一个小众产物,目前市场应用不算多
Playwright,微软开源的一款基于Node实现的自动化测试框架,可以摆脱webdriver独立运行的一款框架,在语言支持上也还算主流,使用上也不算特别复杂,对于新手的友好度也比较高,很多技术类博主都有推荐过这个,但是目前业内应用也不多
Puppeteer,这个貌似是谷歌推的一款,没接触过,不太了解。
其实还有很多可能不太知名的,或者说更为小众的自动化框架/模块,我没有听过吧,但我所了解到的具体情况,在测试领域内,主流还是以Selenium为核心的web自动化,企业需求量最大的也同样是这个,很多人在使用Selenium的时候,其实用的都只是很小的一部分,因为Selenium本身有非常完整的结构体系,可以和大家介绍一下:

Selenium IDE,在webdriver时代下被淘汰的模块,但其实selenium一直憋着一股劲,继续在研发这个软件,现在官网中其实已经上架了新的IDE,完全支持Chrome、Edge等主流浏览器,可实现跨浏览器的脚本录制与调试,比早期的IDE功能更加完善与齐全,算是一个比较不错的软件了,但目前而言,webdriver体系太过好用与普及,所以这个IDE略显鸡肋了一些,作为学习的角度来说,还是可以了解了解,毕竟也就是一个插件的安装而已。
Selenium WebDriver,准确来说Selenium和webdriver是两个不同的东西,只是说作为cp绑在一起的,这也是目前Selenium在业内应用最为核心的一个部分,大大小小的测试框架,基本上只要是关联到WebUI自动化部分,都是基于这组cp来实现的。作为一个自动化测试技能的学习和市场需求来说,这是必修内容。
Selenium Grid,这个东西对于很多人来说算是比较陌生的一个领域了,熟悉的人其实会知道Selenium的应用,基本上是基于webdriver服务来进行数据交互的,但是基于代码线性运行以及电脑本身性能的限制,代码的运行效率其实不算很高,对于业务更为复杂情况下的自动化执行,时间成本一直是比较难以解决的事情,其实关于资源,在互联网行业也是一个比较头疼的事情,所以也就会有所谓微服务、分布式之类的形态来提供服务。而Grid,其实就是自动化测试框架的分布式体系,可以基于Grid来部署M/S形态下的分布式测试框架,通过主节点的任务下发,子节点的任务执行来实现多机分布式执行测试用例,实现测试框架更为高效的运行,对于多用例并发之类的实现,是一个很好的支持。
由这些内容组合成的Selenium生态圈,比较完整地提供了在web阶段下的自动化测试需求,如果说想要掌握自动化测试相关技术,掌握Selenium WebDriver这对CP其实只能说是生态圈中的一个部分领域而已,虽然这个领域中的内容确实有一丢丢多。慢慢学吧。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【100%免费无套路】

 

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

从零开始的自动化测试框架——Web篇01 的相关文章

  • 测试开发必知:有Tomcat,为什么还要Nginx?

    只用Tomcat 不用Nginx搭建Web服务 行不行 我曾经提出的愚蠢问题 今天详细给自己解释下 为什么必须用Nginx 不用Nginx 只用Tomcat的Http请求流程 浏览器处理一个Http请求时 会首先通过DNS服务器找到域名关联
  • 软件测试|SQLAlchemy环境安装与基础使用

    简介 SQLAlchemy 是一个强大的 Python 库 用于与关系型数据库进行交互 它提供了高度抽象的对象关系映射 ORM 工具 允许使用 Python 对象来操作数据库 而不必编写原生SQL查询 本文将介绍如何安装 SQLAlchem
  • 软件测试|web自动化测试神器playwright教程(三十八)

    简介 在我们使用selenium时 我们可以获取元素的属性 元素的文本值 以及输入框的内容等 作为比selenium更为强大的web自动化测试神器 playwright也可以实现对元素属性 文本值和输入框内容的抓取 并且实现比seleniu
  • 软件测试|Pydantic处理时间类型数据

    简介 我们之前介绍过使用 pydantic 验证数据 比如校验数据的格式等 但是在我们的日常工作中 还有一种数据是需要我们验证的 比如时间数据 时间数据不同于字符串 列表等数据 与他们的验证不一样 本文就来为大家介绍一下 pydantic
  • 软件测试|使用Python读写yaml文件,你会了吗?

    简介 YAML YAML Ain t Markup Language 是一种可读的数据序列化格式 它常用于配置文件和数据交换 Python 提供了许多库来处理 YAML 文件 在本文中 我们将探讨如何使用 PyYAML 库来读取和写入 YA
  • 软件测试|pycharm关联GitHub的详细步骤

    简介 GitHub 是全球最大的开源代码托管平台之一 而 PyCharm 是一款强大的 Python 集成开发环境 将两者结合使用 可以提高团队协作和代码管理的效率 本文将详细介绍如何在 PyCharm 中管理 GitHub 账号 包括如何
  • 软件测试|教你如何使用Python绘制出奥运五环旗

    简介 我们之前介绍过使用turtle来绘制正多边形 但是绘制正多边形只是turtle模块最基础的使用 我们可以使用turtle模块绘制出更多不一样的精彩图形 本文就来给大家介绍一个比较简单的turtle绘图实例 绘制奥运五环旗 初始化参数
  • 软件测试|教你使用Python下载图片

    前言 我一直觉得Windows系统默认的桌面背景不好看 但是自己又没有好的资源可以进行替换 突然我一个朋友提醒了我 网络上的图片这么多 你甚至可以每天换很多个好看的背景 但是如果让我手动去设置的话 我觉得太麻烦了 我不如使用技术手段将图片下
  • 盲猜你不懂H5架构和原生架构的区别

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 如何写好一个错误报告

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 一篇文章带你了解Python常用自动化测试框架——Pytest

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • msyql 异常,别干着急,70%的问题都在这里!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 新手也能看懂的【前端自动化测试入门】!

    前言 最近在网上搜索前端自动化测试相关的文档 但是发现网上的文章都是偏使用 没有把一些基础概念说清楚 导致后续一口气遇到一些 karma Jasmine jest Mocha Chai BDD 等词汇的时候很容易一头雾水 这次一方面整理一下
  • 月薪2W的软件测试工程师,到底是做什么的?

    在生活中 我们常常会遇到以下几种窘迫时刻 准备骑共享单车出行 却发现扫码开锁半天 车子都没有反应 手机导航打车 却发现地图定位偏差很大 司机总是跑错地方 买个水 却遭遇自动售货机吐币 或者不找零钱 好不容易休息打个游戏 却一直出现卡顿 闪退
  • 探索自动化测试断言:提升测试效率与质量的关键!

    前言 断言在自动化测试中起着关键的作用 它是验证测试结果是否符合预期的重要手段 如果在自动化测试过程中忽视了断言 那么这个测试就失去了其本质的意义 因为我们无法得知测试结果是否达到了预期的效果 因此 断言在自动化测试中的重要性不言而喻 那么
  • 2024拒绝行业内卷!八年软件测试20K*16薪行业心得 想入行必看

    目前工作做软件测试工作8年 属于高级测试员那个级别吧 现在看到各行各业的人都在转行学习软件测试 想给大家一些学习建议和忠告 很多粉丝都跟我说今年行情很差 找不到工资 真的找不到工作了吗 我们常在网上看到的 程序员饱和 程序员过剩 其实一般是
  • 15:00面试,15:06就出来了,问的问题有点变态。。。

    从小厂出来 没想到在另一家公司又寄了 到这家公司开始上班 加班是每天必不可少的 看在钱给的比较多的份上 就不太计较了 没想到9月一纸通知 所有人不准加班 加班费不仅没有了 薪资还要降40 这下搞的饭都吃不起了 还在有个朋友内推我去了一家互联
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 20年通过校招进入广州某软件公司 干了接近3年的 功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了3年的功能测试 已经让我变得不思进取 谈了2年的女朋
  • 深入解析 YAML 配置文件:从语法到最佳实践

    一 认识YAML YAML YAML Ain t Markup Language 是一种人类可读的数据序列化语言 它的设计目标是使数据在不同编程语言之间交换和共享变得简单 YAML采用了一种简洁 直观的语法 以易于阅读和编写的方式表示数据结
  • 用Python实现高效数据记录!Web自动化技术助你告别重复劳动!

    自动化关键数据记录 简介 关键数据记录是 Web 自动化测试中的关键部分 它们提供了关于系统行为和执行过程的详细信息 有助于验证用例的正确性 排查问题和确保应用程序的质量 行为日志 行为日志是一种用于记录系统或应用程序的操作和事件的技术 它

随机推荐

  • 【mybatis】【mybatisPlus】

    springboot 下 mybatis mybatisPlus Mybatis的作用 配置数据源和mybatis的配置 Mybatis的作用 Mybatis就是帮助程序员将数据存取到数据库里面 MyBatis 是一个半自动化的ORM框架
  • 使用Java socket简单模拟HTTP服务器

    1 HTTP server 接收client端的http请求并将同级目录的root 返回 package httpDemo import java io InputStream import java io OutputStream imp
  • Electron 入门学习案例(electron 初体验)

    Electron 入门学习案例 electron 是桌面端的一个框架 可以把 html js css 封装成为一个 exe 或者 其他平台的应用程序 很好的实现了跨平台 并且开发效率很快 初始化环境 初始化 npm 环境使用命令npm in
  • 学习大数据spark——心得体会

    总结与体会 1 项目总结 本次项目实现了Spark 单机模式Python版的安装 介绍了与Spark编程有关的一些基本概念 特别对RDD的创建 转换和行动操作做了比较详细的说明 对从RDD 到DataFrame的实现进 行了案例训练 包括
  • PCB走线宽度和走过的电流对照表

    1 PCB走线宽度和走过的电流对照表 一般线路板厂家以OZ表示铜箔厚度 1OZ的厚度表示将1OZ重量的铜均匀铺在1平方英尺面积上达到的铜箔厚度 约为0 035mm 所以35um 50um 70um 对应的以oz为计量单位的厚度为1OZ 1
  • 解决SQL case when then else 在查询结果不存在时不生效的问题

    今天遇到一个问题 SQL 下的case when then else语句在查询结果不存在时不生效 今天解决了 顺便记录一下 为了方便的演示 先建个表Users Id Name Gender 1 白子画 0 2 花千骨 1 3 梅长苏 0 4
  • 财政收入影响因素分析

    目录 1 数据 2 代码 3 补充 1 数据 百度网盘链接 链接 https pan baidu com s 10I5FRbqSv0MGJ56SvmSTAg pwd 1234 提取码 1234 2 代码 coding utf 8 代码6 1
  • ArcMap连接表格(Join)相关问题整理

    表格连接是我们日常工作中ArcGIS常用的一项操作 常用Excel表格连接 但是在实际运用中 我们会遇到一些问题 这一般与我们使用的数据以及相关操作有关 在这里 我们根据实际经验 将一些常见问题与解决途径做一总结 1 表格无法连接 解决 检
  • python代码——批量压缩指定目录下的文件夹

    语言 python 3 用法 选择目录 对该目录下的文件夹分别压缩 生成同名压缩文件 并保存到该目录下 import os import shutil import zipfile from tkinter import Tk from t
  • k8s图形界面登录报错Failure

    k8s图形界面登录报错如下 kind Status apiVersion v1 metadata status Failure message forbidden User system anonymous cannot get path
  • echarts实现一个页面同时显示多个图表

    前言 因工作需要 老大要求给我一个JSON数据 用echarts 写一个option实现多个图表 折线图 饼图 关系图 展示 也就是说只要一个div dom对象 实现多个不同形状的图表展示 ps 前期没弄清老大意思 写了三个div来显示 尴
  • SpringToolSuite4中maven不能创建项目,创建后没有maven dependence,以及gradle创建后不能使用,更改阿里云仓库

    SpringToolSuite4中maven不能创建项目 创建后没有maven dependence gradle创建后不能使用 更改阿里云仓库 感慨一下 maven 配置指南 gradle 配置指南 感慨一下 其实这个问题很无语 搞了好几
  • 匈牙利匹配

    文章目录 不带权重的二分图匹配 算法核心 代码示例 带权重的二分图匹配 算法步骤 算法核心 如何用最少的直线覆盖矩阵中的全部0元素 如何调整矩阵 代码实例 参考 不带权重的二分图匹配 算法核心 把冲突节点的原先匹配的左节点重新连接到它的未被
  • ceph分布式存储集群部署及应用

    分布式文件系统 Distributed File System 分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上 而是通过计算机网络与节点相连 分布式文件系统的设计基于C S模式 常用分布式文件系统 Lustre Ha
  • Linux shell 环境变量注意事项

    在涉及环境变量名时 什么时候该用 符号 什么时候不该用 符号记住一点 如果要用到变量就使用 符号 如果要操作变量就不使用 符号 这条规则的一个例外就是printenv显示某个变量的值
  • 01 LNK2038:检测到“RuntimeLibrary”的不匹配项

    LNK2038 检测到 RuntimeLibrary 的不匹配项 问题描述 error LNK2038 检测到 RuntimeLibrary 的不匹配项 解决方法 qtmian lib报错采用方法3解决 方法1 修改VS项目运行库配置 方法
  • 基于Dijkstra、A*和动态规划的移动机器人路径规划(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 目录 1 概述 2 运行结果 2 1 Dijkstra算法 2 2 A 算法 2 3 动态规划 3 Matlab代码实现 1 概述 在基
  • JS 判断正负数

    需求 在文本框中输入一些内容 点击按钮判断文本框中内容是正数 负数 还是0 或者为非数字 实现
  • 软件质量测试雨课堂习题

    目录 第一章 软件测试基础 第二章 软件测试策略 第五章 软件测试的过程管理 第六章 软件测试的度量 第七章 软件测试技术 第九章 第三方测试 第一章 软件测试基础 1 软件测试目的是什么 ABC A 修正软件错误和缺陷提高软件质量 B 发
  • 从零开始的自动化测试框架——Web篇01

    Selenium 谈到web自动化 逃不开的一定会是Selenium 这是最为主流 也是最广为人知的一项web自动化产物 但目前业内web自动化其实主要分为以下方向 Selenium 核心主流自动化技术 功能齐全 一般是搭配webdrive