Python自动化测试 史上最全的进阶教程
Python自动化测试就是把以前人为测试转化为机器测试的一种过程。自动化测试是一种比手工测试更快获得故障反馈的方法。
随着时代的变革,也许在未来测试这个职位的需求会越来越少甚至消失,但是每一个组织,每一个客户对软件质量的要求是永远不会消失的。我们需要做的就是打造属于自己的核心竞争力,与时代同行。
自动化测试是一种质量保障的方式,最重要的还是以做好一款高质量产品为前提。测试工作很多时候就是在不断平衡质量、效率、驱动业务这三者之间的比例和深度。根据不同的业务阶段、不同的目标、当前的关键事件驱动,在质量、效率、驱动业务上不断地调整策略和战术。
警告!
在学习自动化测试之前,首先要了解自动化测试最常见的11大误区:
一、自动化测试的认知误区
任何手工测试能够做的,都可以用自动化来实现。
自动化测试工程师,只会写写脚本就可以通过面试。
自动化可以极大程度上提高工作效率。
自动化测试可以发现很多Bug。
测试工程师的天花板就是自动化测试。
不熟悉业务也可以做自动化测试。
自动化测试很简单,谁都可以做。
自动化测试需要学习很多种测试工具。
没有断言和测试结果的自动化测试,都是耍流氓。
自动化是KPI或面子工程,老板让我做,我就做。
自动化就是把所有的场景、用例和数据,全都跑一遍。
首先,以上的观点全部都是错误的。(看看你们有没有中招?)
有两张图很经典:
1.自动化测试金字塔
最顶层的是 UI自动化,第二层是接口自动化,第三层是单元测试。越往上 ROI(投入产出比)越高,解决的场景也不相同。
初学者一般会从 UI自动化开始学习,因为 UI自动化 很容易练习,也是能实际看到效果的一种自动化测试手段,能够给初学者带来信心。但是 UI自动化 会面临难维护,使用场景局限的问题。
其实,自动化测试金字塔,每一层能够解决的问题和能够发现Bug的能力也不尽相同,我们需要根据实际情况,去选择我们需要的测试手段。
2.不要为了自动化而自动化
测试最重要的是测试思维!
代码、测试工具、测试平台等等,都是为测试这个事儿服务的手段,不要本末倒置。
「质量是QA的脸面,写了100条自动化测试用例,别人可能不会觉得你很牛B,但是只要是出现一个线上低级Bug,你的绩效可能就会打C(双押 skr)」
做自动化测试,就像大冬天里的秋裤,你穿不穿没人在意,但冷暖自知。
二、自动化测试方向该如何走(学习路径)
再讲自动化测试学习路径之前,先看常见自动化测试有哪些常见分类?
软件测试领域的自动化测试的概念往往很宽泛,在实际的应用中,自动化可以根据项目的进度及项目类型要求往往可以划分的更加细致一些,并且每种类型的自动化测试侧重点也不一致
接口测试做什么?
接口自动化测试,是当前自动化测试中的首选,任何一个被测软件系统一般都是前后端分离的,前后端通讯都需要接口,测试接口主要目的就是测试后台提供服务是否正常,故而接口的测试自动化测试中最基本的;如果要学习自动化测试,建议从接口测试开始学习。
web测试做什么?
web自动化测试,也是自动化测试领域的重点。对于有页面类的项目,几乎都可以进行web自动化的测试。主要通过模拟人操作对应系统,验证功能等方面是否正常,能大大提升测试效率,主要应用在一些重复操作的测试中。
移动自动化测试做什么?
移动自动化主要是针对于移动的系统的测试。该测试需要验证功能、性能、兼容性、易用性等方面,主要通过工具或者代码命令的方式模拟人工操作,验证整个软件系统的过程。目前对于移动端的测试主要在功能方面的测试外,还需要覆盖到非功能方面的测试。
看完自动化测试分类后,若想得到一个完整的自动化测试完整路径。我们还需要了解学习自动化测试的前置(支撑)知识和技能。
自动化测试,简而言之,就是把以人为驱动的测试行为转化为机器执行的一种过程。所以自动化需要具备一定的代码能力,故而至少学习一门编程语言,主流的有Java和Python,对于初学者来说,Python容易上手学习。我也是选择了python
这个过程实现除了语言外,还需要学习Linux和数据库相关知识,因为项目环境的搭建和数据的管理维护都需要具备这方面的技能。
任何一种自动化的应用不外乎两种方式,要么借助于工具实现,要么通过代码实现,不管通过哪种方式实现,都需要学习并会使用一些基本工具的技能。
所以自动化前置(支撑)知识和技能如下所示:
所以,我们的到的学习自动化测试的路径是:
linux -> mysql -> python | java -> 基本工具(JIRA/禅道) ->接口自动化测试-> web自动化测试-->移动自动化测试
三、自动化配套学习资源
接口自动化测试
接口测试一般有两种方式实现测试,一种通过工具实现;另一种通过代码实现,工具更多的做调试,大多数互联网企业做接口测试都是通过代码实现。
工具的测试,一般容易上手,对于“0”基础的人来说,不失为入门的首选,代码量有限,只要熟悉测试流程,会熟练使用工具就能够完成基本的接口测试,但是灵活性差,自动化程度没有代码高,市面上常见可以接口测试工具有postman、Jmeter等。代码的实现,主要是通过python。
web自动化测试
web自动化测试主要通过代码实现。比如常见的应用有:Python/Java+selenium。
首先,还是需要熟练使用一门语言,非常熟练的运用至少一门编程语言。
其次,需要学习web测试的流程步骤,因为是基于页面默认人工操作,故而需要对于页面构成需要有一定的基础,比如:HTML+JavaScript+CSS,懂得页面元素的定位,以及常见的定位方式的使用等。如果有接口自动化的基础,那么学习web自动化相对会容易一些。
再者,通过一些相对完整的项目去实战训练,才能够较好的学习并把握web自动化的技能,通过反复的项目训练才能逐步的达到理想的效果。
移动自动化测试
移动自动化测试主要也是通过工具和代码的方式实现。比如常见的有:Python/Java+appium。
移动自动化除了哟啊掌握一门编程语言外,还需要学习移动测试的流程步骤,移动基本功能的和web端的基本类型。但是更多的需要测试一些非功能层面的应用,需要学习并使用一些手机模拟器(如:mumu)、第三方工具(如:GT工具)、adb命令、monkey等的使用,学习使用的工具较多,并且需要结合代码一起使用,这就要求学习的知识范围更加广泛,先从工具使用入手。另外:移动端的应用还需要进行异常测试,对于使用过程中出现网络、信息中断等异常场景的设计,对于手机本身使用过程中的场景结合实际项目训练学习。
关于这些知识点的掌握肯定是需要自己多花时间和精力的,关于这些学习资料和学习教程你可以去咱们交流群直接获取,还很多录制的视频教程,大佬的讲解非常详细,能够帮助你快速理解与掌握。点击下方小卡片进群哦~
相关文章:
Python自动化测试 史上最全的进阶教程
Python自动化测试就是把以前人为测试转化为机器测试的一种过程。自动化测试是一种比手工测试更快获得故障反馈的方法。 随着时代的变革,也许在未来测试这个职位的需求会越来越少甚至消失,但是每一个组织,每一个客户对软件质量的要求是永远不…...
centos pip失效
在 CentOS 上安装和配置 pip3 可能需要以下步骤: 确保 Python 3 已正确安装:请确保您已经正确地安装了 Python 3。在 CentOS 上,Python 3 可能默认安装在 /usr/bin/python3 路径下。您可以通过运行以下命令来验证 Python 3 是否正确安装&…...
Java——》ThreadLocal
推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…...
如何做好利益相关方的期望管理?
利益相关方对项目而言非常重要,有效管理利益相关方的期望可以帮助项目团队更好地满足利益相关方的需求,助于建立良好的合作伙伴关系,提高项目的可持续性和成功率。 如果项目团队无法满足利益相关方的需求,可能会引发冲突、争议或其…...
【K8S系列】深入解析k8s网络插件—Canal
序言 做一件事并不难,难的是在于坚持。坚持一下也不难,难的是坚持到底。 文章标记颜色说明: 黄色:重要标题红色:用来标记结论绿色:用来标记论点蓝色:用来标记论点 在现代容器化应用程序的世界中…...
从单页面应用角度去解决不跳转页面,也能更改浏览器url地址
正常来说不刷新页面,也能更改浏览器url地址的方法有很多,我们在网上搜的话可以看到有pushState、replaceState、popstate等方法,那还有没有其他方法呢? 答案是有的! 最近做一个vue商城项目的时候,用户点击支…...
Linux:keepalived + ipvsadm
介绍 Linux:keepalived 双热备份(基础备份web)_鲍海超-GNUBHCkalitarro的博客-CSDN博客https://blog.csdn.net/w14768855/article/details/132815057?spm1001.2014.3001.5501 环境 一台 centos7 keepalived ipvsadm (主…...
Linux基础命令(示例代码 + 解释)
查看目录下文件 ls [-a -l -h] [路径] -a(全部) -l(细节) -h(大小) ls ls / ls -a ls -l ls -h ls -alh ls -l -h -a ls -lah /切换目录 cd [路径] change di…...
巨人互动|Google企业户Google“自动采纳建议”应该如何使用
在数字化时代,Google已经成为了人们获取信息的主要渠道之一。而在使用Google搜索时,你可能会发现下拉框中自动提供的搜索建议。这些搜索建议是基于用户搜索行为和相关数据进行推测,旨在使用户更快速地找到所需信息。而Google还提供了一项名为…...
元宇宙全球市场规模到2030年将达9805亿美元!
元宇宙是一种新兴的概念,它指的是一个虚拟的世界,由人工智能、虚拟现实、区块链等技术构建而成。元宇宙的起源可以追溯到上世纪90年代的虚拟世界“第二人生”,但直到近年来,随着技术的不断发展,它才逐渐成为了人们关注…...
《向量数据库指南》——向量数据库内核面临的技术挑战及应对措施
最近一年,以 ChatGPT、LLaMA 为代表的大语言模型的兴起,将向量数据库的发展推向了新的高度。 向量数据库是一种在机器学习和人工智能领域日益流行的新型数据库,它能够帮助支持基于神经网络而不是关键字的新型搜索引擎。向量数据库不同于传统的…...
API对接中需要注意的事项
API对接是一个复杂的过程,需要对接双方准确地理解和遵循一系列步骤。以下是一些在API对接中需要注意的事项,以及每个步骤的详细解释和可能遇到的问题。 一、API定义和规划 明确API需求:在开始对接前,必须明确API的具体需求和使用场…...
linux 6中4T磁盘识别并分区格式化
存储端划分4T的LUN后,主机端操作如下 1、主机识别,本例中hba卡的端口是host11和host12 [rootdb1 ~]# echo "- - -" > /sys/class/scsi_host/host11/scan [rootdb1 ~]# echo "- - -" > /sys/class/scsi_host/host12/scan …...
WebServer 解析HTTP 响应报文
一、基础API部分,介绍stat、mmap、iovec、writev、va_list 1.1 stat 作用:获取文件信息 #include <sys/types.h> #include <sys/stat.h> #include <unistd.h>// 获取文件属性,存储在statbuf中 int stat(const char *…...
开利网络参与“大湾区独角兽创投大赛”进行蚓链数字生态项目路演
9月10日,广州市开利网络科技有限公司受邀参与位于广州国际医药港的“大湾区独角兽创投大赛”,进行“蚓链——企业数字化生态”项目的初赛路演。“大湾区独角兽创投大赛”是由中国企业新闻观察网指导,由中国商协会服务工作委员会、广东蚁米孵化…...
前端的8种跨域解决方案
在前端开发中,常见的跨域解决方案有以下8种: JSONP(JSON with Padding):利用<script>标签的跨域特性,通过动态创建<script>标签,请求一个带有回调函数的接口,服务器返回…...
Linux知识点 -- 网络编程套接字
Linux知识点 – 网络编程套接字 文章目录 Linux知识点 -- 网络编程套接字一、预备知识1.认识端口号2.套接字3.TCP协议与UDP协议4.网络字节序 二、socket编程接口1.socket常见API2.sockaddr结构 三、UDP套接字编程1.直接打印客户端信息2.执行客户端发来的指令3.多用户聊天4.在wi…...
逆向大漠插件/用VB6.0实现后台鼠标移动和后台鼠标左键点击
自动化设计软件,在一款做门的设计软件CypCut6.3 上实现了自动化勾选了 复选框。一切都是基于后台的。 Private Const GW_CHILD 5 Private Const GW_HWNDFIRST 0 Private Const GW_HWNDNEXT 2 Public Declare Function FindWindow Lib "user32" Alias &…...
重庆OV证书和EV证书有什么区别
SSL数字证书按照保护的域名数量和类型可以分为单域名SSL证书、多域名SSL证书和通配符SSL证书三种,按照验证方式可以将SSL数字证书分为DV基础型SSL证书、OV企业型SSL证书和EV增强型SSL证书三种。今天就随SSL盾小编了解OV证书和EV证书的区别。 1.OV企业型SSL证书由CA…...
uni-app(微信小程序)图片旋转放缩,文字绘制、海报绘制
总结一下: 要进行海报绘制离不开canvas,我们是先进行图片,文字的拖拽、旋转等操作 最后再对canvas进行绘制,完成海报绘制。 背景区域设置为 position: relative,方便图片在当前区域中拖动等处理。添加图片࿰…...
Spring Boot 2.x基础教程
Spring Boot 2.x基础教程 一、简介1. Spring Boot 2.x 简介2. Spring Boot 2.x 特点3. Spring Boot 2.x 与 Spring Framework 的关系 二、Spring Boot 2.x 环境搭建1. JDK环境安装与配置2. Maven环境安装与配置3. Spring Boot 2.x 项目创建 三、核心功能1. 配置文件及其加载顺序…...
汽车红外夜视系统行业发展总体概况
汽车红外夜视系统是一种技术,旨在帮助驾驶员在夜间或低光条件下提供更好的视觉能力。它利用红外光谱的特性来检测和显示在正常光线下难以察觉的热能辐射。这使驾驶员能够在夜间或恶劣天气条件下更好地识别和辨别道路上的物体、行人、动物或其他车辆。 汽车红外夜视…...
Java 和 PHP GC 的差异和差异出现的原因
JAVA 的 GC 处理 判断草死掉的两种方式:引用计数和可达性分析 可达性分析对 JAVA 比较好用的原因是 JAVA遵守这面向对象的严格要求,每个变量都被对象包裹,所以每个变量都能通过对象来进行遍历找到,最终判断他们的是否被引用&…...
loguru logger使用
一、基本使用 ①标准使用 from loguru import logger# 在标准输出里面输出一行debug日志 logger.debug("Thats dubug")②设置输出格式 from loguru import loggerlogger.remove(0) # 先删除格式 logger.add(sink./logger.log, format"{time: %Y-%m-%d %H:%M…...
vue-自适应布局-postcss-pxtorem
原理: 比如一个375px设计稿 其中一个320px宽度的元素 如何实现自适应布局呢? 其实可以这样理解: 我们先计算出375屏幕时候320px的大小,在屏幕变化时候,这些元素都会等比例缩放 比如屏幕从375 变为750px时候࿰…...
9.12|day 5|day 44 |完全背包| 518. 零钱兑换 II | 377. 组合总和 Ⅳ
● 完全背包 主要是看清01背包和完全背包的区别 //01背包 for(int i 0;i<weight.size();i){ for(int j bagWeight;j>weight[i];j--){dp[j] Math.max(dp[j],dp[j-weight[i]]value[i]); } } //完全背包 for(int i 0;i<weight.size();i){for(int j weight[i];j<…...
C++ 中的原子变量(std::atomic)使用指南
目录 C 中的原子变量(std::atomic)使用指南基本概念使用方法创建原子变量读取值修改值原子操作 常见应用场景1. 计数器2. 控制标志3. 链表和数据结构 示例代码结论 C 中的原子变量(std::atomic)使用指南 原子变量(std…...
【用unity实现100个游戏之9】使用Unity制作类八方旅人、饥荒风格的俯视角2.5D游戏
前言 2.5D游戏 是一种介于二维和三维之间的游戏形式。它通常在二维平面上展示游戏内容,但利用三维技术来实现更加逼真的图像效果。 在2.5D游戏中,角色和环境通常是以平面的形式呈现,但可以在垂直方向上移动。这意味着玩家可以在一个相对较薄…...
如何在群晖中,正确配置 docker 的 ipv6 地址
参考 2023年9月12日 https://synocommunity.com/ https://github.com/wangliangliang2/fix_synology_docker_ipv6 https://post.smzdm.com/p/an3np8m7/ 正文 关于这个话题,国内搜索引擎得到的结果出奇的一致,且过时。 (看的我脑壳痛&#…...
XSS入门 XSS Challenges
level1(直接注入) <script>alert(xss)</script>level2(双引号闭合标签) 测试 <sCr<ScRiPt>IPT>OonN"\/(hrHRefEF)</sCr</ScRiPt>IPT>发现<>"被转换,构造新的语句 "><script>alert(/xss/)</…...
seo优化排名易下拉技巧/优化师培训机构
一面: 先是问了问项目,然后就开始问一些问题 1、每个请求耗时100ms,机器的配置是4核8G,问要达到10000TPS需要多少台机器? 没答上来,问了问是IO密集型还是CPU密集型,然后面试官说我想得太复杂…...
做动画人设有哪些网站可以借鉴/营销策略分析
这种组合方式,依赖的是JUnit和Spring容器,进行对象注入,而Mockit的作用是在spring生成的bean中,注入mock对象。相当于使用了Mockito的一部分功能。1、首先导入包:<dependencies>2、被测试类production-class&…...
蛋糕网站建设方案/如何被百度收录
Ruoyi 若依项目模板创建多级菜单加载失败问题处理以及路由懒加载失败时将组件更换为notfound src/store/modules/route.js /* 遍历后台传来的路由字符串,转换为组件对象 */ function filterAsyncRouter(asyncRouterMap, isRewrite false/* 是否重写服务端数据结构 …...
网站制作目标及要求/推广营销软件
背景 在开发过程中,由于后端与前端并行开发,或者前端需要等待后台开发,难以保证对接效率,同时即使用开发好的 API 对接,也有可能一个 API 不通就阻塞了整个软件的对接工作。同时对软件的敏感度也很高,一不…...
鸡西市网站建设/源云推广
目录一. 复习事物隔离级别事物隔离级别中可能涉及到的几个问题版本链二. MVCC什么是当前读,快照读什么是ReadView不同隔离解绑下 ReadView 的生成规则MVCC下可见性判断流程1. 读取已提交隔离级别下执行示例2. 可重复读隔离级别下执行示例如何解决幻读为什么可重复读隔离级别下是…...
张槎网站建设/百度关键词排名优化
作者:jason cnblogs.com/baizhanshi/p/7211802.html 之前栈长分享了重入锁的概念:《到底什么是重入锁,拜托,一次搞清楚!》,今天现来深入了解下 Synchronized 与 ReentrantLock 的区别! 可重入性…...