Hoppscotch如何使用测试脚本验证响应_Hoppscotch Test Script编写教程【实战】
Hoppscotch中需通过Tests面板编写脚本实现API响应自动验证:一、用pm.response验证状态码与响应时间;二、解析JSON校验字段存在性、类型及值;三、检查Content-Type等响应头;四、提取token等数据设为环境变量;五、用tv4按JSON Schema严格校验结构。

如果您在Hoppscotch中发送API请求后需要自动验证响应是否符合预期,则需通过编写测试脚本实现断言逻辑。以下是多种可直接运行的测试脚本编写方法:
一、基础状态码与响应时间验证
该方法用于确认HTTP请求是否成功返回且响应及时,是最基本的可靠性检查。它依赖内置的pm.response对象获取状态信息,并使用pm.expect进行断言。
1、点击目标请求,在右侧标签栏切换至“Tests”面板。
2、输入以下脚本:
pm.test("Status code is 200", function() { pm.response.to.have.status(200); });
3、添加响应时间断言:
pm.test("Response time is less than 500ms", function() { pm.expect(pm.response.responseTime).to.be.below(500); });
二、JSON响应体字段与结构验证
该方法适用于返回JSON格式数据的API,可验证关键字段是否存在、类型是否正确、值是否匹配预期,避免因结构变更导致前端解析失败。
1、确保响应体为合法JSON(Hoppscotch会自动高亮语法错误)。
2、在Tests面板中添加以下脚本:
pm.test("Response has user object", function() { const jsonData = pm.response.json(); pm.expect(jsonData).to.have.property("user"); });
3、进一步校验嵌套字段类型:
pm.test("User ID is number and name is string", function() { const jsonData = pm.response.json(); pm.expect(jsonData.user.id).to.be.a("number"); pm.expect(jsonData.user.name).to.be.a("string"); });
三、响应头与内容类型校验
该方法用于验证服务端是否按约定返回正确的HTTP头信息,尤其适用于需强制要求Content-Type或自定义认证头的场景。
1、在Tests面板中插入以下脚本:
pm.test("Content-Type is application/json", function() { pm.expect(pm.response.headers.get("Content-Type")).to.include("application/json"); });
2、验证自定义响应头(如X-RateLimit-Remaining):
pm.test("Rate limit header exists", function() { pm.expect(pm.response.headers.has("X-RateLimit-Remaining")).to.be.true; });
四、动态提取并设置环境变量
该方法支持从当前响应中提取数据(如token、ID等),并写入环境变量,供后续请求复用,是构建请求链的关键步骤。
1、在Tests面板中添加提取逻辑:
pm.test("Extract and set auth token", function() { const jsonData = pm.response.json(); pm.environment.set("auth_token", jsonData.token); });
2、验证变量是否成功写入:
pm.test("Auth token is not empty", function() { pm.expect(pm.environment.get("auth_token")).to.not.be.undefined; });
五、JSON Schema结构化断言
该方法使用tv4库对整个响应体执行严格模式校验,适用于接口契约明确、需保障前后端数据结构完全一致的生产环境。
1、在Tests面板中粘贴完整Schema定义:
pm.test("Validate response against schema", function() { const schema = { type: "object", properties: { id: { type: "number" }, email: { type: "string", format: "email" } }, required: ["id", "email"] }; const jsonData = pm.response.json(); pm.expect(tv4.validate(jsonData, schema)).to.be.true; });
2、若校验失败,Hoppscotch将在测试结果中显示具体不匹配路径。
- 1 三角洲行动唯一官网入口 三角洲行动官方网址入口
- 2 俄罗斯引擎搜索入口推荐 俄罗斯引擎稳定使用方法汇总
- 3 yandex搜索引擎入口中文版 yandex最新中文版官方搜索入口
- 4 香香漫画官方网站入口 香香漫画网页版访问路径
- 5 Archive of Our Own 2026年最新网页版进入方法 AO3官网正式访问路径
- 6 漫蛙2(台版)访问入口 漫蛙2(台版)正版在线漫画入口
- 7 51漫画网入口更新-免费浏览51漫画网地址
- 8 yy漫画官方入口在哪 yy官方漫画免费登录阅读
- 9 谷歌浏览器网页版登录入口 Chrome浏览器官方指定访问链接
- 10 AO3最新官方入口网页_AO3镜像站点2026导航链接整理大全