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

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

痛点

团队就一个测试,还一直在做功能测试。既要做功能测试,又要研究功能测试自动化。一直没有推行接口自动化。但是看好多 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/json;Authorization:放登录 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/json;Authorization:放登录 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 回复

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

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