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

使用 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 变量中。

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 的标准格式进行分隔。

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 响应中提取特定值的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1570921.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月22日 13:19:25
下一篇 2025年12月22日 13:19:41

相关推荐

  • HTML如何实现星级评分?radio按钮怎么模拟星星?

    html中实现星级评分最稳妥的方式是使用radio按钮结合css,1. 通过隐藏radio按钮并用label模拟星星视觉效果;2. 利用direction: rtl或flex-direction: row-reverse实现从右向左排列;3. 使用:checked和~选择器实现选中及悬停时的高亮填充…

    2025年12月22日
    000
  • HTML如何制作文件管理器?怎么列出目录内容?

    无法用纯html/javascript直接列出本地目录内容,因为浏览器出于安全和隐私考虑,禁止网页随意访问本地文件系统,防止恶意网站窃取或破坏用户文件;2. 实现网页版文件管理器需采用“前端请求、后端处理、前端展示”的模式,由服务器端脚本(如php、node.js等)读取指定目录内容并返回json数…

    2025年12月22日
    000
  • body标签包含什么?如何在HTML中编写主要内容?

    标签是网页所有可见内容的容器,扮演着承载用户可感知内容的核心角色。1. 它是html文档中所有可见元素的根节点,如同舞台承载演员与布景,决定浏览器渲染的内容。2. 利用html5语义化标签如 、 、ain>、 、 、 、 可优化内容组织,提升代码可读性、可访问性与seo。3. 常见误区包括滥用…

    2025年12月22日 好文分享
    000
  • HTML如何隐藏元素?display:none和visibility:hidden的区别?

    display: none会彻底移除元素,不占据空间,适用于需要完全隐藏且不影响布局的场景;2. visibility: hidden仅使元素不可见,但仍占据原有空间,适合需保持布局稳定的情况;3. opacity: 0让元素透明但保留交互和空间,常用于淡入淡出动画;4. 通过绝对定位将元素移出可视…

    2025年12月22日
    000
  • HTML如何制作风速计?指针旋转怎么控制?

    首先用html构建风速计结构,包含表盘和指针容器;2. 使用css设置圆形表盘、指针样式及旋转中心,并添加过渡动画;3. 通过javascript获取风速数据并映射到0-180度的角度范围;4. 利用transform: rotate()动态更新指针角度,实现旋转效果;5. 可结合svg绘制精细刻度…

    2025年12月22日
    000
  • HTML如何实现卡片布局?阴影和圆角怎么设置?

    要实现高效的多张卡片布局,应根据需求选择flexbox或grid。1. 对于一维、内容动态的布局,使用flexbox,通过display: flex和flex-wrap: wrap实现换行,结合justify-content和gap控制对齐与间距,并用媒体查询适配不同屏幕;2. 对于二维、结构固定的…

    2025年12月22日 好文分享
    000
  • 什么是HTML5?与HTML4有什么区别?

    html5的语义化标签之所以重要,是因为它们赋予了网页内容明确的意义而非仅样式。1. 它提升了搜索引擎优化(seo),让爬虫能准确识别页面结构和内容重要性;2. 增强了可访问性,使屏幕阅读器等辅助技术可清晰导航页面区域;3. 提高了代码可读性与团队协作效率,开发者能直观理解结构;4. 促进了良好的开…

    2025年12月22日
    000
  • HTML如何设置表单网址输入?input type=”url”的用法是什么?

    最直接且推荐的方式是使用,它提供客户端验证、优化移动端键盘输入、增强可访问性;2. 相比type=”text”,type=”url”具备内置格式校验、语义化明确、提升用户体验等优势;3. 提升校验严谨性需结合pattern和title进行增强型客户端验…

    2025年12月22日
    000
  • HTML如何实现视频背景?全屏视频怎么自动播放?

    要实现全屏视频背景并确保自动播放,必须使用muted属性以满足浏览器自动播放策略,1. 使用html的标签并添加autoplay、loop、muted和playsinline属性;2. 通过标签提供mp4和webm格式以增强兼容性;3. 用css设置.video-background容器为固定定位并…

    2025年12月22日
    000
  • HTML如何实现选项卡切换?tab效果怎么做?

    实现html选项卡切换需结合html结构、css样式与javascript交互逻辑;2. html定义选项卡容器、头部按钮及内容区域,并通过data-tab属性关联对应关系;3. css使用flex布局排列头部按钮,通过display:none隐藏非激活内容,active类控制显示样式;4. jav…

    2025年12月22日
    000
  • HTML如何实现页面跳转?如何自动重定向?

    实现页面跳转和自动重定向的核心方式有以下几种:1. 使用标签实现用户点击跳转,通过href指定目标url,target控制打开位置;2. 利用实现html自动重定向,可在指定时间后跳转,适用于简单静态页面的临时跳转,但存在用户体验差、seo不友好、可能造成后退循环等问题;3. 采用javascrip…

    2025年12月22日
    000
  • HTML如何制作搜索框?input type=”search”的作用?

    与的主要区别在于语义化和浏览器优化,前者明确表示输入框用于搜索,能触发移动设备上的专用键盘、自动显示清除按钮,并提升无障碍访问支持;2. 实际好处包括:移动端输入体验优化(如搜索键盘、一键清除)、屏幕阅读器可识别搜索用途、浏览器可能提供更智能的自动填充和历史记录建议;3. 前后端协作方面:前端通过f…

    2025年12月22日
    000
  • HTML如何制作加载动画?旋转图标怎么实现?

    制作加载动画和旋转图标的核心是使用css的transform、@keyframes和animation属性,通过html构建结构,css实现动态效果,优先采用gpu加速的transform以提升性能;2. 对于复杂动画或交互需求,可选用javascript动画库如gsap、lottiefiles播放…

    2025年12月22日
    000
  • HTML如何制作日历?日期选择器怎么设计?

    要构建一个基础的html日历结构,首先应使用 标签搭建日历网格,1. 使用 定义星期标题(日到六),2. 使用 包含多行 表示每周,3. 每行内用 填充具体日期,空白位置可用class=”empty”占位,该结构语义清晰,天然契合日历的二维布局,即使无css或js也能呈现基本…

    2025年12月22日
    000
  • HTML如何做面包屑导航?结构化数据标记

    面包屑导航通过语义化html和schema.org结构化数据提升用户体验与seo;2. 使用 、 结合microdata或json-ld标记明确层级;3. 最后一项不应为链接,但需在结构化数据中包含自身url;4. 避免将面包屑作为主导航、忽略无障碍性或路径不一致;5. 推荐使用json-ld实现动…

    2025年12月22日
    000
  • HTML如何制作徽章效果?角标数字怎么添加?

    制作徽章和角标的核心思路是利用html构建结构,css通过定位、背景、圆角等属性实现视觉效果,通常将徽章元素置于相对定位的父容器内并使用绝对定位精确摆放;2. 徽章和角标之所以重要,是因为它们能有效引导用户注意力、传递状态信息、降低认知负担,并满足用户对完成感和即时反馈的心理需求;3. 动态更新徽章…

    2025年12月22日
    000
  • HTML如何实现文件上传?input type=”file”怎么用?

    html实现文件上传的核心是使用元素配合表单提交,1. 必须设置 以上就是HTML如何实现文件上传?input type=”file”怎么用?的详细内容,更多请关注php中文网其它相关文章!

    好文分享 2025年12月22日
    000
  • HTML如何实现拖拽排序?列表项怎么重新排列?

    拖拽排序的核心原理是利用html5的drag and drop api通过事件驱动和datatransfer对象实现dom元素的重新排列。1. 设置draggable=”true”使元素可拖拽;2. 在dragstart事件中通过event.datatransfer.setd…

    2025年12月22日
    000
  • HTML如何制作进度条?progress标签怎么用?

    progress标签的属性主要有value和max,value表示当前任务完成的数值,max表示任务总量,二者共同决定进度条的完成百分比;2. 当value存在时显示为确定性进度条,省略value则通常显示为不确定性加载状态;3. 可通过javascript动态更新value属性实现进度变化;4. …

    2025年12月22日
    000
  • HTML如何设置页面语言?lang属性有什么作用?

    html页面语言通过标签的lang属性设置,1. 设置lang属性可提升seo和可访问性,搜索引擎依此匹配用户语言,屏幕阅读器据此选择正确发音;2. 主要语言设置示例为lang=”en”或lang=”zh”,还可细化为lang=”zh-cn…

    2025年12月22日
    000

发表回复

登录后才能评论
关注微信