jmeter - 如何在 Jmeter 中模拟浏览器的两个连续选项卡行为?
问题描述
我有如下要求。我有两个 URL 要在浏览器的两个不同选项卡中运行。状态为“mystate”的第一个 URL。这将重定向到登录页面。
https://localhost:9031/as/authorization.oauth2?client_id=ac_client&response_type=code&scope=openid&nonceid=123-456-789&prompt=&state=mystate&RequestTypeId=Authorize&overrideUseDefaultUI=
状态为“yourstate”的第二个 URL。这也重定向到登录页面。
https://localhost:9031/as/authorization.oauth2?client_id=ac_client&response_type=code&scope=openid&nonceid=123-456-789&prompt=&state=yourstate&RequestTypeId=Authorize&overrideUseDefaultUI=
在第二个 URL 选项卡上,如果我尝试登录,这仍然会将状态显示为“mystate”而不是“yourstate”。这是我需要修复的错误。
好吧,我的问题是,如何在我的 Jmeter 中复制浏览器的这种行为?或者我如何在我的 Jmeter 中复制这个错误。因为我知道只需添加两个同时的 HTTPRequest,这种情况将不会被复制。
解决方案
如果您可以使用浏览器重现该问题,您应该能够使用 JMeter 执行此操作,只需仔细检查请求并确保 JMeter 发送与浏览器相同的请求即可。
请注意请求标头,尤其是Cookie,就好像您只是使用HTTP 请求采样器来访问 URL 一样,这可能不足以复制真实浏览器的行为。可以使用HTTP 标头管理器控制标头
另请注意,如果您的应用程序依赖于本地存储或会话存储,不幸的是 JMeter 将不支持这种情况,因为它无法执行 JavaScript,在这种情况下,您将不得不使用像Selenium这样的真正的浏览器自动化框架,有 JMeter/Selenium称为WebDriver Sampler的集成,它允许从 JMeter 测试中启动真实的浏览器并执行任意代码来编排模拟真实用户活动的浏览器
推荐阅读
- c++ - 在编译时计算范围的限制
- java - 使用 Java Kernel32 获取 JVM 和加载类之后
- node.js - 现有 Model.Document 上 .save() 的有效替代方案
- microsoft-teams - 默认情况下在浏览器中打开自定义团队应用程序 (Teams Mobile)
- amazon-web-services - 将 AWS ACM 证书附加到 Consule UI 服务
- laravel - laravel如何通过带有符号链接的存储方法访问上传的图像
- reactjs - 渲染后动态定位元素反应js
- python - 带有可点击链接的 Outlook 正文?
- ffmpeg - 没有信令服务器的混合现实 WebRTC
- node.js - 如何解决这个错误?angular v11 原理图工作流程失败。看上面