软件测试之接口自动化测试的“能”与“不能”到底能不能?我来告诉你!

测试baby 测试baby     2022-12-12     247

关键词:


前言:

自动化测试,算是近几年比较火热的一个话题,当然,更是软件测试未来的一个发展趋势。未来,功能测试等非核心的测试工作,都将被外包。想要在软件测试这个行业继续前行,就必须拥有核心竞争力,掌握自动化测试技术,是必不可少的一个技能。

在《Google软件测试之道》一书中有介绍到:在Google,70%的自动化测试工作集中于单元测试,20%集中于接口测试,剩下10%才是UI测试。你悟到了吗?

虽然,我们没有Google那么完善的机制和工程师文化,没必要一切照搬Google,但Google作为互联网2.0时代最耀眼的一个公司,它的技术发展方向,流程管理等可以说是不久的将来,

我们也要到达的方向。选择适合自己的,落地应用,是当下我们应该做的。

目前国内的互联网行业,大环境来说,还处在一个快速发展,需要流程化标准化的时期,如何跟上不断变幻发展的节奏?除了不断了解接触新的东西,还需要不断学习,提升自身,以内在的驱动力,去紧跟时代浪潮。即使做不了弄潮儿,也不能变成时代淘汰的那一批。

一、接口自动化测试的"能”

接口自动化的目标:

用于项目的 API 层的 HTTP 接口的功能逻辑验证? 减少手工测试的工作(回归验证;跨模块的验证)? 实现手工验证不能做的验证(如接口涉及大量数据的排序比较)? 手工很难充分验证的功能逻辑(如接口的功能验证涉及大量的数据)

Ps:实际项目中,接口自动化的根本目的是什么?

个人认为是定时跑时,能监控接口,当接口功能失常时,可以及时发现,即发现 Bug。因此,可以使用代码覆盖率来评估接口自动化的完整性,但更重要的是发现问题。

接口自动化 Case 用例设计原则、切记:

不要为了做自动化而做自动化,做的首要目标是问题出现时,能第一时间发现;? 自动化中的代码覆盖率统计可以作为参考,但不能一开始就为了提高覆盖率,陷入 Case 设计之中;

注意:

好的接口自动化 Case 设计,依赖于 Case 设计者的功能理解程度(手工测试的功力)+ 功能覆盖点;

原则:

1.将手工测试点转换为自动化用例。Case 设计注意:验证用例通过的标准—参考一个功能点容易出问题的地方。或者说,一个用例的通过说明此功能点一定没问题;反之,一定有问题。

2.覆盖手工测试不易检查/太浪费时间的检查

比如:

一个 HTTP 接口设计大量的数据比较的时候;? 接口的 json 返回不能直接检查功能点是否正确(需要调用另一个接口的 json 来间接验证时);? 一个接口的 json 返回需要和其他模块的接口联合” 互相验证 “(需要调用其他模块的接口的 json,两个 json 相互来验证彼此的正确性)

3.”边缘性“的功能检查 这里主要指的是回归验证。如果系统涉及边缘性的功能验证,把此类功能设计层自动化用例

4.接口验证的程度 接口的验证:即判断一个接口是否正常的标准。注意:接口参数”合理地“组合;

5.DB 数据更新检查(如果有必要)注意从接口的角度检查 DB 数据的更新:

其他系统的数据更新到待测系统 DB 中的数据;每天待测系统由于用户操作更新到 DB 中的数据;

6.接口自动化的数据准备

关于是否需要为接口自动化,特意在 DB 中准备需要的数据,适需要程度而定。原则:除非必须,否则不用准备。如果不准备数据,无法完成对接口的验证,则自己准备数据即可。

注意:一旦自己准备数据,评估对其他功能验证的影响。确保DB 中数据量和真实性(模拟的数据需要充足,并且不能和真实数据差异性过大)。

接口自动化用例定时跑:

