新手小白学自动化测试必须要知道的知识!

news2024/10/6 22:24:22

1、为什么要进行自动化测试?

①黑盒测试回归效率低;

②手动测试的偶然性和不确定性;

③回归的覆盖率不足;

④交付的产品质量无法保证,全靠评估;

⑤系统越复杂,问题越多;

⑥上线时间长、构建失败率高导致的蝴蝶效应(迭代快,加班多);

2、自动化测试能解决什么问题?

①提高出现问题后的响应速率;

②降低回归成本;

③提高回归覆盖率;

④提高回归效率;

⑤提高回归的稳定性;

3、自动化测试的不足有哪些?

①无法减少成本投入,而是为了加快测试结果反馈,提升测试质量;

②自动化适用于回归和冒烟,而不是发现BUG;

③录制回放功能是鸡肋,可视化并不是一个很好的做法;

④不是所有所有系统所有功能都适合做自动化测试;

4、常见的自动化测试框架?

接口自动化框架常用组合:

方案一:Java+TestNG/Junit+Maven/ANT/Gradle+Jenkins+Mysql+Testlink/Redmine
方案二:JMeter+Maven/ANT/Gradle+Jenkins+Mysql+Testlink/Redmine
方案三:Python+Unittest/Pytest+Jenkins+Testlink/Redmine
方案四:Python+Robot Framework+Jenkins+Testlink/Redmine

UI自动化测试框架常用组合:

方案一:Java+Selenium/Appium+TestNG/Junit+Maven/ANT/Gradle+Jenkins+Mysql+Testlink/Redmine
方案二:Python+Selenium/Appium+Unittest/Pytest+Jenkins+Testlink/Redmine
方案三:Python+Selenium/Appium+Robot Framework+Jenkins+Testlink/Redmine

通过上面的一些常见框架,你发现了什么?它们都拥有共同特性:编程语言+单元测试框架+扫描编译工具+持续集成工具+数据库+项目管理工具。

编程语言:编写测试脚本、日志记录和输出;

单元测试框架:提供测试脚本运行、异常校验等一些列的配置;

扫描编译工具:测试文件扫描编译,一般配合持续集成工具使用效果更佳;

持续集成工具:Jenkins,经典的持续集成工具;

数据库:测试数据管理;

项目管理工具:测试结果统计管理;

自动化测试工具太多,上面只是列举使用率较高以及一些开源工具,具体的框架选型,需要根据具体项目特点和团队、个人技术特点来决定。

5、接口测试的意义和必要性

接口,即API,应用程序编程接口。以下主要说说接口测试的必要性和意义:

接口测试实施在多系统的平台架构下,有着极为高效的成本收益比(当然,单元测试收益更高,但实施单元测试的成本投入更大,技术要求更高,所以应该选择更适合自身的才是最好的方案)。

接口测试天生为高复杂性的平台带来高效的缺陷检测和质量监督能力,平台复杂,系统越庞大,接口测试的效果越明显。

总的来说,接口测试是保证高复杂性系统质量的内在要求和低成本的经济利益驱动作用下的最佳方案,主要体现在如下三个方面:

1、节省测试成本

根据数据模型推算,底层的一个程序BUG可能引发上层的8个左右BUG,而且底层的BUG更容易引起全网的死机;接口测试能够提供系统复杂度上升情况下的低成本高效率的解决方案。

2、接口测试不同于单元测试

接口测试是站在用户的角度对系统接口进行全面高效持续的检测。

3、效益更高

将接口测试实现为自动化和持续集成,当系统复杂度和体积越大,接口测试的成本就越低,相对应的,效益产出就越高。

6、开展接口测试必备的技能

开展接口测试需要的技能,基本就是以下几点:

业务流:了解系统及内部各个组件之间的业务逻辑交互;

数据流:了解接口的I/O(input/output:输入输出);

协议:包括HTTP协议,TCP/IP协议族;

工具:工具可以辅助我们更好更高效的完成工作,常用的接口测试工具有:Jmeter、LoadRunner、SoapUI、Postman等;

数据库知识:无论是从数据库获取知识,还是确认数据落地,抑或接口对数据执行了哪些操作,都需要确认,因此数据库知识(其实就是增删改查)就很有必要;

接口文档的几个必要点:完整性、一致性、容错性;

7、接口自动化测试

1、如何开展接口测试?

首先,调试单个接口,保证单个接口的正确和通畅(类似于性能测试中的基准测试);

其次,明确数据流,业务流;

最后,将N个接口测试脚本串起来,执行即可;

