如何使用jMeter以登录用户身份与我的站点进行交互

时间:2014-02-07 00:33:41

标签: jmeter

我正在尝试使用jMeter加载测试我的Web服务器,我能够使用POST请求成功登录到登录页面,但其他页面正在重定向,就像我的线程未经过身份验证一样。

http://puu.sh/6MCu3.png

HTTP请求'登录(POST)'后的任何内容都会被重定向到主页。这有点毁了我的测试。我还添加了Cookie管理器:

http://puu.sh/6MCwP.png

我是否需要添加自定义Cookie?是否按用户组树的顺序访问了页面?

2 个答案:

答案 0 :(得分:3)

  1. 是的,页面按照树的顺序访问。

  2. 在不知道您应用的具体情况的情况下,我猜测有一些动态身份验证令牌需要从您的初始请求中提取,然后传递给将来的请求。

  3. 以下是一些视频,解释了如何使用JMeter进行登录:
    http://community.blazemeter.com/knowledgebase/articles/80479-how-to-use-jmeter-for-login-authentication

答案 1 :(得分:1)

您的Cookie管理器看起来不错。也许你可能会遗漏像“VIEWSTATE”这样的东西,它是Java和.NET Web应用程序中广泛使用的流行的页面状态管理机制。

使用HTTP(S) Test Script RecorderGoogle Chrome plugin记录您的测试用例流程,这更容易,并提及与请求一起发送的参数。如果您看到VIEWSTATE之类的内容,则需要在测试中添加一些相关性,以便从页面源获取此viewstate值并将其添加到其他请求中。

这就像是

<input id="viewState" type="hidden" value="/wEPDwUBMGRkMSHDB101+52k3J/FmXSyR78uK/g=" name="viewState">

您需要提取此值/wEPDwUBMGRkMSHDB101+52k3J/FmXSyR78uK/g=并将其作为参数传递。

获得它的最佳方法是使用XPath Extractor

相关的XPath表达式如下所示:

//input[@id='viewState']/@value

另一种技术是使用Regular Expression Extractor后处理器,但正则表达式开发起来更复杂,尤其是多行表达式,并且它们甚至容易受到微小标记更改的影响。

另一个showstopper可能是CSRF filter - 一种验证请求来源的安全技术。在这种情况下,您需要构造一个包含此值的相关HTTP标头或HTTP请求参数。

您可以使用HTTP Header Manager发送CSRF标头和可能的User-Agent字符串来假装更像真正的浏览器。

希望这有帮助

相关问题