Web自动化测试需要掌握那些基础技能?速速收藏!

一、WEBUI自动化背景

HONGRUAN

因为web页面经常会变化,所以UI自动化测试的维护成本很高。不如接口的适用面广,所以大部分公司会做接口自动化测试,但是未必会做UI自动化测试;

UI自动化测试要做也是覆盖冒烟测试,不会到很高的覆盖率:

接口自动化测试框架覆盖率:90%+,能做回归测试。

UI自动化测试框架覆盖率【用例】:30%-40%,能做冒烟测试【正常用例】,覆盖核心功能的页面配置,减少重复的页面操作。

二、自动化工具selenium

HONGRUAN

【其他框架:cypress,RobotFramework,playwright-- 录播课程】

Selenium是用于Web应用自动化测试的工具,开源并且免费

支持Chrome、FireFox、Edge、IE、Safari等主流浏览器 【Chrome支持的最好 最稳定 推荐】

支持Java、Python、Net、Perl等编程语言进行自动化测试脚本编写

官网地址:https://selenium.dev/

三、selenium工具家族

HONGRUAN

selenium ide : 录制工具。谷歌和火狐的插件。用途:录制回放bug的过程。不推荐用,录制基本都需要再修改;30分钟就学会了。

Firefox可以下载插件,并录制回放;可以导入成为代码脚本,也很方便。

但是这个录制的功能不够灵活,比如需要做一些判断,循环控制等复杂的业务场景自动化,稳定性不太好。

selenium webdriver : 核心,重点学习的,提供了各种语言环境的API来支持更多控制权和编写符合标准软件开发实践的应用程序

