Web自动化测试需要掌握那些基础技能?速速收藏!
ccwgpt 2024-10-03 18:48 57 浏览 0 评论
一、WEBUI自动化背景
因为web页面经常会变化,所以UI自动化测试的维护成本很高。不如接口的适用面广,所以大部分公司会做接口自动化测试,但是未必会做UI自动化测试;
UI自动化测试要做也是覆盖冒烟测试,不会到很高的覆盖率:
接口自动化测试框架覆盖率:90%+,能做回归测试。
UI自动化测试框架覆盖率【用例】:30%-40%,能做冒烟测试【正常用例】,覆盖核心功能的页面配置,减少重复的页面操作。
二、自动化工具selenium
【其他框架:cypress,RobotFramework,playwright-- 录播课程】
Selenium是用于Web应用自动化测试的工具,开源并且免费
支持Chrome、FireFox、Edge、IE、Safari等主流浏览器 【Chrome支持的最好 最稳定 推荐】
支持Java、Python、Net、Perl等编程语言进行自动化测试脚本编写
官网地址:https://selenium.dev/
三、selenium工具家族
selenium ide : 录制工具。谷歌和火狐的插件。用途:录制回放bug的过程。不推荐用,录制基本都需要再修改;30分钟就学会了。
Firefox可以下载插件,并录制回放;可以导入成为代码脚本,也很方便。
但是这个录制的功能不够灵活,比如需要做一些判断,循环控制等复杂的业务场景自动化,稳定性不太好。
selenium webdriver : 核心,重点学习的,提供了各种语言环境的API来支持更多控制权和编写符合标准软件开发实践的应用程序
结合代码(PythonJava,C#,JavaScript、Perl、PHP,Ruby)一起来完成自动化。
提供了非常多的浏览器网页操作的接口【api】
selenium grid :分布式测试,通过Selenium Grid可以将自动化测试脚本分发到不同的测试机器中执行;用例分布不同的设备上运行,提高运行效率。
四、Selenium安装
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的区别
driver.close():关闭当前正在使用的窗口。
1、如果你的当前浏览器窗口只有一个情况下,它就会关闭窗口并且关闭浏览器
2、如果你的当前浏览器窗口有多个的情况下,它就会关闭driver驱动焦点所在的窗口
driver.quit():真正关闭浏览器(把所有的窗口都关闭,并且退出浏览器,关闭驱动程序)
进阶的用法:
(1)获取页面的url地址
(2)获取页面的标题
(3)获取页面源码
六、元素定位方法
并不是所有的页面内容都有直接对应的方法进行操作的,更多的内容操作需要使用特定方法进行元素的定位。要进行元素定位,需要先知道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:可以让你页面依据不同的情形做不同的事情。
七、元素的八大定位方法
元素的八大定位方法:【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选择器元素定位
1、根据标签名定位 :它的问题是不唯一,一般页面中会有很多相同标签的元素,所以基本不用
2、根据ID定位
3、根据className定位:可以支持多个样式一起写
3、单属性选择定位: 需要其他的属性一起定位,可以用标签[属性名=“属性值”]
4、多属性选择定位: 如果一个属性不能唯一定位,用个属性组合
九、xpath元素定位
xpath元素定位:支持web页面+App页+小程序 ,高级强大,重点。
2xpath其实就是一个path(路径),一个描述页面元素位置信息的路径,相当于元素的坐标
2xpath基于XML文档树状结构,是XML路径语言,用来查询xml文档中的节点
2既可以用于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原理
WebDriver协议(制定通讯的规则-底层基于http协议,作为一个翻译的角色):启动驱动程序,就是http 协议 监听某个端口【就是一个服务】;由selenium代码向他发起请求。实现各种操作。
The WebDriver Wire Protocol,由Selenium基于Http设计并定义的协议,各大浏览器厂商都提供了实现 了该协议的驱动程序(ChromeDriver,Geckodriver、EdgeDriver等),通过这套协议我们可以操作浏览 器实现各种控制动作:打开、关闭、最大化、最小化、元素定位、元素操作等等。
原理:核心部分通过统一化WebDriver协议通讯,客户端(代码段端)会发送法指令给驱动程序,驱动程 序是由不同的浏览器厂商开发的,驱动程序会自己内部将指令翻译,再去将翻译之后的指令做转发,转发 给浏览器,浏览器就能去执行对应的指令并且将结果告诉给客户端。
相关推荐
- 自己动手写Android数据库框架_android开发数据库搭建
-
http://blog.csdn.net/feiduclear_up/article/details/50557590推荐理由关于Android数据库操作,由于每次都要自己写数据库操作,每次还得去...
- 谷歌开源大模型评测工具LMEval,打通谷歌、OpenAI、Anthropic
-
智东西编译|金碧辉编辑|程茜智东西5月28日消息,据科技媒体TheDecoder5月26日报道,当天,谷歌正式发布开源大模型评测框架LMEval,支持对GPT-4o、Claude3.7...
- 工信部:着力推动大模型算法、框架等基础性原创性的技术突破
-
工信部新闻发言人今日在发布会上表示,下一步,我们将坚持突出重点领域,大力推动制造业数字化转型,推动人工智能创新应用。主要从以下四个方面着力。一是夯实人工智能技术底座。通过科技创新重大项目,着力推动大模...
- 乒乓反复纠结“框架不稳定”的三个小误区
-
很多球友由于对框架的认知不清晰,往往会把“框架不稳定”当成一种心理负担,从而影响学球进度,其典型状态就是训练中有模有样,一旦进入实战,就像被捆住了手脚。通过训练和学习,结合“基本功打卡群”球友们交流发...
- 前AMD、英特尔显卡架构师Raja再战GPU,号称要全面重构堆栈
-
IT之家8月5日消息,知名GPU架构师拉贾科杜里(RajaKoduri)此前曾先后在AMD和英特尔的显卡部门担任要职。而在今日,由Raja创立的GPU软件与IP初创企...
- 三种必须掌握的嵌入式开发程序架构
-
前言在嵌入式软件开发,包括单片机开发中,软件架构对于开发人员是一个必须认真考虑的问题。软件架构对于系统整体的稳定性和可靠性是非常重要的,一个合适的软件架构不仅结构清晰,并且便于开发。我相...
- 怪不得别人3秒就知道软考案例怎么做能50+
-
软考高级统一合格标准必须三科都达到45分,案例分析也一直是考生头疼的一门,但是掌握到得分点,案例能不能50+还不是你们说了算吗?今天就结合架构案例考点,分享实用的备考攻略~一、吃透考点,搭建知识框架从...
- UML统一建模常用图有哪些,各自的作用是什么?一篇文章彻底讲透
-
10万+爆款解析:9大UML图实战案例,小白也能秒懂!为什么需要UML?UML(统一建模语言)是软件开发的“蓝图”,用图形化语言描述系统结构、行为和交互,让复杂需求一目了然。它能:降低沟通成本避...
- 勒索软件转向云原生架构,直指备份基础设施
-
勒索软件组织和其他网络犯罪分子正越来越多地将目标对准基于云的备份系统,对久已确立的灾难恢复方法构成了挑战。谷歌安全研究人员在一份关于云安全威胁演变的报告中警告称,随着攻击者不断改进数据窃取、身份泄露和...
- ConceptDraw DIAGRAM:释放创意,绘就高效办公新未来
-
在当今数字化时代,可视化工具已成为提升工作效率和激发创意的关键。ConceptDrawDIAGRAM,作为一款世界顶级的商业绘图软件,凭借其强大的功能和用户友好的界面,正逐渐成为众多专业人士的首选绘...
- APP 制作界面设计教程:一步到位_app界面设计模板一套
-
想让APP界面设计高效落地,无需繁琐流程,掌握“框架搭建—细节填充—体验优化”三步法,即可一步到位完成专业级设计。黄金框架搭建是基础。采用“三三制布局”:将屏幕横向三等分,纵向保留三...
- MCP 的工作原理:关键组件_mcp部件
-
以下是MCP架构的关键组件:MCP主机:像ClaudeDesktop、GitHubCopilot或旅行助手这样的AI智能体,它们希望通过MCP协议访问工具、资源等。MCP主机会...
- 软件架构_软件架构师工资一般多少
-
软件架构师自身需要是程序员,并且必须一直坚持做一线程序员。软件架构应该是能力最强的一群程序员,他们通常会在自身承接编程任务的同时,逐渐引导整个团队向一个能够最大化生产力的系统设计方向前进。软件系统的架...
- 不知不觉将手机字体调大!老花眼是因为“老了吗”?
-
现在不管是联系、交友,还是购物,都离不开手机。中老年人使用手机的时间也在逐渐加长,刷抖音、看短视频、发朋友圈……看手机的同时,人们也不得不面对“视力危机”——老花眼,习惯眯眼看、凑近看、瞪眼看,不少人...
- 8000通用汉字学习系列讲座(第046讲)
-
[表声母字]加(续)[从声汉字]伽茄泇迦枷痂袈笳嘉驾架咖贺瘸(计14字)嘉[正音]标准音读jiā。[辨形]上下结构,十四画。会意形声字,从壴从加,加也表声。注:从壴,字义与鼓乐有关;从加,字义与...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- mfc框架 (52)
- abb框架断路器 (48)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (65)
- tornado框架 (48)
- 前端框架bootstrap (54)
- orm框架有哪些 (51)
- 知识框架图 (52)
- ppt框架 (55)
- 框架图模板 (59)
- 内联框架 (52)
- cad怎么画框架 (58)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)