使用 Postman 从 HTML 响应中提取特定值

心靈之曲
发布: 2025-08-08 18:24:01
原创
651人浏览过

使用 postman 从 html 响应中提取特定值

本文介绍了如何使用 Postman 从 HTML 响应中提取特定的 JavaScript 变量值。通过结合 Cheerio 和正则表达式,可以有效地解析 HTML 内容,定位目标变量,并将其值保存为 Postman 变量,方便后续的接口测试和数据处理。

在进行接口测试时,有时需要从 HTML 响应中提取特定的数据,例如 JavaScript 变量的值。Postman 提供了强大的脚本功能,可以结合 Cheerio 库和正则表达式来实现这一目标。以下是如何从 HTML 响应中提取 authorizationCode 变量值的详细步骤:

1. 使用 Cheerio 加载 HTML

首先,使用 Cheerio 库加载 HTML 响应。Cheerio 是一个快速、灵活、简洁的 jQuery 核心实现的服务器端库,可以方便地解析和操作 HTML 结构。

立即学习前端免费学习笔记(深入)”;

const $ = cheerio.load(pm.response.text());
var script = $("script").text();
登录后复制

这段代码首先使用 pm.response.text() 获取 HTML 响应的文本内容,然后使用 cheerio.load() 将其加载到 Cheerio 对象中。接着,使用 $("script").text() 获取 <script> 标签内的所有文本内容,并将其存储在 script 变量中。

2. 使用正则表达式提取变量值

接下来,使用正则表达式从 script 变量中提取 authorizationCode 的值。由于 authorizationCode 的值是一个 GUID,可以使用以下正则表达式进行匹配:

var regEx = new RegExp('(\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1}');
登录后复制

这个正则表达式可以匹配包含36个字符的字符串,其中包含数字和字母,并按照 GUID 的标准格式进行分隔。

Robovision AI
Robovision AI

一个强大的视觉AI管理平台

Robovision AI 65
查看详情 Robovision AI

3. 将提取的值保存为 Postman 变量

最后,使用 pm.collectionVariables.set() 将提取的 authorizationCode 值保存为 Postman 集合变量,以便在后续的请求中使用。

pm.collectionVariables.set("access_token", regEx.exec(pm.response.text())[0]);
console.log(pm.collectionVariables.get("access_token"));
登录后复制

这段代码首先使用 regEx.exec(pm.response.text())[0] 执行正则表达式匹配,并获取匹配到的第一个结果。然后,使用 pm.collectionVariables.set() 将结果保存为名为 access_token 的集合变量。最后,使用 console.log() 将变量的值打印到 Postman 控制台,方便调试。

完整代码示例:

pm.test("Body matches string", function () {
    const $ = cheerio.load(pm.response.text());
    var script = $("script").text();
    var regEx = new RegExp('(\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1}');
    pm.collectionVariables.set("access_token", regEx.exec(script)[0]);
    console.log(pm.collectionVariables.get("access_token"));
});
登录后复制

注意事项:

  • 确保已在 Postman 中安装 Cheerio 库。可以在 Postman 设置中的 "Settings" -> "General" -> "Automatically install referenced modules" 中启用自动安装。
  • 正则表达式的编写需要根据实际情况进行调整,以确保能够准确匹配目标变量的值。
  • 可以使用 console.log() 打印中间变量的值,方便调试和排查问题。
  • 如果 HTML 结构复杂,可能需要使用更复杂的 Cheerio 选择器和正则表达式来定位目标变量。
  • 如果需要提取多个变量,可以重复以上步骤,并使用不同的变量名和正则表达式。

总结:

通过结合 Cheerio 和正则表达式,可以有效地从 HTML 响应中提取特定的 JavaScript 变量值,并将其保存为 Postman 变量。这种方法可以应用于各种接口测试场景,例如提取授权码、会话 ID 等。掌握这种技巧可以提高接口测试的效率和准确性。

以上就是使用 Postman 从 HTML 响应中提取特定值的详细内容,更多请关注php中文网其它相关文章!

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号