接口测试的基础概念有哪些?
摘要:接口测试 接口的概念 接口⼀般来说有两种,⼀种是程序内部的接口,⼀种是系统对外的接口。 程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如贴吧系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,要发帖就得登录
接口测试
接口的概念
接口⼀般来说有两种,⼀种是程序内部的接口,⼀种是系统对外的接口。
程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如贴吧系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,要发帖就得登录,那么这两个模块就得有交互,它就会抛出⼀个接⼝,供内部系统进行调用。
系统对外的接口:比如你要从别的⽹站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供⼀个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的⽅法,从而达到数据共享的⽬的,比如说咱们用的app、网址这些它在进⾏数据处理的时候都是通过接⼝来进行调用的。
接口类型有很多,如HTTPAPI接口、RPC等等。
接口测试
概念
接口测试是测试系统组件间接口的⼀种测试。接⼝测试主要⽤于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
简而言之,所谓接⼝测试就是通过测试不同情况下的⼊参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求。
接口组成
接口文档示例:https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/access-token/auth.getAccessToken.html
由接口文档可知,接口至少应有请求地址、请求⽅法、请求参数(⼊参和出参)组成,部分接口有请求头 header 。
接口测试重要性
可以发现很多在页面上操作发现不了的bug
检查系统的异常处理能力
检查系统的安全性、稳定性
前端随便变,接口测好了,后端不用变
如何执行接口测试
在进行接口测试前,还需要了解以下内容
get和post请求
http状态码:
每发出⼀个http请求之后,都会有⼀个响应,http本⾝会有⼀个状态码,来标识这个请求是否成功,常见的状态码有以下几种:
2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
3开头的代表重定向,常见的有301永久重定向,302临时重定向。
400代表客⼾端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面
5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果
接口测试分两步走:通过接口设计用例+结合业务逻辑来设计用例
接口自动化测试
概念
接口自动化是通过对接口进行测试和模拟,以确保软件系统内部的各个组件能够正确地相互通信和交换数据。接口自动化测试可以显著提⾼测试效率和准确性。因为接⼝测试专注于测试系统内部的逻辑和数据传输,而不是像UI测试那样关注⽤⼾的操作和交互。同时,由于接口测试直接针对系统内部的结构和功能,可以更容易地发现和定位问题,减少测试成本和时间。
接口自动化流程
需求分析
分析请求:明确接口的URL、请求方法(如get、post、PUT、DELETE等)、请求头、请求参数和请求体等信息。
分析响应:确定接口返回的数据格式、状态码以及可能的错误信息。
挑选自动化接口
根据项目的时间、人员安排和接口的复杂度,挑选适合自动化测试的接口。
优先选择核心业务接口、频繁使用的接口以及容易出错的接⼝进行自动化测试。
功能复杂度:优先选择功能复杂、逻辑分⽀多的接口进行自动化测试。例如,涉及多种支付方式、多种订单状态转换的订单管理接口,⼿动测试难以全面覆盖所有场景,⾃动化测试可以更高效地进行测试.
高风险功能:选择对业务影响⼤、风险高的接口进行自动化测试,确保其稳定性和可靠性。例如,涉及资金操作的⽀付接口,⼀旦出现问题可能导致严重的经济损失,因此需要进行充分的自动化测试。
重复性高:对于需要频繁执行的测试任务,如回归测试中的接口测试,自动化测试可以避免重复手动测试的繁琐和低效,提高测试效率。
设计自动化测试用例
如果在功能测试阶段已经设计了测试用例,可以直接拿来使用。
根据接口需求和功能,设计正向测试用例(正常场景)和反向测试用例(异常场景),包括边界值测试、参数组合测试等。
搭建自动化测试环境
选择合适的编程语言(如Python、Java等)和开发环境(如PyCharm、IntelliJ IDEA等)来实现自动化测试。
以Python为例,安装必要的依赖库,如requests用于发送HTTP请求,pytest用于测试框架。
设计自动化执行框架
设计⼀个框架来执行测试⽤例,包括报告生成、参数化处理和用例执行逻辑。
编写代码
根据设计好的测试用例和框架编写自动化测试脚本。
