如何使用Jmeter从浏览器捕获本地存储?

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

有一个网址。每次启动 URL 时,浏览器都会动态生成一个新的键和值。并且它存储在本地存储中。此外,当启动此 url 时,它会重定向到身份验证页面。那个时候键和值就消失了。实际上这个键和值只显示了不到2秒。

我想在它消失之前捕获该键和值。我也在使用 jp@gc webdriver。我正在 Chrome 中启动它。

我无法从本地存储中检索键和值。

这是我的绝妙脚本。enter image description here

这是我从查看结果树中对此的回应。enter image description here

groovy jmeter local-storage jmeter-plugins
1个回答
0
投票
  1. 首先,将代码作为图像发布是对社区的不尊重,请不要

  2. 以下是从本地存储中获取第一个键名称和值的代码:

    WDS.sampleResult.sampleStart()
    WDS.browser.get('https://stackoverflow.com')
    def allKeys = WDS.browser.executeScript('return Object.keys(window.localStorage);')
    WDS.vars.put('localStorageKey', allKeys[0])
    WDS.vars.put('localStorageValue', WDS.browser.executeScript('return window.localStorage.getItem(window.localStorage.key(0));'))
    WDS.sampleResult.sampleEnd()
    

    并演示它的工作原理:

    如果它在您的具体情况下不起作用,您应该根据本地存储描述

    联系您的应用程序开发人员

    窗口界面的 localStorage 只读属性允许您访问 Document 来源的 Storage 对象; 存储的数据跨浏览器会话保存

    因此,即使您关闭浏览器并再次打开它,该值也应该存在,并且它不应该“仅显示少于 2 秒”。

如果该值仅剩下 2 秒,您可以使用即 Explicit Wait 从 DOM(或本地存储)获取其值,例如:

def wait = new org.openqa.selenium.support.ui.WebDriverWait(WDS.browser, java.time.Duration.ofSeconds(5))
def targetKey = wait.until (webdriver -> webdriver.executeScript('return window.localStorage.key(0);'))

有关 JMeter 中 Groovy 脚本编写的更多信息:Apache Groovy:Groovy 的用途是什么?

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