白盒测试 接口测试新手应该怎样开始呢

呼噜呼噜 · 2025年09月04日 · 最后由 呼噜呼噜 回复于 2025年09月11日 · 6286 次阅读

痛点

团队就一个测试,还一直在做功能测试。既要做功能测试,又要研究功能测试自动化。一直没有推行接口自动化。但是看好多 jd 也提到了接口测试。性能测试这些。
团队里边现在没有前辈指导,也没有经验参考。想来社区求助一下大家。欢迎评论区留言。感谢!

最佳回复

1. 打开豆包:

2. 输入:

【接口测试新手应该怎样开始呢?团队就一个测试,还一直在做功能测试。既要做功能测试,又要研究功能测试自动化。一直没有推行接口自动化。但是看好多 jd 也提到了接口测试。性能测试这些。
团队里边现在没有前辈指导,也没有经验参考。以资深测试专家的角度,参考市面上大多数公司的做法,详细的指导我】

3.返回结果:

作为资深测试专家,结合你 “单人测试岗、需兼顾功能/功能自动化、无前辈指导” 的实际场景,我会从 “基础认知→手动落地→自动化进阶→流程融入→性能入门” 五个阶段,给出可落地的详细指导,完全贴合市面上中小团队的接口测试推行路径。

一、第一阶段:先搞懂 “接口测试是什么”——夯实基础理论(1-2 周)

新手最容易犯的错是 “上来就学工具”,但没搞懂底层逻辑,遇到问题会无从下手。这一阶段核心是 “建立认知,和现有功能测试关联”,降低学习成本。

1. 必须掌握的核心概念(和功能测试对比理解)

概念 解释(用功能测试类比) 为什么重要?
接口 后端开发写的 “功能服务入口”(比如 “登录” 功能,前端点按钮是 UI,后端接收账号密码的服务就是接口) 接口是前后端/服务间的桥梁,90% 的问题根源在接口,而非 UI
HTTP/HTTPS 协议 接口通信的 “语言”(类似 UI 操作时的 “点击/输入” 规则) 所有接口测试都基于协议,不懂协议就看不懂请求/响应
请求三要素 方法(GET/POST 等)、URL、参数(请求头/请求体) 相当于功能测试的 “操作步骤”,缺一个就测不了
响应三要素 响应码(200/404/500 等)、响应头、响应体 相当于功能测试的 “预期结果”,判断接口是否正常
RESTful API 规范 主流接口设计风格(比如用 GET 查数据、POST 增数据、DELETE 删数据) 90% 公司用 REST 风格,懂规范才能看懂接口文档
接口依赖 比如 “查订单” 接口需要 “登录” 接口返回的 token(类似功能测试 “先登录才能查订单”) 处理依赖是接口测试的核心难点之一

2. 重点学习:HTTP 协议核心细节(不用背,理解后能查)

  • 请求方法:重点记 4 个(GET/POST/PUT/DELETE),明确区别(GET 传参在 URL,POST 在请求体;GET 一般查数据,POST 一般改数据)。
  • 响应码:记 3 类核心码(2xx 成功、4xx 客户端错、5xx 服务端错),比如 401 是 “未登录”,403 是 “无权限”,500 是 “服务端报错”。
  • 请求头:常用的几个(Content-Type:告诉后端请求体格式,如application/jsonAuthorization:放登录 token)。
  • 请求体格式:主流是JSON(比如{"username":"test","password":"123456"}),要能看懂 JSON 结构(键值对、数组)。

3. 工具准备:先找接口文档(接口测试的 “需求文档”)