最重要的一点,别想太多太复杂的层面,先把最基础最简单的做起来,就成功一大半了,至于扩展性的第三方接口、https、定时任务、自动出测试报告、自动发邮件等等功能,这都是不断累计和优化的,想太多不如行动起来,让接口自动化测试落地,才是我们首先需要考虑的。

2、开展之前需要明确的问题?

①现在的测试对象包含几个页面?

②每个页面涉及几个接口?

③分别在哪一步调用?

④每个接口包含哪些字段?

⑤各个字段对应数据库哪张表?

⑥每个表中各个字段是什么意思?

⑦各个接口对表产生了怎样的操作?

3、搭建自动化测试框架

什么是框架?你可以理解为一个完整的环,也可以理解为让接口测试脚本运行的一整套环境,平台,随便什么都可以;一般一个自动化测试框架包含以下几点。

数据池:即测试数据的存储管理,一般集成为一个data包,其中包括:

log(日志文件)、report(测试报告文件,一般为xml格式)、case-data(单个接口的测试数据,一般为json格式)、server-data(接口业务串联的数据,可以用excel管理)

脚本管理中心:接口测试脚本的统一管理、存储、调度中心,常用的工具有maven、ant等,或者可以使用编程语言中的单元测试框架提供的功能,选择自己适用的即可;

运行平台:一般是借助工具来运行这些测试脚本,工具可以使用上面提及到的几种(jemter、loadrunner、soapui等),同样,选择合适的很重要;

持续集成工具:最常见的就是Jenkins,它的作用就是监控外部程序的调用执行,定时或者触发调度任务,测试脚本执行等功能;

通信服务:dubbo、spring_boot、thrift等RPC、REST同步调用服务;

测试结果统计管理中心:比如testlink,目的是为了测试结果自动更新上传,更好的统计测试结果,以便后期的优化;

总而言之,接口自动化测试的意义就是:数据与脚本分离,测试结果自动提交通知,提高测试脚本和测试数据的维护便利等等。

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

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

  全套资料获取方式:点击下方小卡片自行领取即可

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

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

相关文章

14私有化属性的意义

