
本文档旨在指导 Postman 用户如何从 HTML 响应中提取特定的变量值,例如 JavaScript 代码中的 authorizationCode。我们将使用正则表达式来匹配和提取目标值,并将其保存为 Postman 变量,以便在后续请求中使用。
在 Web API 测试中,有时服务器会返回 HTML 格式的响应。我们需要从这些 HTML 响应中提取特定的数据,例如动态生成的 token 或 ID。Postman 提供了强大的脚本功能,可以帮助我们实现这个目标。
一种常见的方法是使用 Cheerio 库解析 HTML,然后使用 CSS 选择器查找目标元素。然而,当目标数据隐藏在 JavaScript 代码中时,正则表达式可能是一种更直接有效的选择。
假设我们收到如下的 HTML 响应:
立即学习“前端免费学习笔记(深入)”;
<html>
<head>
</head>
<body>
<script>
function onClickButton(word) {
if (word == 'yes'){
var authorizationCode = '360ad5ce-ecfe-4ad4-83d1-9254e89a3ccc';
var state = 'c8271b81-4229-6a1f-bf9c-758f11c1f5b1';
} else {
alert(word);
}
}
</script>
<div class="shb-psua-sign-app-sandbox-container">
</div>
</body>
</html>我们的目标是从 <script> 标签中提取 authorizationCode 的值。由于 authorizationCode 的值是一个 GUID (Globally Unique Identifier),我们可以使用正则表达式来匹配它。
在 Postman 的 "Tests" 标签中,添加以下脚本:
pm.test("提取 authorizationCode", function () {
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}');
var match = regEx.exec(pm.response.text());
if (match) {
pm.collectionVariables.set("authorizationCode", match[0]);
console.log("authorizationCode: " + pm.collectionVariables.get("authorizationCode"));
} else {
pm.expect.fail("未找到 authorizationCode");
}
});代码解释:
注意事项:
本文介绍了如何使用正则表达式从 Postman 的 HTML 响应中提取特定的变量值,并将其保存为 collection 变量。 这种方法适用于从 JavaScript 代码或其他文本内容中提取已知格式的数据。 通过灵活运用正则表达式,可以有效地处理各种复杂的 HTML 响应,从而实现自动化 API 测试的目标。
以上就是使用 Postman 从 HTML 响应中提取特定值:正则表达式方法的详细内容,更多请关注php中文网其它相关文章!
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号