你没有前辈指导,接口文档是唯一依据,优先找这两类:

  • 开发给的文档:直接问开发要(比如 Word、Markdown),明确每个接口的 “URL、请求方法、参数、响应格式、依赖条件”。
  • 自动化文档工具:如果开发用Swagger(常见地址如http://开发环境IP:端口/swagger-ui.html),直接打开就能看所有接口,还能在线调试(新手友好)。

二、第二阶段:从 “手动接口测试” 入手——和功能测试联动(2-3 周)

不要一上来就搞自动化!先手动测,因为你正在做功能测试,可以把 “接口测试” 嵌入功能测试流程(比如测 “登录功能” 时,既点 UI,也用工具测登录接口),边测边熟悉业务,零额外成本。

1. 选工具:新手优先用「Postman」(不用装环境,点几下就能测)

Postman 是接口测试入门神器,先学基础操作(1 天就能上手):

  • 第一步:创建 “集合(Collection)”:按功能模块分(比如 “用户模块”“订单模块”),把同一模块的接口放一起,方便管理。
  • 第二步:添加接口请求
    1. 填 “请求方法”(比如 POST)、“URL”(从接口文档复制);
    2. 填 “请求头”:如果是 JSON 格式,加Content-Type: application/json
    3. 填 “请求体”:选 “raw→JSON”,按文档写参数(比如登录接口填{"username":"test123","password":"123456"});
  • 第三步:发送请求,看响应:点 “Send”,下方看 “Response Body”(响应内容)和 “Status Code”(响应码)。
  • 第四步:加 “断言”(关键!不然白测): 断言是 “判断接口是否符合预期”,比如登录成功后,响应体里应该有"code":200"token":"xxx"
    Postman 断言步骤:右侧 “Tests”→选预设脚本(比如 “Status code: Is 200”)→修改为你的预期(比如pm.test("响应码是200", function () {pm.response.to.have.status(200);});)→再发送请求,看 “Test Results” 是否通过。

2. 核心:设计接口测试用例(复用功能测试的用例思路)

你做过功能测试,用例设计逻辑是相通的,重点覆盖 “接口特有的场景”:
| 用例类型 | 设计思路(以 “登录接口” 为例) | 举例 |
| ------------ |---------------------------------------------------| --------------------------------- |
| 正常场景 | 符合接口文档的合法参数 | 正确的用户名 + 正确密码,预期返回 token 和 200 码 |
| 参数缺失 | 少传必填参数(比如登录接口少传 “password”) | 只传 username,预期返回 400 码和 “密码不能为空” 提示 |
| 参数错误 | 类型错(比如 “age” 应该是数字,传字符串)、格式错(比如手机号少 1 位)| 密码传 “123”(实际要求 6 位),预期返回 400 码 “密码长度不够” |
| 权限场景 | 未登录访问需权限接口、普通用户访问管理员接口 | 不戴 token 访问 “查订单” 接口,预期返回 401 码 “未授权” |
| 数据边界 | 传空值、最大值、重复数据(比如新增用户,用户名已存在) | 用户名传空字符串,预期返回 400 码 “用户名不能为空” |
| 接口依赖场景 | 先跑依赖接口,再跑目标接口(比如先登录拿 token,再用 token 查订单) | 登录→拿 token→填到 “查订单” 接口的请求头→测查订单接口 |

3. 实战:选 1 个简单模块落地(比如 “用户登录/注册”)

  1. 从接口文档里摘出 “登录、注册” 2 个接口;
  2. 用 Postman 创建 “用户模块” 集合,添加这 2 个接口;
  3. 按上面的用例类型,每个接口设计 5-8 条用例(比如登录接口:正常登录、少密码、密码错、无 token 登录);
  4. 跑一遍用例,记录问题(比如发现 “密码传空时,后端返回 500 而不是 400”,这就是 bug);
  5. 和开发沟通修复,再复测——第一次完整跑通,你就入门了

三、第三阶段:进阶 “接口自动化测试”——复用你已有的功能自动化经验(3-4 周)

你已经在研究功能自动化,接口自动化比功能自动化简单(不用处理 UI 定位、元素等待),核心是 “用代码代替手动点 Postman”。

1. 框架选择:新手优先「Python + Requests + Pytest」(生态最成熟,资料最多)

  • Python:语法简单,比 Java 易上手,测试岗 90% 的自动化用 Python;
  • Requests:Python 的 HTTP 请求库,1 行代码就能发 GET/POST 请求(比 Postman 更灵活);
  • Pytest:测试框架,能批量执行脚本、生成报告、支持参数化(数据驱动)。

2. 环境搭建(步骤详细,照做就能成)

  1. 装 Python:官网下载(https://www.python.org/Add),勾选 “ Python to PATH”(避免配置环境变量);
  2. 装依赖库:打开 cmd,输入 3 条命令(逐行输): bash pip install requests # 处理HTTP请求 pip install pytest # 测试框架 pip install allure-pytest # 生成美观的测试报告(可选,推荐)
  3. 装编辑器:用「PyCharm Community」(免费),新建 “接口自动化项目”。

3. 写第一个接口自动化脚本(以 “登录接口” 为例)

先写一个简单脚本,跑通 “发送请求→断言→执行” 流程:

# 1. 导入需要的库
import requests
import pytest

# 2. 写测试用例(用Pytest的@Test装饰器)
def test_login_success():
    # 接口信息(从文档复制)
    url = "http://你的测试环境IP:端口/api/user/login"  # 接口URL
    headers = {"Content-Type": "application/json"}     # 请求头
    data = {"username": "test123", "password": "123456"}  # 请求体(JSON格式)

    # 3. 发送POST请求(用Requests库)
    response = requests.post(url=url, headers=headers, json=data)  # json参数会自动处理格式

    # 4. 断言(和手动测试的预期一致)
    assert response.status_code == 200  # 断言响应码是200
    assert response.json()["code"] == 200  # 断言响应体里的code是200
    assert "token" in response.json()  # 断言响应体里有token(登录成功的关键)

# 5. 执行脚本:在PyCharm里右键→Run "pytest xxx.py",看结果是否通过

4. 进阶:解决接口自动化的核心问题(新手必学)

  • 问题 1:接口依赖(比如查订单需要登录 token)
    思路:先执行登录接口,提取 token,传给查订单接口。 ```python # 先定义登录函数,返回 token def get_login_token(): url = "http://IP:/api/user/login端口" data = {"username": "test123", "password": "123456"} response = requests.post(url=url, json=data) return response.json()["token"] # 提取 token 并返回

# 查订单接口用登录 token
def test_query_order():
token = get_login_token() # 调用登录函数拿 token
url = "http://IP:/api/order/query端口"
headers = {"Content-Type": "application/json", "Authorization": f"Bearer {token}"} # 把 token 放进请求头
response = requests.get(url=url, headers=headers)
assert response.status_code == 200


- **问题2:数据驱动(同一接口测多组数据,比如不同密码的登录场景)**  
  用Pytest的`@pytest.mark.parametrize`装饰器,不用写多个函数:
  ```python
  @pytest.mark.parametrize("username,password,expect_code,expect_msg", [
      ("test123", "123456", 200, "success"),  # 正常登录
      ("test123", "12345", 400, "密码错误"),   # 密码错误
      ("", "123456", 400, "用户名不能为空")    # 用户名空
  ])
  def test_login_multi_data(username, password, expect_code, expect_msg):
      url = "http://IP:端口/api/user/login"
      data = {"username": username, "password": password}
      response = requests.post(url=url, json=data)
      assert response.json()["code"] == expect_code
      assert expect_msg in response.json()["msg"]  # 断言提示信息
  • 问题 3:生成测试报告
    用 Allure,执行命令后会生成美观的 HTML 报告(能看用例通过率、失败原因):
    1. 执行脚本时生成 Allure 结果:pytest test_login.py --alluredir=./allure-results
    2. 生成 HTML 报告:allure serve ./allure-results(会自动打开浏览器显示报告)

5. 落地:先覆盖 “核心接口”(比如登录、下单、支付)

不要一开始就想覆盖所有接口,先选 3-5 个核心接口写自动化脚本,跑通 “脚本→报告→问题反馈” 流程,再逐步扩展。比如:

  1. 第一周:写登录、注册接口的自动化脚本;
  2. 第二周:写查订单、下单接口(处理依赖和数据驱动);
  3. 第三周:集成 Allure 报告,每天跑一次,把失败的用例对应的 bug 反馈给开发。

四、第四阶段:把接口测试融入团队流程——从 “个人操作” 到 “团队价值”(1-2 周)

你是单人测试岗,接口测试的价值不仅是 “自己测”,还要让它成为 “开发→测试” 的协作环节,减少重复工作。

1. 接口测试和功能测试的配合流程

建议调整你的测试流程,更早发现接口问题(减少后期 UI 层定位问题的时间):

graph TD
    A[开发提交代码] --> B[开发自测接口(用Swagger)]
    B --> C[你用Postman/自动化脚本跑核心接口测试]
    C --> D{接口是否通过?}
    D -- 是 --> E[开始功能测试(UI层)]
    D -- 否 --> F[反馈开发修复,重新走A-C]

2. 和开发的协作要点(避免矛盾)

  • 接口文档同步:要求开发改接口后,必须更新 Swagger/文档,你定期(比如每天上午)查一次文档,发现不一致及时沟通;
  • bug 定位:遇到 UI 层问题,先测对应的接口——如果接口返回错,直接甩给开发(“接口返回 xxx,不符合文档”);如果接口对但 UI 错,再查前端;
  • 环境问题:测试环境接口不通时,先确认 “开发是否重启服务”“数据库是否有测试数据”,再找开发,避免无效沟通。

3. 入门持续集成(CI):让脚本 “自动跑”(可选,进阶)

如果你已经有自动化脚本,可以集成到 Jenkins(很多公司用),实现 “代码提交后自动跑接口测试”:

  1. 把脚本传到 Git 仓库(比如公司的 GitLab);
  2. 在 Jenkins 上新建任务,配置 “拉取 Git 代码→执行 Pytest 脚本→生成 Allure 报告”;
  3. 开发提交代码后,Jenkins 自动触发任务,测试结果会发邮件给你和开发——这样不用你手动跑脚本,更高效。

五、第五阶段:性能测试入门——满足 JD 要求,不用深钻(1-2 周)

接口性能测试比 UI 性能测试简单,核心是 “测接口在高并发下的表现”,新手先学 “基础流程” 即可。

1. 核心概念:性能测试关注什么?

不用记复杂指标,先关注 4 个核心:

  • 响应时间:接口返回结果的时间(比如正常是 500ms 内,并发时不能超过 2s);
  • 吞吐量:每秒处理的请求数(比如每秒能处理 100 个请求);
  • 并发数:同时访问接口的用户数(比如模拟 100 人同时登录);
  • 错误率:并发时失败的请求比例(比如错误率不能超过 1%)。

2. 工具选择:用「JMeter」(和 Postman 兼容,上手快)

JMeter 是性能测试主流工具,新手可以 “复用 Postman 的接口”,不用重新写请求:

  1. 把 Postman 的 “集合” 导出为JSON文件(Postman→集合→右键→Export);
  2. 打开 JMeter→左上角 “File→Import→选导出的 JSON 文件”——自动生成所有接口请求,省时间。

3. 写第一个性能测试脚本(以 “登录接口压测” 为例)

  1. 添加 “线程组”:右键 “测试计划”→“Threads(Users)”→“线程组”,配置:
    • 线程数(并发数):100(模拟 100 人);
    • Ramp-Up 时间:10 秒(10 秒内逐渐启动 100 个线程,避免瞬间压垮服务);
    • 循环次数:1(只跑一次)。
  2. 添加 “HTTP 请求”:如果导入了 Postman 集合,这步不用做;如果手动加,填 URL、请求方法、参数(和 Postman 一致)。
  3. 添加 “监听器”(看结果):
    • 右键线程组→“监听器”→“查看结果树”(看每个请求的成功/失败);
    • 右键线程组→“监听器”→“聚合报告”(看响应时间、吞吐量、错误率)。
  4. 执行脚本:点左上角 “启动” 按钮,跑完后看 “聚合报告”——比如 “90% Line”(90% 请求的响应时间)是否符合预期。

4. 新手避坑:性能测试不要 “瞎压”

  • 先在 “测试环境” 压,不要直接压生产环境;
  • 先从低并发开始(比如 10 人、50 人),逐渐加量,避免压垮测试服务;
  • 压测前确认测试环境的配置(比如服务器 CPU、内存)和生产一致,否则结果没参考价值。

六、学习资源与避坑指南(没人指导也能自学)

1. 必看资源(免费,新手友好)

  • 工具文档
  • 视频教程
    • B 站 “2024 接口自动化测试(Python+Requests+Pytest)”;
    • B 站 “JMeter 性能测试入门”:搜 “JMeter 2 小时入门”,快速掌握基础操作。
  • 社区
    • 遇到问题先搜 “Stack Overflow”(英文)或 “CSDN”(中文),比如 “requests 如何传 token”;

2. 新手必避的 3 个坑

  • 坑 1:只看响应码 200 就认为接口没问题
    比如 “删除不存在的订单”,接口返回 200 但响应体是 “删除失败”——必须断言响应体的内容,不能只看码。
  • 坑 2:自动化脚本写得太复杂
    新手不要一开始就搞 “封装框架”“多层级目录”,先写简单脚本跑通,再逐步优化(比如把 URL、账号密码放到配置文件)。
  • 坑 3:忽略测试数据的清理
    比如 “新增用户” 接口测完后,要删除测试用户(否则下次跑脚本会报 “用户名已存在”)——可以写一个 “数据清理脚本”(比如调用 “删除用户” 接口)。

总结:3 个月学习路径(贴合你的实际场景)

时间 阶段目标 核心任务 输出成果
第 1 个月 能独立完成手动接口测试 1. 学 HTTP 协议和 Postman;2. 测 2 个模块的接口;3. 输出接口测试用例 接口测试用例文档、手动测试 bug 清单
第 2 个月 能写核心接口的自动化脚本 1. 学 Python+Requests+Pytest;2. 写 5 个核心接口的自动化脚本;3. 集成 Allure 报告 自动化脚本、每日测试报告
第 3 个月 接口测试融入流程 + 性能测试入门 1. 把脚本集成到测试流程;2. 学 JMeter 测 2 个核心接口的性能;3.(可选)集成 Jenkins 性能测试报告、CI 自动执行任务

按照这个路径,3 个月后你不仅能掌握接口测试,还能在简历上写上 “独立完成接口手动 + 自动化测试,落地性能测试基础流程”——完全满足市面上大部分公司的 JD 要求。关键是 “边学边用”,用实际项目的接口练手,遇到问题解决问题,比单纯看教程进步快 10 倍。

共收到 23 条回复 时间 点赞

看下 apifox,门槛低,落地快

先了解接口的结构、工作原理、状态码,再结合业务看一个完整的业务流接口调用步骤和接口关联关系,学好 SQL 语法

metersphere 找运维部署下,文档官方写的很清楚,还有用例管理啥的,个人觉得很方便

究客 回复

你们用 apifox 吗,能说说具体是怎么落地的吗

1.任何接口测试都依赖契约的,首先想做相关的肯定得有相应的契约文档或者契约平台这些,如果没有先搭基建或者自己整理文档,接口测试也是业务相关的,首先你得知道业务的入参组合,返回情况才可能写的出来 case 和断言
2.在 1 都清楚了后,你可以 POSTMAN 也可以其他的工具调也是测接口
3.在 2 的基础上再想用平台也行,用脚本也行啥都行让他自动跑,做巡检,做发布的线上流量 DIFF,做流量回放(依赖完善的日志体系)等等
4.在前面都通了在想着和 CI/CD 流程做集成

apifox、postman 这类接口测试工具,去研究研究,自己在控制台看接口请求或找接口文档,先去请求通一个接口再去思考怎么串联多接口的场景

我基本都是使用 jmeter 进行接口测试,尤其是多个接口的时候;不过也会使用 postman

https://testerhome.com/topics/30495 这篇是我写接口自动化测试的一些东西 可能会有所启发

1. 打开豆包:

2. 输入:

【接口测试新手应该怎样开始呢?团队就一个测试,还一直在做功能测试。既要做功能测试,又要研究功能测试自动化。一直没有推行接口自动化。但是看好多 jd 也提到了接口测试。性能测试这些。
团队里边现在没有前辈指导,也没有经验参考。以资深测试专家的角度,参考市面上大多数公司的做法,详细的指导我】

3.返回结果:

作为资深测试专家,结合你 “单人测试岗、需兼顾功能/功能自动化、无前辈指导” 的实际场景,我会从 “基础认知→手动落地→自动化进阶→流程融入→性能入门” 五个阶段,给出可落地的详细指导,完全贴合市面上中小团队的接口测试推行路径。

一、第一阶段:先搞懂 “接口测试是什么”——夯实基础理论(1-2 周)

新手最容易犯的错是 “上来就学工具”,但没搞懂底层逻辑,遇到问题会无从下手。这一阶段核心是 “建立认知,和现有功能测试关联”,降低学习成本。

1. 必须掌握的核心概念(和功能测试对比理解)

概念 解释(用功能测试类比) 为什么重要?
接口 后端开发写的 “功能服务入口”(比如 “登录” 功能,前端点按钮是 UI,后端接收账号密码的服务就是接口) 接口是前后端/服务间的桥梁,90% 的问题根源在接口,而非 UI
HTTP/HTTPS 协议 接口通信的 “语言”(类似 UI 操作时的 “点击/输入” 规则) 所有接口测试都基于协议,不懂协议就看不懂请求/响应
请求三要素 方法(GET/POST 等)、URL、参数(请求头/请求体) 相当于功能测试的 “操作步骤”,缺一个就测不了
响应三要素 响应码(200/404/500 等)、响应头、响应体 相当于功能测试的 “预期结果”,判断接口是否正常
RESTful API 规范 主流接口设计风格(比如用 GET 查数据、POST 增数据、DELETE 删数据) 90% 公司用 REST 风格,懂规范才能看懂接口文档
接口依赖 比如 “查订单” 接口需要 “登录” 接口返回的 token(类似功能测试 “先登录才能查订单”) 处理依赖是接口测试的核心难点之一

2. 重点学习:HTTP 协议核心细节(不用背,理解后能查)

  • 请求方法:重点记 4 个(GET/POST/PUT/DELETE),明确区别(GET 传参在 URL,POST 在请求体;GET 一般查数据,POST 一般改数据)。
  • 响应码:记 3 类核心码(2xx 成功、4xx 客户端错、5xx 服务端错),比如 401 是 “未登录”,403 是 “无权限”,500 是 “服务端报错”。
  • 请求头:常用的几个(Content-Type:告诉后端请求体格式,如application/jsonAuthorization:放登录 token)。
  • 请求体格式:主流是JSON(比如{"username":"test","password":"123456"}),要能看懂 JSON 结构(键值对、数组)。

3. 工具准备:先找接口文档(接口测试的 “需求文档”)

你没有前辈指导,接口文档是唯一依据,优先找这两类:

  • 开发给的文档:直接问开发要(比如 Word、Markdown),明确每个接口的 “URL、请求方法、参数、响应格式、依赖条件”。
  • 自动化文档工具:如果开发用Swagger(常见地址如http://开发环境IP:端口/swagger-ui.html),直接打开就能看所有接口,还能在线调试(新手友好)。

二、第二阶段:从 “手动接口测试” 入手——和功能测试联动(2-3 周)

不要一上来就搞自动化!先手动测,因为你正在做功能测试,可以把 “接口测试” 嵌入功能测试流程(比如测 “登录功能” 时,既点 UI,也用工具测登录接口),边测边熟悉业务,零额外成本。

1. 选工具:新手优先用「Postman」(不用装环境,点几下就能测)

Postman 是接口测试入门神器,先学基础操作(1 天就能上手):

  • 第一步:创建 “集合(Collection)”:按功能模块分(比如 “用户模块”“订单模块”),把同一模块的接口放一起,方便管理。
  • 第二步:添加接口请求
    1. 填 “请求方法”(比如 POST)、“URL”(从接口文档复制);
    2. 填 “请求头”:如果是 JSON 格式,加Content-Type: application/json
    3. 填 “请求体”:选 “raw→JSON”,按文档写参数(比如登录接口填{"username":"test123","password":"123456"});
  • 第三步:发送请求,看响应:点 “Send”,下方看 “Response Body”(响应内容)和 “Status Code”(响应码)。
  • 第四步:加 “断言”(关键!不然白测): 断言是 “判断接口是否符合预期”,比如登录成功后,响应体里应该有"code":200"token":"xxx"
    Postman 断言步骤:右侧 “Tests”→选预设脚本(比如 “Status code: Is 200”)→修改为你的预期(比如pm.test("响应码是200", function () {pm.response.to.have.status(200);});)→再发送请求,看 “Test Results” 是否通过。

2. 核心:设计接口测试用例(复用功能测试的用例思路)

你做过功能测试,用例设计逻辑是相通的,重点覆盖 “接口特有的场景”:
| 用例类型 | 设计思路(以 “登录接口” 为例) | 举例 |
| ------------ |---------------------------------------------------| --------------------------------- |
| 正常场景 | 符合接口文档的合法参数 | 正确的用户名 + 正确密码,预期返回 token 和 200 码 |
| 参数缺失 | 少传必填参数(比如登录接口少传 “password”) | 只传 username,预期返回 400 码和 “密码不能为空” 提示 |
| 参数错误 | 类型错(比如 “age” 应该是数字,传字符串)、格式错(比如手机号少 1 位)| 密码传 “123”(实际要求 6 位),预期返回 400 码 “密码长度不够” |
| 权限场景 | 未登录访问需权限接口、普通用户访问管理员接口 | 不戴 token 访问 “查订单” 接口,预期返回 401 码 “未授权” |
| 数据边界 | 传空值、最大值、重复数据(比如新增用户,用户名已存在) | 用户名传空字符串,预期返回 400 码 “用户名不能为空” |
| 接口依赖场景 | 先跑依赖接口,再跑目标接口(比如先登录拿 token,再用 token 查订单) | 登录→拿 token→填到 “查订单” 接口的请求头→测查订单接口 |

3. 实战:选 1 个简单模块落地(比如 “用户登录/注册”)

  1. 从接口文档里摘出 “登录、注册” 2 个接口;
  2. 用 Postman 创建 “用户模块” 集合,添加这 2 个接口;
  3. 按上面的用例类型,每个接口设计 5-8 条用例(比如登录接口:正常登录、少密码、密码错、无 token 登录);
  4. 跑一遍用例,记录问题(比如发现 “密码传空时,后端返回 500 而不是 400”,这就是 bug);
  5. 和开发沟通修复,再复测——第一次完整跑通,你就入门了

三、第三阶段:进阶 “接口自动化测试”——复用你已有的功能自动化经验(3-4 周)

你已经在研究功能自动化,接口自动化比功能自动化简单(不用处理 UI 定位、元素等待),核心是 “用代码代替手动点 Postman”。

1. 框架选择:新手优先「Python + Requests + Pytest」(生态最成熟,资料最多)

  • Python:语法简单,比 Java 易上手,测试岗 90% 的自动化用 Python;
  • Requests:Python 的 HTTP 请求库,1 行代码就能发 GET/POST 请求(比 Postman 更灵活);
  • Pytest:测试框架,能批量执行脚本、生成报告、支持参数化(数据驱动)。

2. 环境搭建(步骤详细,照做就能成)

  1. 装 Python:官网下载(https://www.python.org/Add),勾选 “ Python to PATH”(避免配置环境变量);
  2. 装依赖库:打开 cmd,输入 3 条命令(逐行输): bash pip install requests # 处理HTTP请求 pip install pytest # 测试框架 pip install allure-pytest # 生成美观的测试报告(可选,推荐)
  3. 装编辑器:用「PyCharm Community」(免费),新建 “接口自动化项目”。

3. 写第一个接口自动化脚本(以 “登录接口” 为例)

先写一个简单脚本,跑通 “发送请求→断言→执行” 流程:

# 1. 导入需要的库
import requests
import pytest

# 2. 写测试用例(用Pytest的@Test装饰器)
def test_login_success():
    # 接口信息(从文档复制)
    url = "http://你的测试环境IP:端口/api/user/login"  # 接口URL
    headers = {"Content-Type": "application/json"}     # 请求头
    data = {"username": "test123", "password": "123456"}  # 请求体(JSON格式)

    # 3. 发送POST请求(用Requests库)
    response = requests.post(url=url, headers=headers, json=data)  # json参数会自动处理格式

    # 4. 断言(和手动测试的预期一致)
    assert response.status_code == 200  # 断言响应码是200
    assert response.json()["code"] == 200  # 断言响应体里的code是200
    assert "token" in response.json()  # 断言响应体里有token(登录成功的关键)

# 5. 执行脚本:在PyCharm里右键→Run "pytest xxx.py",看结果是否通过

4. 进阶:解决接口自动化的核心问题(新手必学)

  • 问题 1:接口依赖(比如查订单需要登录 token)
    思路:先执行登录接口,提取 token,传给查订单接口。 ```python # 先定义登录函数,返回 token def get_login_token(): url = "http://IP:/api/user/login端口" data = {"username": "test123", "password": "123456"} response = requests.post(url=url, json=data) return response.json()["token"] # 提取 token 并返回

# 查订单接口用登录 token
def test_query_order():
token = get_login_token() # 调用登录函数拿 token
url = "http://IP:/api/order/query端口"
headers = {"Content-Type": "application/json", "Authorization": f"Bearer {token}"} # 把 token 放进请求头
response = requests.get(url=url, headers=headers)
assert response.status_code == 200


- **问题2:数据驱动(同一接口测多组数据,比如不同密码的登录场景)**  
  用Pytest的`@pytest.mark.parametrize`装饰器,不用写多个函数:
  ```python
  @pytest.mark.parametrize("username,password,expect_code,expect_msg", [
      ("test123", "123456", 200, "success"),  # 正常登录
      ("test123", "12345", 400, "密码错误"),   # 密码错误
      ("", "123456", 400, "用户名不能为空")    # 用户名空
  ])
  def test_login_multi_data(username, password, expect_code, expect_msg):
      url = "http://IP:端口/api/user/login"
      data = {"username": username, "password": password}
      response = requests.post(url=url, json=data)
      assert response.json()["code"] == expect_code
      assert expect_msg in response.json()["msg"]  # 断言提示信息
  • 问题 3:生成测试报告
    用 Allure,执行命令后会生成美观的 HTML 报告(能看用例通过率、失败原因):
    1. 执行脚本时生成 Allure 结果:pytest test_login.py --alluredir=./allure-results
    2. 生成 HTML 报告:allure serve ./allure-results(会自动打开浏览器显示报告)

5. 落地:先覆盖 “核心接口”(比如登录、下单、支付)

不要一开始就想覆盖所有接口,先选 3-5 个核心接口写自动化脚本,跑通 “脚本→报告→问题反馈” 流程,再逐步扩展。比如:

  1. 第一周:写登录、注册接口的自动化脚本;
  2. 第二周:写查订单、下单接口(处理依赖和数据驱动);
  3. 第三周:集成 Allure 报告,每天跑一次,把失败的用例对应的 bug 反馈给开发。

四、第四阶段:把接口测试融入团队流程——从 “个人操作” 到 “团队价值”(1-2 周)

你是单人测试岗,接口测试的价值不仅是 “自己测”,还要让它成为 “开发→测试” 的协作环节,减少重复工作。

1. 接口测试和功能测试的配合流程

建议调整你的测试流程,更早发现接口问题(减少后期 UI 层定位问题的时间):

graph TD
    A[开发提交代码] --> B[开发自测接口(用Swagger)]
    B --> C[你用Postman/自动化脚本跑核心接口测试]
    C --> D{接口是否通过?}
    D -- 是 --> E[开始功能测试(UI层)]
    D -- 否 --> F[反馈开发修复,重新走A-C]

2. 和开发的协作要点(避免矛盾)

  • 接口文档同步:要求开发改接口后,必须更新 Swagger/文档,你定期(比如每天上午)查一次文档,发现不一致及时沟通;
  • bug 定位:遇到 UI 层问题,先测对应的接口——如果接口返回错,直接甩给开发(“接口返回 xxx,不符合文档”);如果接口对但 UI 错,再查前端;
  • 环境问题:测试环境接口不通时,先确认 “开发是否重启服务”“数据库是否有测试数据”,再找开发,避免无效沟通。

3. 入门持续集成(CI):让脚本 “自动跑”(可选,进阶)

如果你已经有自动化脚本,可以集成到 Jenkins(很多公司用),实现 “代码提交后自动跑接口测试”:

  1. 把脚本传到 Git 仓库(比如公司的 GitLab);
  2. 在 Jenkins 上新建任务,配置 “拉取 Git 代码→执行 Pytest 脚本→生成 Allure 报告”;
  3. 开发提交代码后,Jenkins 自动触发任务,测试结果会发邮件给你和开发——这样不用你手动跑脚本,更高效。

五、第五阶段:性能测试入门——满足 JD 要求,不用深钻(1-2 周)

接口性能测试比 UI 性能测试简单,核心是 “测接口在高并发下的表现”,新手先学 “基础流程” 即可。

1. 核心概念:性能测试关注什么?

不用记复杂指标,先关注 4 个核心:

  • 响应时间:接口返回结果的时间(比如正常是 500ms 内,并发时不能超过 2s);
  • 吞吐量:每秒处理的请求数(比如每秒能处理 100 个请求);
  • 并发数:同时访问接口的用户数(比如模拟 100 人同时登录);
  • 错误率:并发时失败的请求比例(比如错误率不能超过 1%)。

2. 工具选择:用「JMeter」(和 Postman 兼容,上手快)

JMeter 是性能测试主流工具,新手可以 “复用 Postman 的接口”,不用重新写请求:

  1. 把 Postman 的 “集合” 导出为JSON文件(Postman→集合→右键→Export);
  2. 打开 JMeter→左上角 “File→Import→选导出的 JSON 文件”——自动生成所有接口请求,省时间。

3. 写第一个性能测试脚本(以 “登录接口压测” 为例)

  1. 添加 “线程组”:右键 “测试计划”→“Threads(Users)”→“线程组”,配置:
    • 线程数(并发数):100(模拟 100 人);
    • Ramp-Up 时间:10 秒(10 秒内逐渐启动 100 个线程,避免瞬间压垮服务);
    • 循环次数:1(只跑一次)。
  2. 添加 “HTTP 请求”:如果导入了 Postman 集合,这步不用做;如果手动加,填 URL、请求方法、参数(和 Postman 一致)。
  3. 添加 “监听器”(看结果):
    • 右键线程组→“监听器”→“查看结果树”(看每个请求的成功/失败);
    • 右键线程组→“监听器”→“聚合报告”(看响应时间、吞吐量、错误率)。
  4. 执行脚本:点左上角 “启动” 按钮,跑完后看 “聚合报告”——比如 “90% Line”(90% 请求的响应时间)是否符合预期。

4. 新手避坑:性能测试不要 “瞎压”

  • 先在 “测试环境” 压,不要直接压生产环境;
  • 先从低并发开始(比如 10 人、50 人),逐渐加量,避免压垮测试服务;
  • 压测前确认测试环境的配置(比如服务器 CPU、内存)和生产一致,否则结果没参考价值。

六、学习资源与避坑指南(没人指导也能自学)

1. 必看资源(免费,新手友好)

  • 工具文档
  • 视频教程
    • B 站 “2024 接口自动化测试(Python+Requests+Pytest)”;
    • B 站 “JMeter 性能测试入门”:搜 “JMeter 2 小时入门”,快速掌握基础操作。
  • 社区
    • 遇到问题先搜 “Stack Overflow”(英文)或 “CSDN”(中文),比如 “requests 如何传 token”;

2. 新手必避的 3 个坑

  • 坑 1:只看响应码 200 就认为接口没问题
    比如 “删除不存在的订单”,接口返回 200 但响应体是 “删除失败”——必须断言响应体的内容,不能只看码。
  • 坑 2:自动化脚本写得太复杂
    新手不要一开始就搞 “封装框架”“多层级目录”,先写简单脚本跑通,再逐步优化(比如把 URL、账号密码放到配置文件)。
  • 坑 3:忽略测试数据的清理
    比如 “新增用户” 接口测完后,要删除测试用户(否则下次跑脚本会报 “用户名已存在”)——可以写一个 “数据清理脚本”(比如调用 “删除用户” 接口)。

总结:3 个月学习路径(贴合你的实际场景)

时间 阶段目标 核心任务 输出成果
第 1 个月 能独立完成手动接口测试 1. 学 HTTP 协议和 Postman;2. 测 2 个模块的接口;3. 输出接口测试用例 接口测试用例文档、手动测试 bug 清单
第 2 个月 能写核心接口的自动化脚本 1. 学 Python+Requests+Pytest;2. 写 5 个核心接口的自动化脚本;3. 集成 Allure 报告 自动化脚本、每日测试报告
第 3 个月 接口测试融入流程 + 性能测试入门 1. 把脚本集成到测试流程;2. 学 JMeter 测 2 个核心接口的性能;3.(可选)集成 Jenkins 性能测试报告、CI 自动执行任务

按照这个路径,3 个月后你不仅能掌握接口测试,还能在简历上写上 “独立完成接口手动 + 自动化测试,落地性能测试基础流程”——完全满足市面上大部分公司的 JD 要求。关键是 “边学边用”,用实际项目的接口练手,遇到问题解决问题,比单纯看教程进步快 10 倍。

小黑子-IKUN 回复

超完整,不愧是大佬中的大佬!

究客 回复

已下载,正在研究中

dun 回复

sql 语法是会进行数据库操作吗?接口相关的不大多都是请求格式,请求头啥的。还会涉及到 sql?

ZYH 回复

已部署。接口这块没了解,之前一直在看功能。但是没采购

LYC 回复

好完整的一套流程。准备实行起来

风禾 回复

这个单个的已经好了的

风禾 回复

好多 jd,标明了 jmeter

Ryan 回复

受教了,感谢大佬

codes 回复

好的,感谢大佬

codes 回复

源码可以分享吗?

呼噜呼噜 回复

没开源 不过可以免费用 你下载 Codes

呼噜呼噜 回复

如果想了解清楚业务接口调用链路(比如:有些接口调用日志会有内部接口请求,内部接口是做什么的为什么需要这个,就需要去看执行的 sql 了),做全链路接口自动化,sql 是必会的,脚本会涉及到 sql 读写

dun 回复

好的,学到了。目前我还没接触到。先把前边的路走好了,后边把这个列到计划里。全链路自动化听起来很高级的样子😀

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册