我正在对我的网站API进行负载测试。我尝试将请求发送到网站以要求用户名和密码登录。我最初设置了http标头管理器,cookie管理器和http请求。
我在参数中输入名称(用户名,密码)和值参数(分别为vis,new),然后单击开始,测试成功完成。另一方面,如果我在主体选项卡中将键值对键入为字典{"username":"vis","password":"new"}
,然后再次运行,则请求标头具有发布数据(从视图结果树中看到),但是我的服务器无法识别该发布数据。它只会返回错误,就像没有发送任何帖子数据一样。
对于body选项卡方法,我也将Content-Type
设置为application/json
,但是仍然遇到相同的错误。
在树中查看结果-请求标头:
Connection: keep-alive
Content-Type: application/json
Content-Length: 35
Host: url.com
User-Agent: Apache-HttpClient/4.5.6 (Java/1.8.0_191)
请求正文:
POST https://url.com/accounts/login.json
POST data:
{"username":"vis","password":"new"}
[no cookies]
因此,当我在“参数”选项卡下发送请求但在使用“正文数据”选项卡时发送请求时,该请求有效。
答案 0 :(得分:0)
您无法登录,因为您的应用程序不支持您提供凭据的方式。
如果Python请求适合您,请使用JMeter的HTTP(S) Test Script Recorder
进行记录准备进行记录的JMeter。最快的方法是使用J Meter Templates功能。
将您的Python脚本修改为use JMeter as the proxy:
import requests
jmeter = {
'http': 'http://localhost:8888',
'https' : 'http://localhost:8888'
}
requests.post("https://url.com/accounts/login.json",data={"username":"vis","password":"new"}, proxies=jmeter)
执行您的Python脚本
JMeter将在Recording Controller下捕获它。这就是您应该用于测试的请求: