Web自动化测试基础篇

🍅 视频学习:文末有免费的配套视频可观看

🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快

一、目的

web自动化测试作为软件自动化测试领域中绕不过去的一个“香饽饽”,通常都会作为广大测试从业者的首选学习对象,相较于C/S架构的自动化来说,B/S有着其无法忽视的诸多优势,从行业发展趋、研发模式特点、测试工具支持,其整体的完整生态已经远远超过了C/S架构方面的测试价值。那么接下来我们就来具体说说web自动化测试的前世今生吧。

二、说明

此篇中所用的技术栈为Selenium+Python,因其本身编程难度不高,总体思想都是基于面向对象的编程理念,故只要大家的编码语言基础不弱,就完全可以做到平替。

三、手工测试与自动化测试的区别

在正式介绍web自动化测试之前,我们先来聊聊手工与自动化之前的一些区别与认知。很多科班或者刚踏上测试行业的同学都会有这么一个认知,自动化测试相较于手工来说技术含量更高,所属岗位的薪资更好,岗位的可替代性也更小。对于这种看法博主只能说一半一半,对于没有什么实际工作经验与实际项目经验的同学来说,即使自动化的技术含量更高,也尽量推荐大家从手工测试开始。大道理就不多说了,对大家来说最实际的就是你的核心竞争力,那对于测试来说测试的核心竞争力是什么呢?业务!一定是业务,但为什么会是业务呢?

大家设想一下,如果你的技术能力较强,但业务能力一般,即使能写出很高效的代码,但无法贴近产品或者项目的业务,纵使这样,写出来的脚本或者框架也会是无用之物。必须让其他懂业务的同事来帮你审核或者修改,但反过来如果业务理解力强并且对于产品的功能与设计拿捏的比较到位,那无论是测试用例设计或是经验测试都将无往不利,常常可以发现其他人无法察觉的一些产品问题、缺陷甚至于是设计场景上的漏洞。编码是一个硬技能,可以通过大量的练习来磨炼,而业务却不单单是需要理解,更多的情况下是需要去延伸与创新。为什么说测试应该是整个公司内对了解产品与项目的人呢,就是因为他们比任何人都了解其功能的使用,业务场景的匹配,需求的痛点所在,这个甚至需要超过产品经理的理解。所以在一家公司内决定一个测试能在他的道路上走多远的永远不会是技术,而是业务。

那两者的区别呢,基于上面所说的观点,要做好手工测试,必须满足这四点:1. 业务的理解能力 2. 思维逻辑能力 3. 沟通能力 4. 测试基础能力 , 做不好这四点我敢说你的手工测试能力一定不行。而要做好自动化,除了要做到这上面的四点之外,还需要对自己的代码能力、思维转变、框架设计等一些列的能力进行提升。由此可见,自动化与手工的区别不仅仅在于实现与执行的方式有所不同,两者更是一个循序递进的过程。所以博主还是建议大家如果要做自动化还是最好可以从手工业务测试进行切入。

四、框架选择

说到web的自动化测试框架,市面上已经有了很多成熟的测试框架了,比如QTP、selenium、AutoRunner、Robot Framework、watir、RFT等等等等。

QTP属于比较老牌的自动化测试框架了,在2012年之前使用的团队与公司还是比较多的,脚本也是比较简单易懂的,但另一面的限制也比较大,语言只能支持VBS且费用较高,框架的对象支持灵活度也不够好。

selenium目前仍为最主流的web自动化测试框架之一,免费开源、支持跨平台,关键是测试执行可以在浏览器中直接运行,模拟用户的真实操作。


AutoRunner可以支持丰富的技术框架并且使用Java作为脚本语言,支持生态比较完善,采用关键字提醒、关键字高亮、关键字驱动。支持同步点、校验点、参数化,同时支持数据驱动的参数化。比较适合用它来功能测试、回归测试、系统测试、构建测试等。


Robot Framework支持python,支持关键字驱动和数据驱动、自定义关键字,框架内的测试用例可以使用多种格式进行编写,且可以自动生成测试报告,无须像其他软件需要第三方库的支持。

watir使用ruby作为脚本语言,现在也可以支持跨平台的多个浏览器了,同样作为开源框架,watir相较于selenium就有比较多的限制与短板了,比如无法录制脚本、对js的弹框支持不太友好等。

RFT是由IBM推出,这是一款不仅仅用来做web自动化测试的框架,他也可以测试 HTML、Java、Windows、.NET、Visual Basic、Silverlight、Eclipse、Siebel、Flex、Ajax、Dojo、GEF 和 PowerBuilder 应用程序。但不是开源的,需要收费,并且支持的对象库也不多,如果是用来学习一下的话还是不错的。

那么在这些五花八门的框架中如何选择适合自己的测试框架呢?我们可以从两个点进行切入,首先评估自己的能力,擅长什么样的编码语言,甚至是是否有代码基础。针对上述框架的特性,比如没有代码能力的可以优先选择带有脚本录制功能的框架;又比如擅长java的就可以选择对java支持比较好的框架。另一个,就是评估自己的被测对象(产品或项目),被测对象是用什么样的技术栈实现的,页面的变更或迭代的频率与规模等。如果我们的选择标准基于以上的两个方面去进行评估的话,大概率是可以选择到适合自己适合项目或产品的自动化测试框架的。

五、Selenium的工作原理

在具体的描述Selenium的工作原理之前,我们这里先看一张简单的工作原理图:

图中的client其实就是我们使用python写的源代码,因为selenium是没有图形界面的,所以将客户端就看成我们用源代码实现的Selenium业务功能即可。

driver就是我们的webdriver,大家要知道,我们的源代码是无法直接指挥浏览器进行相应的操作的。我们的代码必须通过提供的API来建立起与浏览器之间的通信会话,有了这个会话之后脚本就可以驱动浏览器执行你测试所需的特定业务操作了。

browser作为浏览器,则是我们最后呈现出业务操作的界面对象,selenium的特点就是可以直接在浏览器中进行操作实现,模拟用户的真实业务动作。而浏览器在接收到代码所模拟的http请求之后会进行解析,将业务所需的特定操作(action)实现在浏览器界面中并对所发出的请求进行响应,告知到请求放操作是否成功。

概括的来说,整体的流程就是我们所写的代码脚本去调用selenium,再由selenium来调用特定的API对浏览器进行业务操作,浏览器将业务操作的结果告知到脚本或者IDE。

同时,在这我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看就行,希望对你有所帮助!【公众号:互联网杂货铺】免费领取软件测试资料。

【2024最新版】Python自动化测试15天从入门到精通,10个项目实战,允许白嫖。。。

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

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

相关文章

shopify如何在元字段中使用元对象

在Shopify中,您可以使用元字段(Metafields)来存储和管理自定义的附加数据。元字段允许您在产品、变体、订单和其他实体中添加额外的信息,以满足特定的业务需求。而元对象(Metaobject)是指在元字段中存储的实…

Cell |从实验室到田间,还有多远?

期刊:Cell 时间:2023年8月 植物微生物群是指植物表面、细胞间隙、器官内寄生的细菌、真菌、病毒、古菌群落。植物与微生物群的互作在植物生理、生态和进化过程中扮演重要角色。有益微生物定殖植物,可以持续对植物生产力产生表型效应&…

Django学习记录03——员工部门案例

1、项目初始化 1.1 项目创建 1.2 APP的创建 1.2.1 方法一 命令配置 python manage.py startapp app011.2.2 方法二 Pycharm配置 在Django Structure 中创建APP 2.设计表结构 2.1 表结构 注意: 1.员工表与部门表关联时id关联 节省存储,但是查找耗时…

2024信息工程、软件与计算机工程国际会议(ICIESCE2024)

2024信息工程、软件与计算机工程国际会议(ICIESCE2024) 会议简介 随着互联网的不断创新,信息工程、软件和计算机工程在各个领域得到了广泛应用。为了为来自世界各地的专家学者提供一个分享通信和计算机工程领域研究成果的平台,2024年信息工…

Leetcode刷题笔记题解(C++):203. 移除链表元素

