403 JMeter 脚本中的禁止错误(我的应用程序使用react.js前端和node js后端,并且它具有作为第3方的Autodesk功能)

问题描述 投票:0回答:1

Blazemeter 记录已被证明不支持此应用程序记录。因此,我将 HAR 转为 JMX 文件,并从 JMeter 增强了为我的功能捕获的请求。最初,我在请求的主页本身中遇到 401 未经授权的错误(我的应用程序也是SSO 已启用),但我通过在标头管理器中放置 cookie csrf 和 sessionid 的硬编码值来对此进行排序,因此最终避免了此 401 错误。

但是调用 Autodesk 第 3 方请求的后续请求显示 403 禁止错误。

请让我知道如何处理这个问题。 该应用程序还具有 X-XSRF-TOKEN 作为标头传递,我尝试在我的脚本中按如下方式传递它们,但没有成功,所以我保持原样。不确定它是否会导致此 403 禁止错误。


将下一行添加到 user.properties 文件(位于 JMeter 安装的“bin”文件夹中)

CookieManager.save.cookies=true 重新启动 JMeter 以使更改生效

将 HTTP Cookie 管理器添加到您的测试计划中

将 HTTP 标头管理器添加到您的测试计划并将其配置为发送以下标头:

名称:X-XSRF-TOKEN 价值:${COOKIE_XSRF-TOKEN}


我尝试在下面处理 xsrf 但没有成功。 将 HTTP Cookie 管理器添加到您的测试计划中

将 HTTP 标头管理器添加到您的测试计划并将其配置为发送以下标头:

名称:X-XSRF-TOKEN 价值:${COOKIE_XSRF-TOKEN}

所以我将此令牌保留在所有请求标头中,并且在后续请求(第 3 方 autodesk)中显示 403 禁止错误。

jmeter jmx
1个回答
0
投票

通过在标头管理器中放置 cookie csrf 和 sessionid 的硬编码值来对此进行排序

我认为硬编码值不起作用,通常 cookie 和会话 ID 的生命周期有限,因此当它们过期时,您将再次面临身份验证问题。

您需要执行相关,而不是“硬编码”,以便使用合适的后处理器从先前的响应中提取动态值,将它们保存到JMeter变量中,并用变量替换记录的值。

示例:什么是 CSRF 以及如何加载测试受 CSRF 保护的网站

关于“第 3 方”请求,我宁愿将它们从脚本中排除,除非它们是绝对必需的,这样您的测试计划将“仅”关注您的应用程序端点,而不会触及 Google、Microsoft、Autodesk 等任何资源

© www.soinside.com 2019 - 2024. All rights reserved.