boxmoe_header_banner_img

Hello! 欢迎来到悠悠畅享网!

文章导读

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


avatar
站长 2025年8月8日 8

使用 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 变量中。</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 等。掌握这种技巧可以提高接口测试的效率和准确性。



评论(已关闭)

评论已关闭