【问题标题】:How to bypass session data in Jmeter如何绕过 Jmeter 中的会话数据
【发布时间】:2012-11-03 10:34:18
【问题描述】:

我正在研究(应该是)一个简单的 Jmeter 脚本,其目标是将大量数据加载到软件系统中进行测试。

Jmeter 记录了大量特定于会话的信息,当然,这些信息不能真正“回放”以使其正常工作。所有目标应用程序的 url 构造都在后台处理,并在响应中发送。有没有办法像运行 QTP/Selenium 测试那样简单地“忽略”所有这些会话数据和或多或少的脚本 JMeter?

为了尝试澄清,我们提供了发布特定于会话的 URL 的按钮。我希望能够只“单击按钮”并让事情自然流动,而无需处理任何会话细节。

对于“单击按钮”的比喻感到抱歉,我知道该工具不与 GUI 交互,但这是我能想到的最好的东西。

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    出于性能原因,JMeter 不解析 HTML 并执行 Javascript(这需要很多时间)。相反,JMeter 在 HTTP 协议级别工作。因此,它使用的系统资源比 Selenium 测试少得多。

    您必须自己构建这些 HTTP 请求,并且必须处理会话细节。也许,HTTP Proxy Server 会让您的生活更轻松。

    【讨论】:

    • 嗯,我已经想出了如何记录步数之类的,但花了一点时间才发现我设法错过了一个记录步骤。
    【解决方案2】:

    如果不进行后端更改(例如禁用 cookie/关闭安全令牌),就无法避免会话数据。这两者都不是这里的选择。

    我通过捕获所有必要的会话令牌并正确参数化我的脚本来解决这个问题。

    【讨论】:

    • 你能补充一些细节吗?回答你自己的问题很好,但为什么不帮助下一个人呢?
    • 我并不是说这很粗鲁,但“捕获会话令牌”和“参数化脚本”是最简单的解决方案。会话数据是特定于实现的,并且取决于底层应用程序容器,甚至是语言。 (j2ee=JESESSIONID) php 有自己的 session-cookie 魔法。 stackoverflow.com/questions/1389464/… 这将对 OOB 会话 cookie 有所帮助,但您必须使用正则表达式逐个处理 CSRF 令牌。
    • 对我来说,它是一个隐藏表单元素中的 CSRF 令牌(从概念上讲)。我最终使用 CSS 选择器从响应中读取值。感谢您的回复。
    • 您是否使用 Jmeter 以编程方式操作 CSS 选择器?我不是前端人员,所以我并没有真正考虑过这种方法。
    • 我刚刚在 CSS/jQuery 提取器中使用了一个非常通用的选择器。在我的情况下,令牌存储在对话 ID 中,所以我这样做了:[name*="Cid"]
    猜你喜欢
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 2012-01-09
    • 2016-04-02
    • 1970-01-01
    相关资源
    最近更新 更多