我正在尝试加载测试我的服务器的登录功能。登录表单以下列格式将数据发送到$ _POST数组中的服务器。
Gemfile.lock
我面临的问题是如何在jmeter中发送这些参数。我试图将它们发送到json有效载荷中,如下所示。
Array(
[LoginForm] => Array(
[username] => siddhant@gmail.com
[password] => 123456
[rememberMe] => 0
)
)
我已在请求中的名称值对中发送了用户名,密码和rememberMe参数,但我无法以这种方式登录。
此外,在身份验证后,系统会重定向到另一个URL。 jmeter会自动执行此操作,以便我可以在响应中添加断言。或者,我是否必须为此添加另一个HTTP请求?
答案 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 Manager和HTTP Cache Manager,以使测试更加真实。