8年测试老鸟,接口测试+接口自动化测试整理,一篇通透...


前言

1、什么是接口测试?为什么要做接口测试?

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

由于如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,所以就要做接口测试。

同时,接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。

接口持续集成是为什么能低成本高收益的根源。现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。

前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

2、怎么做接口测试?

一般情况下,由于我们项目前后调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送和接收。所以我们下面整理了一下使用Jmeter工具进行http接口测试。

1)开发接口测试案例的整体方案

第一步: 分析出测试需求,并拿到开发提供的接口说明文档;

第二步: 从接口说明文档中整理出接口测试案例,里面要包括详细的入参和出参数据以及明确的格式和检查点;

第三步: 和开发一起对接口测试案例进行评审;

第四步: 结合开发库,准备接口测试案例中的入参和出参数据,并整理成csv格式的文件;

第五步: 结合接口测试案例文档和csv格式的数据文档,做接口测试案例的自动化案例开发。

2)接口自动化适用场景

目前设计的自动化接口测试案例有两个运行场景:

测试前置、开发自测:一个新的自动化接口测试案例开发完成后,直接发给接口对应的开发,安排在开发本地环境执行,一旦开发确认完成接口开发,就开始执行接口测试案例,基本上可以实时拿到测试结果,方便开发快速做出判断。

(开发本地运行的方式就是打开JMeter工具,导入JMX文件,开始执行可。)

回归测试:开发本地测试通过后,或整个需求手工测试通过后,把自动化的接口测试案例做分类整理,挑选出需要纳入到回归测试中的案例,在持续集成环境重新准备测试数据,并把案例纳入到持续集成的job中来,这些用于回归的接口测试案例需要配置到持续集成平台自动运行。

3、什么时候展开接口测试?

1)项目处于开发阶段,前后端联调接口是否请求成功
2)有接口文档,开发已完成联调,功能测试展开之前
3)专项测试:如测流量大小、查看图片压缩大小、测试接口请求响应时间

4)版本上线前,进入整体回归测试,查看接口是否有异常
5)版本功能文档后,接口自动化

4、接口测试的意义

1)保证系统的稳定性

一个系统的服务端越接近底层,对系统的影响就越大,甚至有可能牵一发而动全身,服务端的一个缺陷可能会引起客户端的几个甚至十几个缺陷,更可怕的是服务端的缺陷有可能引起系统的崩溃,这对整个系统来说,损失将是不可估量的,因此服务端接口的质量将直接影响到系统的正确和稳定。

然而,在实际的开发过程中,开发人员并没有充足的时间编写单元测试,并且他们往往对自己编写的代码有足够的信心,不愿意将时间“浪费”在编写单元测试身上。这个时候接口测试就肩负着重要的作用。

2)将bug控制在项目前期

就笔者所做的微信活动而言,后端系统比较成熟,对于前端开发来说,每个活动都有很大不同。这就导致后端接口开发只需要一天就可完成,而前端开发的工作量至少需要两、三天。

而在这个空当期就可以充分的对接口进行测试,从而尽早的发现系统bug;减少功能测试的工作量,缩短产品的发布周期。

3)检查服务器的异常处理能力

我们通常把前端的验证称为弱验证,因为它很容易被绕过,这个时候如果只站在功能的层面时行测试,就很难发现一些安全的问题。不以前功能为入口的接口测试就会发挥出它的作用。

5、接口测试用例设计思路

主要为三个方面

1)输入参数

输入参数的校验:必填校验,长度校验,参数的有效性校验(如身份证,手机号码的等),参数的组合校验(不同的参数组合可能会存在不同的业务场景)

2)接口业务逻辑

设计方法是分支覆盖—路径覆盖----场景覆盖,主要还是需要结合实际的业务场景,根本不会发生的业务场景就是无效的测试用例。

为避免遗漏可以将业务流程图先画出来,依据流程图分别涉及不同的分支不同的场景,考虑:接口超时,接口异常,接口请求成功或失败,成功后怎么处理,失败后怎么继续执行等等

3)输出

输出结果包括正常的输出,异常的输出,常用的方法是错误推断法,列举出程序中可能存在的错误或者异常,根据他们选择测试用例

6、接口测试文档

包括URL,调用方式,传入参数,返回值,状态码等
每一个状态码要有一条用例

测试步骤:

从开发人员那里获取接口文档,接口文档应该包括完整的功能接口、接口请求方式、接口请求URL、接口请求参数、接口返回参数。

如果当前项目没有接口文档,则可以使用fiddler对APP或者web进行抓包确认。

然后就是使用JMeter创建线程组,添加http请求,增加请求参数请求URL等,通过修改参数信息等等操作,查看请求的响应数据。

接口测试项目实战

下面是我整理的2024年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

人生最珍贵的不是终点站的掌声,而是追梦路上的每一个脚印。当你觉得疲惫时,请记住:钻石经过打磨才能璀璨,雄鹰经历断羽才能高飞。你的坚持,正在书写属于自己的传奇篇章!

别让任何人定义你的极限!你拥有的不是天花板,而是等待突破的起点。那些看似不可能的梦想,终将在你日复一日的坚持中变得触手可及。你,就是自己人生的造梦者!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值