思路:不同的情况出现了,就是第一个节点要是为等于val的节点,可以新建一个节点,并next指向head,这样就可以遍历新的链表来删除节点 /*** Definition for singly-linked list.* struct ListNode {* int val;* L…

Java最全面试总结——5. MyBatis篇

1、什么是MyBatis (1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直…

深度解析Sora的核心技术

Sora要解决的核心问题 Sora面临的挑战是将不同类型的视觉信息,如视频、文本、图像和声音等,整合为一种共同的表征形式。这种转换是实现统一训练过程的关键,旨在将各类数据集中到一个训练框架中,以便于进行大规模的统一学习。简而…

rime 输入²⁰²⁴/₀₂.₂₁ 格式日期

如何书写一个日期,例如 2024/02/21 星期三、Feb. 21th, 2024、20240221、甲辰(龙)年正月十二,现在我们介绍一种新的日期格式 ⁰⁴/₀₂.₂₁ 的输入方法。 上标字符 在rime输入法中,我们可以使用符号/来启动特殊符号的输入,例如我们可以通过/sb来输入上标字符,如下👇:…

WebRTC最新版报错解决:city.wav:missing and no known rule to make it (二十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

CheatEngine基础进阶篇

我们在上一篇文章里说了CE的安装,汉化以及最基础最基础的值扫描和修改方法,当然很多游戏不能通过这些简单的手段就能达到修改值的效果,因此我们还需要掌握以下几个重要的知识点: 指针寻址 上一步阐述了如何使用"代码查找"功能对付变化位置的数据地址,但这种方法…

鸿蒙应用开发,比 React 体验更好

痛点 一直以来,使用 HTML CSS 来表达 UI 结构,都有一个若隐若现的痛点。痛点来源主要体现在 DOM 结构的语义表现力不足。 例如这样一段代码,我们能够很清晰的知道 DOM 结构是怎么样的,但是其具体的布局结构方式和特性就不知道了…

Redis面试题关于持久化的问题

什么是Redis持久化?Redis有哪几种持久化方式?优缺点是什么? 持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。 Redis 提供了两种持久化方式:RDB(默认) 和AOF RDB: rdb是Red…

五种多目标优化算法(MOJS、MOGWO、NSWOA、MOPSO、NSGA2)性能对比,包含6种评价指标,9个测试函数(提供MATLAB代码)

一、5种多目标优化算法简介 1.1MOJS 1.2MOGWO 1.3NSWOA 1.4MOPSO 1.5NSGA2 二、5种多目标优化算法性能对比 为了测试5种算法的性能将其求解9个多目标测试函数(zdt1、zdt2 、zdt3、 zdt4、 zdt6 、Schaffer、 Kursawe 、Viennet2、 Viennet3)&#xff0…

域名 SSL 证书信息解析 API 数据接口

域名 SSL 证书信息解析 API 数据接口 网络工具,提供域名 SSL 证书信息解析,多信息查询,毫秒级响应。 1. 产品功能 提供域名 SSL 证书信息解析;最完整 SSL 属性信息解析;支持多种元素信息抽取,包括主题的可…

Sample Pairing(ICLR 2018)

paper:Data Augmentation by Pairing Samples for Images Classification 本文的创新点 本文提出了一种新的应用于图像分类的数据增强方法SamplePairing,这种简单的数据增强技术显著提高了所有测试的数据集的分类精度。此外当训练集中的样本数量非常少…

Web前端3D JS框架和库 整理

在WebGL库和SVG/Canvas元素的支持下,JavaScript变得惊人的强大。几乎可以为网络构建任何东西,包括基于浏览器的游戏和本地应用,许多最新的突破性功能都在3D上运行。 为此,「数维图小编」整理了19个交互式3D Javascript库和框架&am…

NestJS入门6:日志中间件

前文参考: NestJS入门1 NestJS入门2:创建模块 NestJS入门3:不同请求方式前后端写法 NestJS入门4:MySQL typeorm 增删改查 NestJS入门5:加入Swagger 1. 安装 nest g middleware logger middleware​ ​ ​ 2. lo…

关于发送邮件时Reply Reply All和Forward的区别

我们发送邮件的时候总是会纠结到底是用回复,还是回复全部,还是转发。 回复- 仅回复发件人。 全部回复- 回复发件人和抄送/密件抄送的联系人。 转发- 将电子邮件的副本发送给其他收件人。 这几种情形分别在什么时候用呢? 回复 比如Alen给你…

阿里云带宽

📑前言 本文主要是如何将阿里云服务器迁移实现数据转移的文章,如果有什么需要改进的地方还请大佬指出⛺️** 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日…

两年外包生涯做完,感觉自己废了一半....

先说一下自己的情况。大专生,17年通过校招进入湖南某软件公司,干了接近2年的点点点,今年年上旬,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了五年的功能测试…