【问题标题】:Automated script logs out using JMeter使用 JMeter 自动注销脚本
【发布时间】:2017-11-24 22:51:35
【问题描述】:

我正在尝试自动测试 Web 应用程序。
我已经使用 JMeter 代理模板(JMeter 版本为 3.2)记录了测试,当我在 JMeter 中运行测试时,它运行正常,但一段时间后只有部分运行正常。

以下是我正在执行的步骤:

  1. 点击网址

  2. 登录应用程序

  3. 更改应用程序中的某些功能

等等。

所有步骤最初几次都运行良好,但之后直到登录一切正常运行。
只是为了确保我尝试使用正则“表达式提取器”将 jsessionid 从第一个请求传递到下一个请求。我可以在查看结果树中看到 jsessionid 已正确传递,但在第二步之后的下一页仍将我带入登录屏幕。

任何帮助将不胜感激。
我附上了截图以便更好地理解:

登录页面的响应头包含一个 sessionid,在登录时被另一个请求使用。
登录下一页后,所有 sessionID 仍然正确维护,将我带到登录页面,而不是显示记录中接下来做了什么。

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    在对JSF-based web applications 进行负载测试时,您至少需要注意以下动态参数:

    1. JSESSIONID
    2. javax.faces.Viewstate

    JSESSIONID 是一个普通的HTTP cookie 所以添加一个HTTP Cookie Manager 来处理就足够了

    javax.faces.Viewstate 是客户端状态管理机制,它也充当安全令牌来验证用户的来源。因此,您需要正确地 correlate 它,即使用 JMeter PostProcessors 之一从先前的响应中提取,存储到 JMeter 变量中并作为参数添加到下一个请求。请记住为每个请求执行此操作。

    可能有更多特定于应用程序的动态参数,检测它们的最简单方法是记录相同的请求(或场景)2 次,比较记录的脚本,检测并解决差异。

    【讨论】:

    • 非常感谢您使用 javax.faces.ViewState 为每个请求工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 2011-04-14
    • 2015-03-17
    • 2017-04-21
    相关资源
    最近更新 更多