自动化一般会选择每天定时跑。这里需要注意的一点就是定时跑的时间选择。时间选择上注意几点:

  • 在线上跑时,注意对线上接口的影响(一般要求:线上的回归验证可以随时跑);
  • 如果要检查 DB 数据更新的有关逻辑,注意数据的稳定性 (如用户量少的时候);
  • 在测试时(非生产环境),接口涉及读,写 DB,考虑是否需要定时跑;

二、接口自动化测试的"不能”

首先,接口自动化不是万能的,总有覆盖不到的时候。知道自动化的”不能“之处,才能更好配合手工测试出问题。

自动化的”不能“之处如下:

1)HTTP 接口突然出现压力问题(前期的压测);

2)Web 层面的手动测试 (新功能上线后,对原有功能回归时,仍需要接口自动化验证接口,手工测试 Web 页面功能);

3)异常情况(如需要第三方 API 挂掉/超时的场景);

接口自动化之难点:

1)实现变动 vs 维护的工作量 vs 检查的详细程度;

检查详细程度:自己和自己比;自己和同类接口同一指标比较(因为口径不一致,或者内部实现变化,需要后续维护);

经验:自己和自己比,扩展和兼容性比较好(动态参数 + 完成功能检查);而自己和别的接口比 看需求而定(接口提测前后 数据准确性检查比较参考);

P.s:小的点,执行时间和执行频率;

用途:发现功能失常,功能不可用;

2)接口监控 —— 执行时间和执行频率

检查详细程度 vs 执行时间和执行频率 (只能和自己);? 检查详细程度 vs 经常频繁报警(一个接口怎样算是正常的,返回非200+功能正常)

3)数据报表;

数据的正确性:统计口径(业务方的口径+多个接口/模块口径的差异后导致业务方不一致)。

接口自动化之痛点

痛点当然源自难点(叨叨觉得说的很对):

当接口本身实现频繁变动、对接口的检查太过详细、开发修复缓慢时,那么不停的报警将会来了。?不合理的自动化设计及维护方案,造成自动化成本大于自动化收益时,接口自动化就变得无足轻重了。实际项目中的体会是:为了自动化而自动化。特别测试场景过于复杂时,当自动化实现成本远大于手工测试成本时,就没有必要非去自动化测试了。

最后:【叨叨可以给予你的帮助】


这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

关注我的微信公众号:【伤心的辣条】免费获取~

软件测试技术交流群: 902061117 同行大牛交流学习解惑!

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

ui自动化测试之jenkins配置

前一段时间帮助团队搭建了UI自动化环境,这里将Jenkins环境的一些配置分享给大家。背景:团队下半年的目标之一是实现自动化测试,这里要吐槽一下,之前开发的测试平台了,最初的目的是用来做接口自动化测试和性能测试,... 查看详情

web接口测试之jmeter接口测试自动化(数据驱动测试)

 接口测试与数据驱动1简介    数据驱动测试,即是分离测试逻辑与测试数据,通过如excel表格的形式来保存测试数据,用测试脚本读取并执行测试的过程。 2数据驱动与jmeter接口测试    我们已经简单介绍了接口... 查看详情

jmeter如何和charles进行接口测试

...么是接口测试,接口测试到底如何开展,我相信任何一个软件测试人员都会有这样的疑问,这里我以接口测试自动化平台的登录接口进行讲解。一、什么是接口测试?  接口测试是测试系统组件间接口的一种测试。接口测试主... 查看详情

自动化测试之明确目的

最近写了不少的自动化脚本,但是写的越多,渐渐的变得迷茫起来,做自动化的意义是什么?为什么做自动化?自动化到底能为我们带来什么?在查阅了一些大佬写的文章后,仿佛摸索到了一点做自动化的原因,摘录了几条,特... 查看详情

软件测试自动化测试之——接口测试从入门到精通,每天学习一点点

什么是接口1、软件接口,是人与软件之间的交互界面,也指软件本身的狭义“接口”。2、人与软件之间的接口称作“用户界面”,也就是“UI”。3、软件不同部分之间的交互接口。通常就是所谓的API,应用程序编程接... 查看详情

python接口自动化之登录接口测试(代码片段)

