【问题标题】:LoadRunner Forms Authentication cookie expiredLoadRunner 表单身份验证 cookie 已过期
【发布时间】:2014-01-24 09:36:56
【问题描述】:

使用 loadrunner 进行负载测试时,我的所有虚拟用户都会在 30 分钟后从应用程序中注销。仔细查看后发现,即使我们有用户持续执行活动,身份验证 cookie 也会过期。

现在我们尝试在每次操作后显式更新 cookie 以防止过期,但不确定服务器如何识别身份验证 cookie 已过期。 cookie 只有加密文本,没有明确的标题提及到期时间。

身份验证cookie中应更新cookie中的哪些信息以防止其过期?

Cookie 信息:

饼干:

.ASPXAUTH=66DD4AB74239F00D553BA9640D3AD3F284F47DEC315FD6789AE3FB8D67D2A46A4E89EDB45845C921A7557BD6B39A12EE07188D1009D581AA7AAF6743710653AE44EEF2733CC16082C595D7AE7C73D3E7E3D44BA1BAEEFEB1BF5F98B35C5F8429670FFDD5586E03BB3138C5B78945D82702BDD7C4; 路径=/; HttpOnly

【问题讨论】:

    标签: forms authentication cookies loadrunner


    【解决方案1】:

    告诉我们您是如何在脚本中管理会话状态的。通常,如果您要清除所有 cookie 并为每次迭代实例化一个新会话,则不应遇到此问题。如果您试图在整个测试期间保持某种单一的会话状态,我可以看到在您的原始会话从技术上注销系统后(作为业务流程的一部分),服务器可能会将您踢出。

    另外,您的脚本中是否有明确的 cookie?如果是这样,您可能需要考虑将这些语句注释掉,因为 LoadRunner 将自动管理 cookie。作为您烧机的一部分,请考虑运行单个虚拟用户 30 分钟到一个小时,看看您是否在单个虚拟用户级别上体验到这一点。为单个用户修复然后投射到加载比尝试找出数十或数百个遇到类似问题的用户发生的事情要容易得多。

    【讨论】:

    • 我没有在我的脚本中明确处理 cookie,我认为 Loadrunner 会自动处理它们。
    • 我没有在我的脚本中明确处理 cookie,我认为 Loadrunner 会自动处理它们。这个特定的身份验证表单 cookie 在 Vuser 初始化操作中设置,每个用户只会调用一次。我不确定当用户在应用程序中执行操作时此 cookie 是如何重置的,或者当 Vuser 在 Loadrunner 中执行操作时为什么 cookie 没有得到更新。在 Vuser Init 部分中设置的 cookie 是否不会在每次迭代时更新?有没有我们可以捕获和关联表单 cookie 相关信息的地方?
    • "Vuser Init 部分中设置的 cookie 是否不会在每次迭代时更新?"是的,vuser_init() 只在每个用户启动时执行一次,并且不会在每次迭代中再次执行。您可能需要查看与事件调度和处理相关的 vuser_init()、Action() 和 vuser_end() 的使用相关的文档部分。
    【解决方案2】:

    据我所知,服务器会跟踪 cookie 的到期时间,并且服务器也会更新到期时间,这意味着您作为客户端无法控制。

    我假设流程是这样的:

    The browser or LoadRunner Script will always send the cookie and the
    server then verifies it's expiry time on the server side, redirecting
    you to the login page if it has expired.
    

    我遇到过这种情况,并通过访问服务器上“更新客户端会话到期时间”的特殊页面来解决它。或许你也有类似的情况?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-30
      • 2018-09-29
      • 1970-01-01
      • 2014-04-01
      • 2011-11-25
      • 2011-06-11
      • 2012-07-25
      相关资源
      最近更新 更多