如何在jmeter中发送$ _POST数据?

时间:2016-05-22 14:41:23

标签: login jmeter http-post load-testing

我正在尝试加载测试我的服务器的登录功能。登录表单以下列格式将数据发送到$ _POST数组中的服务器。

Gemfile.lock

我面临的问题是如何在jmeter中发送这些参数。我试图将它们发送到json有效载荷中,如下所示。

Array(
     [LoginForm] => Array(
           [username] => siddhant@gmail.com
           [password] => 123456
           [rememberMe] => 0
     )
)

我已在请求中的名称值对中发送了用户名,密码和rememberMe参数,但我无法以这种方式登录。

此外,在身份验证后,系统会重定向到另一个URL。 jmeter会自动执行此操作,以便我可以在响应中添加断言。或者,我是否必须为此添加另一个HTTP请求?

2 个答案:

答案 0 :(得分:2)

听起来你在后端使用PHP,我相信如果你在JMeter HTTP采样器中以下列格式构建你的POST参数:

    LoginForm[username] = siddhant@gmail.com
    LoginForm[password] = 123456
    LoginForm[rememberMe] = 0

后端应该能够将它们作为数组读取。

使用Chrome调试工具查看登录表单的HTML源代码,找到" name"登录表单上表单输入元素的属性,这些是您需要在HTTP采样器中传递的参数名称,例如

    <input type="text" name="LoginForm[username]" />
    <input type="password" name="LoginForm[password]" />

要回答第二个问题,HTTP采样器上有一个标记可以跟踪重定向,这意味着您可以将断言应用于HTTP POST采样器,它将查看您重定向到的页面的内容。

维卡斯&#39;评论也是如此,你可能需要在你的测试中添加一个Cookie管理器,它会自动保存并在后续请求中发送cookie,就像浏览器一样。

使用“查看结果树”侦听器查看请求和响应,以帮助您调试测试。

答案 1 :(得分:0)

我认为最快和最简单的方法是使用内置HTTP(S) Test Script Recorder记录JMeter测试 - 它将捕获浏览器和测试中的应用程序之间的流量,并以JMeter HTTP Request的形式存储它采样。

参考文献:

另外,请考虑在测试计划中添加HTTP Cookie ManagerHTTP Cache Manager,以使测试更加真实。