我正在开发一个JMeter脚本的xlsx文件的出口。作为脚本的一部分,头管理器包括以下内容:
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
Host: xxxxxxxx.xxxx.xxxxx.com
Referer: https://xxxxxxxx.xxxx.xxxxx.com/xxxxxxxx/
Sec-Ch-Ua: "Not.A/Brand";v="8", "Chromium";v="114", "Google Chrome";v="114"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "Windows"
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
在查看结果树中的请求主体时,我发现cookie数据以以下方式发送:
X-CSRF-Token=xxxxx; JSESSIONID=xxxxx.xxxx; ROUTEID=.xxxx; JSESSIONIDSSO=xxxxx
现在我手动检查了同一笔交易。在这里,我观察到,作为请求头的一部分,Cookie以以下方式发送:
JSESSIONID=yyyyy.yyyy; X-CSRF-Token=xxxxx; JSESSIONID=xxxxx.xxxx; ajs_user_id=xxxxx; ajs_anonymous_id=xxxxx; style=default; ROUTEID=.xxxx; JSESSIONIDSSO=xxxxx
在运行JMeter脚本时,我收到的响应代码为500。我认为这可能是因为JSession ID(yyyy.yyyy)没有在脚本中发送。我不知道如何发送这一点,因为我无法找出任何以前的交易中,这是产生。注意,这个特定的事务负责导出xlsx文件。所有以前的交易和本次交易具有以下所有相同的详细信息:
X-CSRF-Token=xxxxx; JSESSIONID=xxxxx.xxxx; ajs_user_id=xxxxx; ajs_anonymous_id=xxxxx; style=default; ROUTEID=.xxxx; JSESSIONIDSSO=xxxxx
但是这里使用的只有JSESSIONID= yyyy.yyyy与前面的事务不同。如何在这里发送JSession ID。任何帮助将不胜感激。先谢了。
1条答案
按热度按时间vktxenjb1#
这可能是cookie在某种程度上无效的情况(即。域或路径不匹配、过期等)。
JMeter的HTTP Cookie管理器默认检查Cookie并仅存储“有效”的Cookie。如果cookie有问题,您可以禁用此检查,看看它是否能解决您的问题。这可以通过将下一行添加到 user.properties 文件中来完成:
此外,您可以将cookies policy设置为限制较少的值,如
netscape
更多信息请参阅:HTTP Cookie Manager Advanced Usage - A Guide
如果上述提示没有帮助,您可以使用合适的JMeter后处理器从Set-Cookie响应头中提取cookie值,并在HTTP头管理器中手动构建Cookie请求头。