结合代码(PythonJava,C#,JavaScript、Perl、PHP,Ruby)一起来完成自动化。

提供了非常多的浏览器网页操作的接口【api】

selenium grid :分布式测试,通过Selenium Grid可以将自动化测试脚本分发到不同的测试机器中执行;用例分布不同的设备上运行,提高运行效率。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

四、Selenium安装

HONGRUAN

1、pip install selenium==4.3.0,最好指定版本安装,因为不同的版本可能会有一些兼容性的问题。

注意:检查一下你电脑的urllib3的版本,pip show urllib3 ,如果是2.x 以上的版本,会有兼容性问题。pip uninstall urllib3 ,pip install urllib3==1.26.15 【执行版本安装】

2、下载浏览器驱动:注意 驱动程序要与浏览器的类型和版本匹配。

驱动程序放在了Python的安装目录下:selenium会自动从path环境变量中去找这个驱动文件;如果驱动不在Python安装目录 就需要加参数初始化。

        浏览器安装文件及对应的驱动如下图(点击图片看大图):

图片

3、装好浏览器,正确安装。最好在默认的路径下。一定要记得关闭自动更新。

特别注意:chrome浏览器关闭自动更新:

火狐浏览器关闭自动更新:

一旦浏览器自动升级了,原来的驱动就会不能用了,所以一定要记得关闭这个自动更新!

五、quit和close的区别

HONGRUAN

driver.close():关闭当前正在使用的窗口。

1、如果你的当前浏览器窗口只有一个情况下,它就会关闭窗口并且关闭浏览器

2、如果你的当前浏览器窗口有多个的情况下,它就会关闭driver驱动焦点所在的窗口

driver.quit():真正关闭浏览器(把所有的窗口都关闭,并且退出浏览器,关闭驱动程序)

进阶的用法:

(1)获取页面的url地址

(2)获取页面的标题

(3)获取页面源码

六、元素定位方法

HONGRUAN

并不是所有的页面内容都有直接对应的方法进行操作的,更多的内容操作需要使用特定方法进行元素的定位。要进行元素定位,需要先知道HTML页面的组成部分:

HTML页面的组成:HTML+CSS+javascript

1、HTML 是用来描述网页的一种语言。指的是超文本标记语言 (Hyper Text Markup Language) ,HTML 不是一种编程语言,而是一种标记语言 (markup language)

l负责定义页面呈现的内容:标签语言:<标签名>标签值</标签名>,每一种类型的元素都有自己独特的标签名来表示,是为了表达页面的内容,有统一的表达标准。

l了解html网页结构:https://www.runoob.com/html/html-paragraphs.html --html页面是树形结 构。

lHTML标签也可称之为元素,元素的特征:文本内容 ----- 【通过 F12可以查看页面源码】

lctrl +F 可以调出来页面的 搜索框 可以用来搜索值 是否唯一。

l所以元素有3个特征:

n1、标签名 :

linput【输入】| a【超链接】| span | button

lHTML 标签是由尖括号包围的关键词,比如, 标签通常是成对出现的,比如 和 ,标签对中的第一个标签是标签头,第二个标签是标签尾;

n2、属性 :

lHTML 元素可拥有属性 :id name class等,元素通用的属性【常见的属性】

lid - 在当前html页面当中,独一无二的身份标识。但是请注意,它可能是变动的(一 般有数字的都很容易变化)。== 相当于人的身份证

lclass - 在当前html页面当中,并不唯一。一个元素可以有多个class值,用空格隔 开。(不同的元素用同样的样式设计的,很多元素class一样):class="commenttext quickinput"

lname - 在当前html页面当中,并不唯一。一般来讲跟当前元素的功能有关。

lstyle - 样式,高 宽 背景图片 ---基本很少会用于元素定位

n3、文本内容:标签可以拥有文本内容, 就是标签头和标签尾中间的内容:<span> text</span>

2、CSS:Cascading style sheets控制页面该如何呈现,即布局设置;比如字体颜色,字体大小,在页面呈 现的大小等。

3、Javascript:可以让你页面依据不同的情形做不同的事情。

七、元素的八大定位方法

HONGRUAN

元素的八大定位方法:【selenium的版本:4.3.0】

元素定位的目标:找到要操作的元素(唯一),然后进行操作。一定要找到唯一的元素,如果找到多个,就考虑换一个定位方法。8大元素定位:分为2大类

代码里查找元素的方法:driver.find_element()

第一大类(6个):只根据元素的单一特征定位。==用的少

1、id属性 :优先选择,因为id一般都是唯一的。

2、class属性:样式,比如颜色,宽高 大小等 ,可以修改。但是要确保class的属性值是唯一的才可以用。

3、name属性

4、tag_name属性 - 标签名 :有多个重复的标签名,会默认找到第一个标签名 ;基本上不用,因为会 有很多个

5、link_text:a元素的文本内容完全匹配:a标签是一个超链接元素,超链接元素有属性target="_blank",超链接会打开一个新的窗口,否则就是在原窗口上打开新页面 ,窗口切换会用。

6、partial_link_text:a元素的文本内容部分匹配,当文本内容非常长的时候用部分匹配

第二大类(2个):组合元素的特征以及关系来定位。万能定位。==用的很多

·xpath定位(相对) :万能,推荐使用,重点学习。

·css selector:有弊端,不能支持文本定位,但是xpath可以。而且只支持web页面,app不支持。所 以不如xpath用的多。

八、CSS选择器元素定位

HONGRUAN

1、根据标签名定位 :它的问题是不唯一,一般页面中会有很多相同标签的元素,所以基本不用

2、根据ID定位

3、根据className定位:可以支持多个样式一起写

3、单属性选择定位: 需要其他的属性一起定位,可以用标签[属性名=“属性值”]

4、多属性选择定位: 如果一个属性不能唯一定位,用个属性组合

九、xpath元素定位

HONGRUAN

xpath元素定位:支持web页面+App页+小程序 ,高级强大,重点。

²xpath其实就是一个path(路径),一个描述页面元素位置信息的路径,相当于元素的坐标

²xpath基于XML文档树状结构,是XML路径语言,用来查询xml文档中的节点

²既可以用于XML,也可以用于HTML(因为XML与HTML结构类似,所以xpath都可以解析)

绝对路径:从根节点开始,一层一层写出来,直到要找到元素。父/子 路径和位置都涵盖 了,所以特别不稳定。

l从根节点(/)开始,一层一层写出来,直到要找到元素。父/子 【路径和位置依赖】 copy xpath :/html/body/div[2]/div[2]/div/div[1]/div[2]/ul/li[1]/a[2] -- 9代单传的路径。

相对路径: 以//开头,相对于某个节点的路径来找通过条件在html里面找。

l在页面当中查看xpath表达式,可以匹配多少元素:F12 -- ctrl + F

十、Selenium WebDrive原理

HONGRUAN

WebDriver协议(制定通讯的规则-底层基于http协议,作为一个翻译的角色):启动驱动程序,就是http 协议 监听某个端口【就是一个服务】;由selenium代码向他发起请求。实现各种操作。

The WebDriver Wire Protocol,由Selenium基于Http设计并定义的协议,各大浏览器厂商都提供了实现 了该协议的驱动程序(ChromeDriver,Geckodriver、EdgeDriver等),通过这套协议我们可以操作浏览 器实现各种控制动作:打开、关闭、最大化、最小化、元素定位、元素操作等等。

原理:核心部分通过统一化WebDriver协议通讯,客户端(代码段端)会发送法指令给驱动程序,驱动程 序是由不同的浏览器厂商开发的,驱动程序会自己内部将指令翻译,再去将翻译之后的指令做转发,转发 给浏览器,浏览器就能去执行对应的指令并且将结果告诉给客户端。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

史上最全软件测试自学资料大全(学习路线+视频教程+文档资料+PDF面试文档)作为一个软件测试的过来人,小濠想尽自己最大的努力,帮助每一个伙伴都能顺利找到满意的工作。我花费了很多时间细心钻研,在收集了近 200G 干货、 1500份资料中精心筛选出来了这份「软件测试资料包」。你只需要花很少的时间就能快速地icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=Mzk0OTI0ODM2Mg==&mid=2247489248&idx=1&sn=3d7dbe28d58e5147c409c7e5f059d8ea&chksm=c35a1ee5f42d97f397fd420ce40f72b60195d4ffb42c34f61300463711347815f2e5656defa4&token=1425287504&lang=zh_CN#rd最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

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

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

相关文章

如何更改SSH服务器端口以减少蛮力攻击

本周有一个客户&#xff0c;购买Hostease的独立服务器&#xff0c;询问我们的在线客服&#xff0c;如何更改SSH服务器端口以减少蛮力攻击&#xff1f;我们为用户提供相关教程&#xff0c;用户很快解决了遇到的问题。在此&#xff0c;我们分享这个操作教程&#xff0c;希望可以对…

扒出秦L三个槽点,我不考虑买它了

文 | Auto芯球 作者 | 雷慢 比亚迪的有一个王炸“秦L”&#xff0c;再一次吸引了我注意力&#xff0c; 我上一辆车刚卖不久&#xff0c;最近打算买第二辆车&#xff0c; 二手车和新车都有在看&#xff0c; 我又是一个坚定的实用主义者&#xff0c; 特别是现在的经济环境不…

5款ai文案自动生成器,让你写作爆款文案不犯难!

现如今&#xff0c;无论是用于社交媒体、广告宣传、网站内容还是其他各种领域&#xff0c;优秀的文案都能吸引更多的关注和流量。但是&#xff0c;对于许多创作者来说&#xff0c;想要创作出高质量的文案并非易事&#xff0c;常常会面临灵感枯竭、思路卡顿等问题。而现在有了一…

display: none 和 visibility: hidden 的共性与区别

display: none 和 visibility: hidden 的共性与区别 共性&#xff1a;display: none 和 visibility: hidden 都是用于设置元素可见性的样式 区别 display: none 使元素及其占位完全消失&#xff1a;元素及其所有子元素将从文档流和布局中完全消失&#xff0c;就像它们不存在一…

轮廓系数(Average silhouette) | 最佳聚类数的判定

1.最佳分类个数 # 辅助确定最佳聚类数 4.7*2.6 factoextra::fviz_nbclust( t(DPAU_2), kmeans, method "silhouette")在2有下降拐点&#xff0c;但是样本较多时分成2类一般意义不大。 在7时也有下降拐点。 2.查看每个分类的轮廓系数 (1) pam k5 library(cluste…

硬盘恢复数据需要多久完成?硬盘恢复时间及恢复指南详解

在数字化时代&#xff0c;硬盘作为我们存储重要数据的核心设备&#xff0c;其安全性与可靠性显得尤为重要。然而&#xff0c;无论是由于意外删除、格式化错误还是硬盘故障&#xff0c;数据丢失的情况时有发生。当面临这样的困境时&#xff0c;硬盘数据恢复成为了我们挽回损失的…

【蓝桥杯嵌入式】第十四届省赛 更新中

0 前言 刚刚做完第十四届的省赛&#xff0c;这届题目比我想象中的要简单&#xff1b;不过我去年参加的14届单片机的省赛都比往年的国赛还难&#xff0c;挺离谱的~ 1 展示 1.1 源码 1.2 演示视频 1.3 题目展示 2 CubeMX配置(第十四届省赛真题) 设置下载线 HSE时钟设置 时钟树…

光耦的工作原理

一、光电耦合器简介 光电耦合器主要是一种围绕光作为媒介的光电转换元器件&#xff0c;能够实现光到电、电到光之间的自由转换。我们又可以称之为光电隔离器&#xff0c;之所以这么称呼&#xff0c;主要是因为光电耦合器能够很好的对电路中的电信号起到隔离的作用。有效的保护…

大数据报告有什么作用?查询方式一般有几种?

随着互联网金融的飞速发展&#xff0c;网络借贷已经成为了一种常见的融资方式。然而&#xff0c;如何在众多的平台中做出正确的选择&#xff0c;避免风险并实现最大利益&#xff0c;这就需要一份具有参考价值的大数据报告。本文将详细阐述大数据报告的作用及查询方式的几种方式…

史上最全排序算法整理!(1)

1.排序的概念及其应用 1.1排序的概念 排序是计算机内经常进行的一种操作&#xff0c;其目的是将一组“无序”的记录序列调整为“有序”的记录序列。分内部排序和外部排序&#xff0c;若整个排序过程不需要访问外存便能完成&#xff0c;则称此类排序问题为内部排序。反之&#…

154.找出出现至少三次的最长特殊字符串|(力扣)

代码解决 class Solution { public:int maximumLength(string s) {// 使用unordered_map来存储每个连续子串出现的次数unordered_map<string, int> mp;string key; // 存储当前的连续子串int ans -1; // 存储最终的答案&#xff0c;如果没有符合条件的子串&#xff0c…

raid 磁盘阵列

raid 磁盘阵列&#xff1a; **条带化存储&#xff1a;**数据分散在多个物理磁盘上的存储方式。利用多个磁盘并行读取和写入。 条带化的存储性能和读写性能是最好的。 磁盘的组成方式不同&#xff0c;也就是不同的raid级别&#xff1a; **raid 0&#xff08;条带化存储&#x…

四、.Net8对接Ollama实现文字翻译(.Net8+SemanticKernel+Ollama)本地运行自己的大模型

.Net8SemanticKernelOllama 一、Semantic Kernel官方定义SK能做什么&#xff1f; 二、基本使用1、普通对话2、使用插件实现文本翻译功能 三、IChatCompletionService、ITextGenerationService、ITextEmbeddingGenerationService 很多情况都有这样的需求&#xff0c;使用自有系统…

深入解读Meta分析:原理、公式、操作步骤及结果分析;R语言Meta回归分析、诊断分析、不确定性分析与精美作图

目录 专题一 Meta分析的选题与文献计量分析CiteSpace应用 专题二 Meta分析与R语言数据清洗及相关应用 专题三 R语言Meta分析与精美作图 专题四 R语言Meta回归分析 专题五 R语言Meta诊断分析与进阶 专题六 R语言Meta分析的不确定性及贝叶斯应用 专题七 深度拓展机器学习在…

Swift 中的Getter 和 Setter

目录 前言 1. 什么是Getter和Setter 1.定义 2.作用 2.属性 1.存储属性 2.计算属性 3.属性观察者 3. 使用 Getter 和 Setter 的场景 1.数据转换 2.懒加载 3.数据验证和限制 4.触发相关操作 4.自定义Getter 和 Setter 5. 参考资料 前言 属性是 Swift 编程中的基本…

低代码(Low-Code)是什么?

#上班休息区&#xff1a;分享你的程序猿专属表情包# 目录 一、低代码概念二、低代码特点三、低代码案例四、低代码厂商五、低代码应用 低代码&#xff08;Low-Code&#xff09;是一种软件开发方法&#xff0c;它通过图形化界面和少量的编码来创建软件应用程序。低代码开发旨在…

SAP_SD模块 物料科目分配/成本简介

SAP系统各模块与财务都有个方面的集成。文本主要说明销售模块中的科目分配和成本的一个对应关系。 1、首先是在物料主数据上销售视图中的物料科目分配组&#xff0c;S1主营、S2材料等字段&#xff0c;物料销售的时候会将这个物料产生的记录到对应的科目中。 首先是物料主数据中…

如何下载b站(哔哩哔哩bilibili)的学习视频教程

方法1&#xff1a; 打开粘贴视频链接下载即可哔哩哔哩(bilibili)视频解析下载 - 保存B站视频到手机、电脑哔哩哔哩高清视频解析下载工具是一个免费的B站视频在线解析提取工具,支持提取B站APP和bilibili网站上的任何视频,提取出来的视频无水印.我们可以借助此下载器方便地将视频…

Java(六)——抽象类与接口

文章目录 抽象类和接口抽象类抽象类的概念抽象类的语法抽象类的特性抽象类的意义 接口接口的概念接口的语法接口的特性接口的使用实现多个接口接口与多态接口间的继承抽象类和接口的区别 抽象类和接口 抽象类 抽象类的概念 Java使用类实例化对象来描述现实生活中的实体&…

全文最详细的生产管理完整方案!那些让人头疼的生产管理难题及解决方法!

什么是生产管理系统&#xff1f;为何生产管理系统在企业管理中如此重要&#xff1f;生产管理系统的核心模块包括哪些&#xff1f;为何企业在生产管理系统中常常遭遇项目信息碎片化、任务分配和跟踪困难等痛点&#xff1f;又该如何针对生产管理痛点进行优化&#xff1f; 本文40…