【接口测试】Apipost 从入门到实战,接口调试、环境变量、断言、自动化测试全流程

前言

后端开发过程中,写完 Controller 接口之后,第一件事就是接口调试,验证入参、返回体、异常场景。传统方式:Postman、curl、Swagger。 但 Postman 存在国内访问慢、团队协作不便;Swagger 只适合简单调试,缺少断言和自动化能力。

Apipost 一站式解决痛点:接口调试 + 在线文档 + Mock 服务 + 自动化测试,一个工具搞定接口全生命周期,支持 HTTP/HTTPS、WebSocket、gRPC,支持导入 OpenAPI (Swagger)、Postman 导出文件,无缝迁移历史接口用例。

适用人群:后端开发、接口测试工程师、前端调试接口。

一、Apipost 基础介绍与安装

Apipost 分为桌面客户端(推荐)、网页版。桌面客户端可访问本地 localhost 内网接口,开发优先使用桌面端。

核心能力清单:

  1. 接口调试:GET/POST/PUT/DELETE 等 RESTful 请求,支持 form-data、x-www-form-urlencoded、JSON raw
  2. 环境变量 / 全局变量:区分开发、测试、生产环境,自动提取 Token
  3. 响应断言:可视化断言 + JS 脚本断言,校验返回状态码、返回字段
  4. 自动化测试套件:串联多个接口,流程化测试(登录→获取 token→查询业务接口)
  5. Mock 服务:后端接口未开发完成,前端直接 Mock 模拟返回
  6. 接口文档:调试完成一键生成在线接口文档,支持分享、导出 Markdown/HTML
  7. 团队协作:项目成员共享接口集合,多人协同维护接口
  8. 测试报告:执行完成导出 HTML 测试报告,用于提测交付

对比 Postman:中文原生、国内访问稳定,内置文档能力,免费额度充足,适合国内团队;Postman 海外服务器,网络不稳定,文档能力弱。

二、基础实战:新建项目,发送第一个 HTTP 请求

1. 创建项目与接口集合

  1. 打开 Apipost,新建项目,项目名称例如:订单管理系统
  2. 在项目内新建接口集合(分类管理接口,如用户模块、订单模块)

集合:相当于接口文件夹,方便批量管理、批量执行自动化。

2. 新建请求,发送 GET/POST

点击+新建请求:

  • 请求方法:GET / POST / PUT / DELETE
  • 请求 URL:http://127.0.0.1:8080/api/user/list
  • 请求参数分 4 块:
    1. Params :URL 查询参数,?id=1&name=xxx
    2. Headers :请求头,Content-Type、Authorization、Token 都在这里配置
    3. Body :请求体,POST 请求使用
      • form-data:文件上传、表单
      • x-www-form-urlencoded:普通表单提交
      • raw:选择 JSON,传递 JSON 对象(后端最常用)
    4. 认证 Auth:统一配置鉴权信息

示例 POST JSON 请求体:

复制代码
{
    "username": "admin",
    "password": "123456"
}

填写完成,点击发送,右侧查看响应状态码、响应体、响应头、耗时。

状态码快速参考: 200 成功;400 参数错误;401 未登录 Token 失效;403 权限不足;404 接口不存在;500 服务端异常。

三、环境变量与全局变量(项目最核心功能)

开发中一般有三套环境:本地开发环境 dev、测试环境 test、生产 prod,三套环境域名不一样。如果每次手动修改 URL,极易出错。使用环境变量统一管理。

1. 创建环境

左侧【环境管理】新建环境:dev环境、test环境 环境内定义变量:

复制代码
baseUrl : http://127.0.0.1:8080
token : ""

接口 URL 直接引用变量:{``{baseUrl}}/api/user/login

变量语法:{``{变量名}}

变量分类:

  1. 环境变量:当前选中环境生效,如不同环境的 baseUrl、环境专属 token
  2. 全局变量:所有环境全局生效,跨环境共享
  3. 临时变量:单次请求生命周期内有效