目录 私有化属性有两个意义,一个是数据保护,一个是数据过滤 一、数据保护 二、数据过滤 私有化属性有两个意义,一个是数据保护,一个是数据过滤 一、数据保护 class Person:def __init__(self):self.__age 10pass p1 Person(…

windows安装nvm以及解决yarn问题

源代码 下载 下一步一下步安装即可 检查是否安装成功 nvm出现上面的代码即可安装成功 常用命令 查看目前安装的node版本 nvm list [available]说明没有安装任何版本,下面进行安装 nvm install 18.14使用该版本 node use 18.14.2打开一个新的cmd输入node -…

Excel 从网站获取表格

文章目录 导入网站数据导入股票实时行情 用 Excel 获取网站数据的缺点:只能获取表格类的数据,不能获取非结构化的数据。 导入网站数据 转到地址之后: 实测该功能经常导致 Excel 卡死。 导入股票实时行情

Observability:使用 Elastic Observability 摄取和分析 Prometheus 指标

作者:Jenny Morris 在监控和可观察性领域,Prometheus 凭借其强大的数据收集机制、灵活的查询功能以及与其他工具的集成以实现丰富的仪表板和可视化,已成长为云原生环境中监控的事实上的标准。 Prometheus 主要是为短期指标存储而构建的&…

软件工程与计算总结(十)软件体系结构设计与构建

目录 ​编辑 一.体系结构设计过程 1.分析关键需求和项目约束 2.选择体系结构风格 3.体系结构逻辑设计 4.体系结构实现 5.完善体系结构设计 6.定义构件接口 二.体系结构原型构建 1.包的创建 2.重要文件的创建 3.定义构件之间的接口 4.关键需求的实现 三.体系结构的…

算法通过村第十四关-堆|青铜笔记|堆结构

文章目录 前言堆的概念和特征堆的构成过程插入操作删除操作总结 前言 若执于空,空亦为障。 --彼得马西森《雪豹》 堆结构是一种非常重要的基础数据结构,也是算法的重要内容,很多题目甚至只能通过用堆来进行,所以我们必须明确什么类…

AnyLogic Pro 8.8.4 Crack

为什么选择 AnyLogic 仿真软件? 行业特定库 用于通用业务流程或工作流程的流程建模库。 流体库可模拟采矿或石油天然气等行业的散装货物和液体输送。 用于铁路运输、码头和堆场的铁路图书馆。 行人图书馆,用于记录机场、体育场馆、车站或购物中心的行人…

深度学习环境 | Linux下安装,卸载,查看pytorch版本

一 在Linux下安装pytorch 1 进入Linux环境以后 新建一个名为pytorch的虚拟环境,执行以下代码: conda create -n pytorch python3.82 激活新建的pytorch虚拟环境,执行以下代码: conda activate pytorch # conda版本较新使用这条…

目录启示:PHP 与命名空间的声明

文章目录 参考环境命名空间概念版本支持影响范围 全局命名空间概念魔术常量 \_\_NAMESPACE\_\_声明全局命名空间 声明命名空间为空间命名命名规则核心命名空间 子命名空间的声明在同一文件中定义多个命名空间无括号命名空间声明有括号命名空间声明禁止混合使用推荐使用有括号命…

【Python学习笔记】类型/运算/变量/注释

前言 人生苦短,追求生产力,做一只时代风口的猪,应该学python Python语言中,所有的数据都被称之为对象。 1. 对象类型 Python语言中,常用的数据类型有: 整数, 比如 3 小数(也叫浮…

如何查找文献,如何阅读文献

一、高效查找需要阅读的文献 1、首先进入知网的高级检索页,点击“学术期刊”,你会看到“来源类别”选择,在这个里选择北核和C刊 2、在检索结果页选择一篇自己感兴趣的文章,点击篇名进入文章详情页,下拉可看到核心文献…

高速数字化仪和AWG在车辆总线(CAN/LIN/PSI5)测试中的应用(二)

前情回顾 上期德思特向大家介绍了德思特模块化数字化仪在车辆测试中的应用,8到16位的通道,高达5 GS/s的采样率允许选择与应用相匹配的快速或慢速采样,即使缺少组件,它们也可以进行测试。这期将为大家介绍如何使用信号源进行仿真&…

呼吁社区共同维护Sui品牌和商标

Sui社区成员可以通过举报Sui商标和品牌资产的不当使用来帮助保护网络的信誉。Sui商标政策解释了logo和名称的可接受和不可接受的使用方式。这些展示代表Sui面向公众,而善意行为者的正确使用有助于维护Sui的声誉。 Sui网络在公众中享有良好声誉,Sui社区都…

遥感影像的面向对象方法

面向对象分割算法是一种将图像中的像素分割成不同的对象的算法。它通过对像素进行聚类,将相似的像素分为同一个对象,从而实现图像分割的目的。常见的面向对象分割算法包括基于区域的分割算法、基于边缘的分割算法和基于能量的分割算法等。 其中&#xff…

【2023年11月第四版教材】专题1 - 计算题考点汇总 (合集篇)

专题1 - 计算题考点汇总 (合集篇) 1 进度类1.1 PERT三点估算1.1.1 β分布1.1.2 三角分布 1.2 单代号网络图1.2.1 画图1.2.2 找关键路径1.2.3 计算总工期1.2.4 总时差1.2.5 自由时差1.2.6 工期压缩 1.3 双代号网络图1.4 双代号时标网络图1.4.1 画图1.4.2 找关键路径1…

大公司产品经理都用哪些原型工具?

原型设计工具的应用场景包括产品展示、产品需求规划和抽象到具体呈现,那么如何根据应用场景选择合适的原型工具呢?不用说,本文列出了常用的原型设计工具,看看你最想选择哪一个! 即时设计 即时设计是国内一款专业级的…

java非文本文件copy

文本文件使用字符流来处理 非文本文件使用字节流来处理 字节流处理代码整理 public void copyFile(String srcPath, String desPath) {FileInputStream fileInputStream null;FileOutputStream fileOutputStream null;try {File srcFile new File(srcPath);File desFile ne…

链表(3):双链表

引入 我们之前学的单向链表有什么缺点呢? 缺点:后一个节点无法看到前一个节点的内容 那我们就多设置一个格子prev用来存放前面一个节点的地址,第一个节点的prev存最后一个节点的地址(一般是null) 这样一个无头双向…

Dart-C、Dart-Kotlin/Java/Swift/Object-C、Kotlin-C数据类型对照表

参考一:Dart FFI 数据类型映射 一、Dart—C 的数据类型对照 二、Dart—Java/Kotlin/Object-C/Swift 的数据类型对照 三、C—Kotlin 的数据类型对照

WordPress发布文章上传图片如何默认选择全尺寸

最近发现每次上传图片插入到文章中,图片默认选择缩略图大小并靠左,每次都需要手动修改一下图片信息,比较麻烦。 今天为大家提供修改默认上传图片大小和对齐方式等。 将代码添加到functions.php: //WordPress 设置图片的默认显示…