
本文介绍了如何使用 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 的标准格式进行分隔。
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"));
});注意事项:
总结:
通过结合 Cheerio 和正则表达式,可以有效地从 HTML 响应中提取特定的 JavaScript 变量值,并将其保存为 Postman 变量。这种方法可以应用于各种接口测试场景,例如提取授权码、会话 ID 等。掌握这种技巧可以提高接口测试的效率和准确性。
以上就是使用 Postman 从 HTML 响应中提取特定值的详细内容,更多请关注php中文网其它相关文章!
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号