2. 实战:登录接口自动提取 Token,供后续接口使用

业务场景:调用登录接口,拿到返回的 token,自动存入环境变量,后续所有业务接口 Header 自动带上 token。

操作方式两种:可视化提取(推荐新手)、后置脚本(灵活复杂场景)

方式 1:可视化提取变量(无代码)

登录接口【后置操作】→【提取变量】

  • 来源:响应 JSON
  • 表达式:$.data.token
  • 变量名称:token
  • 作用域:当前环境

登录接口执行成功后,自动把返回体里的 token 存入当前环境变量{``{token}}。

方式 2:后置脚本(JS 脚本,复杂场景)

切换到【后置执行脚本】,写入脚本:

复制代码
// 获取返回json对象
let resp = response.json;
// 将token设置到当前环境变量
apt.environment.set("token", resp.data.token);

后续接口 Header 添加:Authorization: Bearer {``{token}},无需手动复制 token。

踩坑提醒:切换环境后,变量自动切换;环境变量只在选中的环境生效。

四、接口断言(验证接口返回是否符合预期)

调试接口不能只看状态码 200,必须校验返回数据,断言就是自动化校验规则。 Apipost 支持可视化断言(零代码)和 JS 脚本断言两种方式。

场景:登录接口返回,校验 3 个规则

  1. HTTP 响应状态码 = 200
  2. 返回体 code 字段等于 0(业务成功码)
  3. data 中的 token 不为空

方式 1:可视化断言(推荐)

接口【断言】Tab,添加断言规则:

  1. 响应码 等于 200
  2. JSON 属性 $.code 等于 0
  3. JSON 属性 $.data.token 不为空

发送请求,断言区域直接展示:成功 / 失败,失败会标注哪一条校验不通过。

方式 2:JS 脚本断言(适合复杂逻辑)

复制代码
// 断言响应状态码
apt.assert(response.code == 200, "响应状态码必须200");
let jsonData = response.json;
// 业务code为0
apt.assert(jsonData.code === 0, "业务code不等于0,接口失败");
// token非空
apt.assert(jsonData.data.token != null, "token为空");

apt.assert (表达式,"失败提示信息");表达式为 false,断言失败。

五、自动化测试套件:串联多接口流程测试

很多业务不是单个接口,存在调用链路:登录接口 → 获取 token → 查询用户列表 → 创建订单,需要按顺序串行执行,就是自动化测试套件。

操作步骤

  1. 新建【测试套件】
  2. 添加测试步骤,依次添加接口:登录、查询用户、创建订单
  3. 执行逻辑:顺序执行;支持添加控制器:条件判断、循环次数
  4. 执行套件,一键批量运行所有接口,自动执行所有接口内的断言
  5. 套件执行完成,生成测试报告,可导出 HTML 文件

适用场景:版本回归测试,后端发布新版本后,一键跑整套接口用例,快速发现接口回归 bug。

六、导入导出、Swagger/OpenAPI 导入

项目已经有 Swagger 文档,不用手动逐个新建接口,一键导入:

  1. 项目 → 导入
  2. 选择 OpenAPI/Swagger,粘贴 swagger json 地址或者上传 json 文件
  3. Apipost 自动批量生成全部接口,带请求参数、响应示例

导出:接口集合可以导出 JSON,备份或者分享给团队;测试套件执行报告导出 HTML,交付测试。

七、Mock 服务(前端开发神器)

后端接口还未开发完毕,前端需要提前联调页面,可以直接使用 Apipost Mock。 给接口配置 Mock 期望响应,前端请求 Mock 地址,直接返回模拟 JSON 数据,前后端并行开发。

八、常见踩坑与排错(高频问题)

  1. 访问localhost:8080提示连接失败

