【问题标题】:Code 500/session timout in testing with JMeter使用 JMeter 进行测试时出现代码 500/会话超时
【发布时间】:2013-11-12 13:25:34
【问题描述】:

我现在正在使用 JMeter 测试基于 Bonitasoft 的 Web 应用程序的性能,但我在登录时遇到了一些问题。

我使用 HTTP 测试脚本记录器记录测试脚本,但其中一个请求(登录)得到响应代码 500 并且服务器日志显示会话超时。

我读到了其他类似的问题,并且我有 HTTP cookie 管理器,我使用“跟随重定向”,而不是“自动重定向”。我也没有找到任何带有 JSESSIONID 的请求。

我将不胜感激! ;)

【问题讨论】:

  • 是 Bonita BPM 问题还是 J Meter 问题?
  • @ttoine 可能使用 JMeter,因为通常在浏览器中登录工作正常,并且我使用“实时 HTTP 标头”检查请求,它们与 JMeter HTTP 测试脚本记录器中的类似。

标签: jmeter performance-testing


【解决方案1】:

相信登录成功后会出现JSESSIONID cookie。您可以尝试使用 Fiddler 或 Wireshark 之类的嗅探器工具从 Web 浏览器记录您的流量,并将浏览器发送的内容与 JMeter 的请求进行比较。

我的期望是您缺少一些登录请求强制值。您可以尝试查看您的登录页面的源代码,看看是否有类似的东西

<input type="hidden"..>

我猜您的登录请求中缺少诸如“viewstate”之类的内容,这就是它被拒绝的原因。

如果我的猜测是正确的,您可以使用 JMeter Regular Expression Extractor Post Processor 从页面源获取动态值并在以下请求中提供它们。

例如,如果您有以下输入:

<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="1ffVEvtAxEXyO+Mq561c58UaygSCfODTuKhiyBB7MATW+QQhvdmMhqtAU1AZey37+ZBtxx0Q0XfMl3v02hurmowb+bbxZHpBEJzcLPfE+e1ESTuA6mT6IUn5xH8=" />

您应该能够使用 RegEx 提取此值,例如:

<input type="hidden" name="javax.faces.ViewState" id="(.+?)" />

测试正则表达式的好地方是Jakarta Oro Demonstration Applet

【讨论】:

  • 感谢您的建议!但是,不幸的是,这不起作用。代码中没有缺失(隐藏)的值。问题仍未解决。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 1970-01-01
  • 1970-01-01
  • 2021-03-07
  • 1970-01-01
相关资源
最近更新 更多