首页 文章

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

提问于
浏览
2

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

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

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

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

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

2 回答

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

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

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

  • 3

    您的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 字符串来假装更像真正的浏览器 .

    希望这可以帮助

相关问题