网页版无法访问本地内网,必须使用桌面客户端;检查后端服务是否启动,端口是否正确,防火墙。

  1. token 提取不生效

检查后置脚本 / 提取变量是否配置;确认 JSON 路径$.data.token与返回体结构匹配;确认作用域选的是【当前环境】。

  1. 401 未授权

Header 中 Authorization 配置错误;token 过期;环境变量没有成功更新,重新执行登录接口。

  1. JSON 请求报 400 参数错误

Header 缺少Content-Type: application/json;JSON 格式错误(逗号、引号、括号语法错误)。

  1. HTTPS 证书报错

设置中关闭 SSL 证书校验,忽略证书。

九、Apipost vs Postman vs JMeter 选型对比

表格

工具 定位 优点 缺点 适用场景
Apipost 接口全生命周期 中文,文档 + 调试 + 自动化一体,团队协作强 压测能力一般 后端接口调试、接口自动化回归、文档管理
Postman 接口调试工具 生态成熟 国内网络差,文档能力弱 个人海外接口调试
JMeter 性能测试 高并发压测能力强 上手复杂,没有接口文档功能 性能、并发压力测试

结论:日常后端接口开发、接口自动化回归、接口文档维护优先选择 Apipost;高并发性能测试选用 JMeter。

十、面试 / 工作中 Apipost 相关考点

  1. 问:环境变量的作用?

答:区分多套环境 (dev/test/prod),统一管理域名、token,不用反复修改接口 URL,减少重复工作量。

  1. 问:后置脚本用途?

提取接口返回的字段(token、id)存入环境变量,实现接口之间参数传递,完成流程化自动化测试。

  1. 问:断言的作用?

自动校验接口返回结果,不只看 200 状态码,校验业务返回码、返回字段,自动化发现接口异常。

  1. 问:测试套件作用?

将多个接口串联,模拟完整业务流程,一键批量执行,版本迭代做回归测试,自动生成测试报告。

十一、总结

Apipost 已经不只是简单的接口调试工具,而是一套 API 全生命周期协作平台。 后端开发日常使用核心流程: 新建项目集合 → 配置环境变量 → 编写接口请求 → 后置脚本提取 Token → 添加断言 → 组装测试套件 → 批量回归执行,导出报告

重点掌握:环境变量、后置脚本提取变量、断言、测试套件。这四块是日常开发最高频的能力。

拓展学习:Apipost CI 集成,流水线自动执行接口自动化;Apipost 压测、JSON Schema 校验。

相关推荐
流星雨在线7 个月前
Apipost 和 Apifox 哪个更好用
apipost·apifox
Proud lion10 个月前
Apipost开发管理平台功能对比与应用场景分析
yapi·postman·apipost·apifox·api开发
Codebill10 个月前
Apipost 自动化测试实战:用 IF 控制器实现“增删改查”依赖链
自动化测试·接口测试·接口自动化·api测试·apipost
Proud lion1 年前
庚商技术团队的新“接口自由”:Apipost-Helper让文档自己长出来
intellij-idea·postman·开发工具·后端开发·apipost·apifox·apipost-helper
Apipost的同学们1 年前
API测试工具进化:从Postman到Apipost的全局参数管理革命
postman·api测试·1024程序员节·apipost·参数管理·全局参数管理
Codebill1 年前
改 187 个接口参数:Postman 卡壳时,Apipost 凭什么 5 分钟搞定?
postman·api测试·apipost·全局参数
Codebill1 年前
API 响应体加密场景下的调试实践:Postman 的局限与 Apipost 的优化
postman·apipost·api调试
lichong9511 年前
API开发工具postman、国内xxapi和SmartApi的性能对比
eclipse·intellij-idea·api·postman·visual studio·apipost·apifox
绿色果酱1 年前
Apipost:离线可用+AI全栈覆盖,国产API开发协作工具新标杆
postman·ai功能·apipost·apipost离线·apipost ai·ai能力·apipost操作