在上一篇Python接口自动化测试系列文章:Python接口自动化之unittest单元测试,主要介绍单元测试,unittest模块特性、大致流程、源码及实战例子。以下主要介绍接口概念、接口用例设计及登录接口测试实战。 1、什么... 查看详情

浅谈自动化测试行为的本质

...化。当然,不同层面的自动化关注点是不一样的。如果对软件测试、接口测试、自动化测试、面试经验交流。感兴趣可以加软件测试交流:1085991341,还会有同行一起技术交流。  单元测试自动化:调用被测试的类或方法,根... 查看详情

web接口测试之jmeter接口测试自动化

 软件测试自动化从不同的测试阶段分类,可从下层到上层依次分为单元测试-->接口测试-->界面自动化测试。单元测试一般有开发人员自行完成,而界面自动化测试合适的测试条件又很难达到,测试人员在繁杂的... 查看详情

接口测试之接口文档内容简介

今天跟以前一个测试同事聊天,聊到了接口测试的相关内容。 她告诉我:她以前的公司没有接口文档的,那么,我问她:你们如何做接口测试呢?她说:自己抓包来做接口测试的。 目前很多公司越来越重视接口测试了,... 查看详情

python接口自动化之openpyxl学习

python接口自动化之openpyxl学习 由于接口自动化测试需要用到python的第三方库--openpyxl库,运用openpyxl库可以进行exl的读和写,再结合unittest测试框架,就能进行接口自动化测试。 一:openpyxl库的安装:pipinstallopenpyxl 二:... 查看详情

python接口自动化测试框架(工具篇)--接口测试工具jmeter

...装JMeter接口测试案例快速创建JMeter接口测试计划扩展接口自动化测试性能自动化测试前言相比使用postman做接口测试,作为测试人员,熟练使用jmeter做接口测试已经是必备技能,这可以从各大招聘测试岗的JD中得到印证,它不仅仅... 查看详情

接口测试怎么做

...来确定是否在功能、可靠性、性能和安全方面达到预期的软件测试活动。由于API都没有GUI界面,API测试都是在通讯层进行的。现在API测试在自动化测试中有着很重要的地位,因为API一般是应用逻辑的主要接口,同时GUI测试在敏捷... 查看详情

接口用例之好用例和坏用例

  自动化测试的重要性显而易见,但自动化测试又无法解决所有问题,所以说完全依赖自动化是不可能的,但完全没有自动化是万万不能。在软件开发项目中,重度依赖人力进行持续回归是一件非常枯燥的重复工作。企业需要... 查看详情

api接口fuzz测试初探

参考技术A在日常测试工作中,经常会有api接口的测试,除了正向流程的测试之外,我们经常还需要覆盖一些异常情况。例如:事实上,我们组的接口测试demo框架中,在dataprovider中也经常能够看到诸如下面的例子。此处是看看接... 查看详情

接口自动化测试之testng测试报告extentreports的应用

pom.xml导入包1<?xmlversion="1.0"encoding="UTF-8"?>2<projectxmlns="http://maven.apache.org/POM/4.0.0"3xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"4xsi:schemaLocation="http://maven.apache 查看详情

(三)接口自动化测试平台之——测试集合接口测试交互页面设计

参考技术A用例集合列表我们在当前页面创建了用例集合之后,可以在创建接口的时候,选择归属集合,方便管理,查看以及测试页面功能:执行:执行当前服务结合下所有接口的用例修改:编辑服务集合新增:新增服务集合删... 查看详情

jmeter之接口功能自动化

一、接口测试简述接口:用来连接前端,后端还有移动端的程序模块。由于不同端的工作进度不一样,需要对最开始出来的接口进行接口测试。  接口分类:POST,GET,PUT,DELETE。  POST请求的数据是放在WebForm里面的... 查看详情

微服务测试之接口测试和契约测试(代码片段)

...处的阶段在实际的工作中,结合随行付的实际情况我们对自动化测试金字塔原理进行了定制,加入契约自动化测试内容,形成如下新版自动化测试金字塔结构。由图可知,一个项目的测试过程,从项目推进的维度,首先进行单元... 查看详情