
文章目录1. 接口的概念2. 接口测试2.1 概念2.2 接口组成3. 接口测试重要性4. 如何执行接口测试4.1 接口用例的编写4.2 结合业务逻辑来设计用例1. 接口的概念接口一般来说有两种一种是程序内部的接口一种是系统对外的接口。程序内部的接口方法与方法之间模块与模块之间的交互程序内部抛出的接口。比如贴吧系统有登录模块、发帖模块等等那你要发帖就必须先登录那么这两个模块就得有交互它就会抛出一个接口供内部系统进行调用。系统对外的接口比如你要从别的网站或服务器上获取资源或信息别人不会把数据库共享给你只能提供一个写好的方法来获取数据你引用他提供的接口就能使用这个方法从而达到数据共享的目的。比如 app、网址在进行数据处理时都是通过接口来进行调用的。接口类型有很多如 HTTP API 接口、RPC 等等接下来我们基于 HTTP API 接口讲解。2. 接口测试2.1 概念接口测试是测试系统组件间接口的一种测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是检查数据的交换、传递和控制管理过程以及系统间的相互逻辑依赖关系等。简而言之接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求。接口测试比一般的功能测试更简单非官方表述功能测试是从页面输入值通过点击按钮或链接等传值给后端还要测试UI、前端交互等而接口测试没有页面是通过接口规范文档上的调用地址、请求参数拼接报文然后发送请求检查返回结果只需测入参和出参即可。2.2 接口组成接口文档示例获取接口调用凭据接口文档应包含以下内容接口说明调用 url请求方法get / post请求参数、参数类型、请求参数说明返回参数说明由接口文档可知接口至少应有请求地址、请求方法、请求参数入参和出参组成部分接口有请求头header。标头header是服务器以 HTTP 协议传 HTML 资料到浏览器前所送出的字符串在标头与 HTML 文件之间需空一行分隔一般存放cookie、token等信息。header 和入参的区别它们都是发送到服务器的参数但 header 里存放的一般是校验信息比如 cookie用于校验请求是否有权限访问服务器服务器会先接收 header 信息判断请求是否有权限判断有权限后才会接受请求地址和入参再根据地址和入参返回出参。3. 接口测试重要性接口是前端页面或 APP 等调用与后端做交互用的有人会问功能测试都测好了为什么还要测接口呢举个例子比如测试用户注册功能规定用户名为 6~18 个字符包含字母区分大小写、数字、下划线。功能测试时会对用户名规则进行测试但这些校验可能只是在前端做的后端可能没做校验。如果有人通过抓包绕过前端校验直接发送请求到后端用户名和密码就可以随便输入甚至可以通过 SQL 注入等手段随意登录获取管理员权限。所以接口测试的必要性体现在可以发现很多在页面上操作发现不了的 bug检查系统的异常处理能力检查系统的安全性、稳定性前端随便变接口测好了后端不用变4. 如何执行接口测试在进行接口测试前还需要了解get / post 请求get 和 post 是常见的请求方法。get 请求可以直接在浏览器里输入地址请求浏览器里能直接请求到的都是 get 请求post 请求则需要借助工具来发送。http 状态码每发出一个 http 请求之后都会有一个响应http 会有状态码来标示请求是否成功常见的状态码有以下几种2002 开头的都表示请求发送成功最常见的就是200代表请求正常服务器已返回数据。3003 开头的代表重定向最常见的是302表示请求被重定向到其他地址。4004 开头的代表客户端错误401代表访问的页面没有授权403表示没有权限访问404代表没有这个页面。5005 开头的代表服务器有异常500代表服务器内部异常504代表服务器端超时没返回结果。接口测试分两步走通过接口设计用例 结合业务逻辑来设计用例。4.1 接口用例的编写1通过性验证首先要保证接口功能正常即按照接口文档的参数正常传入验证是否能返回正确的结果。用例编号用例标题前置条件测试步骤预期结果实际结果测试结果01接口正常调用测试接口服务正常运行1. 按照接口文档要求传入所有必填参数2. 调用接口3. 检查返回结果返回状态码200返回结果符合预期如操作成功、返回数据完整2参数组合例如一个操作商品的接口type1代表修改商品商品 id、商品名称、价格有一个必传type2代表删除商品商品 id 必传需要测试不同的参数组合。用例编号用例标题前置条件测试步骤预期结果实际结果测试结果02修改商品只传商品名称测试接口服务正常运行商品存在1. 设置type12. 只传商品名称3. 调用接口返回状态码200商品名称修改成功其他信息不变03修改商品传id、名称、价格测试接口服务正常运行商品存在1. 设置type12. 传入商品id、名称、价格3. 调用接口返回状态码200商品信息修改成功04删除商品测试接口服务正常运行商品存在1. 设置type22. 传入商品id3. 调用接口返回状态码200商品删除成功3接口安全绕过验证比如购买商品时修改提交订单的价格验证后端是否做了校验。绕过身份授权比如修改商品信息接口验证普通用户或其他卖家是否能修改他人商品。参数是否加密比如登录接口的用户名和密码是否加密传输加密规则是否安全。密码安全规则验证密码的复杂程度校验。用例编号用例标题前置条件测试步骤预期结果实际结果测试结果05绕过价格验证测试接口服务正常运行1. 购买商品2. 提交订单时将商品价格改为3元3. 调用接口返回状态码400或403提示价格验证失败06绕过身份授权测试接口服务正常运行1. 使用普通用户调用修改商品信息接口2. 调用接口返回状态码403提示无权限操作07参数加密测试接口服务正常运行1. 检查登录接口的用户名和密码是否加密2. 拦截请求查看数据用户名和密码已加密且加密规则难以破解08密码复杂度校验测试接口服务正常运行1. 注册或修改密码时输入不符合复杂度要求的密码2. 调用接口返回状态码400提示密码不符合安全规则4异常验证不按照接口文档的要求输入参数验证接口对异常情况的校验如必填参数缺失、参数类型错误、参数长度超限等。用例编号用例标题前置条件测试步骤预期结果实际结果测试结果09必填参数缺失测试接口服务正常运行1. 不传必填参数如商品id2. 调用接口返回状态码400提示必填参数缺失10参数类型错误测试接口服务正常运行1. 传入错误类型的参数如将整数类型传为字符串2. 调用接口返回状态码400提示参数类型错误11参数长度超限测试接口服务正常运行1. 传入长度超限的参数如长度限制为10传入112. 调用接口返回状态码400提示参数长度超限4.2 结合业务逻辑来设计用例根据业务逻辑设计用例和功能测试的用例设计思路类似需要结合系统的实际业务场景。以贴吧为例需求如下登录失败5次需等待15分钟后再登录新注册的用户需过了实习期才能发帖删除帖子扣除积分……需要把这些业务测试点列出来造对应的数据进行测试。