一尘不染

如何使用JMeter在Tomcat中模拟表单身份验证?

tomcat

我是JMeter的新手,但是我对JMeter的用途有一些想法。我也有一个启用了表单身份验证的Tomcat应用程序。我尝试使用的线程包括:

  • HTTP请求默认值
  • HTTP Cookie管理器
  • HTTP标头管理器

以及以下一组HTTP采样器:

  • 登出页面(/app/logout.jsp
  • 登录页面(/app/login.jsp
  • j_security_check(/ app/j_security_check

在其中启用了“跟随重定向”和“使用KeepAlive”。我不知道为什么j_security_check请求响应重定向到logout.jsp。在Chrome浏览器中检查HTTP响应后,我注意到该请求重定向到index.jsp,但如果凭据合适,则永远不会重定向到注销页面。首先,我有一个想法,就是我没有模仿所有浏览器的HTTP标头,但是将所有这些标头添加到HTTP标头管理器后却失败了:

User-Agent  Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.859.0 Safari/535.2
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding gzip,deflate,sdch
Accept-Language en-US,en;q=0.8
Host    localhost:8080
Referer http://localhost:8080/whapp/index.jsp

但是即使指定了所有这些,我也无法模拟身份验证…有什么想法吗?提前致谢。


阅读 310

收藏
2020-06-16

共1个答案

一尘不染

您是尝试记录登录过程还是全部手动完成?

如果手动,则您的请求之一可能缺少参数。

如果已记录,则可能会有一个需要动态的硬编码参数(JSessionID等)。您可能需要添加带有正则表达式的GET来检索此值并将其传递给POST。

如果期望将JSessionID作为参数,则将无法通过Cookie管理器传递它,则需要将其作为HTTP参数。

有关录制的摘要,请参阅http://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.pdf

2020-06-16