所有我有以下设置x1c 0d1x
我可以获得令牌
对API端点的某些请求
标题:
Beanshell
当我查看结果时,我看到我的请求失败了:
<html>
<head><title>400 Bad Request</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<hr><center>cloudflare</center>
</body>
</html>
字符串
HTTP/1.1 400 Bad Request Server:cloudflare Date:Sat,21 Oct 2023 21:51:27 GMT Content-Type:text/html Content-Length:155 Connection:close CF-RAY:-
在我的postman中,它工作得很好,头应该是application/xml,我把它放在头中....我在这里做错了什么?我最终想从MQ webshere获取消息,然后将消息体发送到API端点,需要一些建议。
2条答案
按热度按时间ua4mk5z41#
1.您不需要Beanshell预处理器,HTTP头管理器将添加令牌。
1.您不需要发送
Connection
头,您已经在HTTP请求采样器中勾选了Use Keep/Alive
框可能你的JSON Extractor配置有误,将JSON Sampler移到
Http URLAPI Test
后面**,然后查看auth_token
变量值。更多细节请参见How to Debug JMeter Test Scripts。一般来说,如果你可以在Postman中成功执行请求,你可以使用JMeter的HTTP(S) Test Script Recorder记录它,在关联动态参数之后,它也应该开始在JMeter中工作。
x7rlezfr2#
好吧,过了一段时间,我能够解决这个问题。
下面是我的新结构:x1c 0d1x
创建一个仅限一次的控制器,调用它初始化令牌我有一个存储令牌时间的jsr 223后处理器
a)获取令牌
${__time(,tokenGenerationTime)} String tokenGenerationTime = String.valueOf(System.currentTimeMillis()); vars.put(“tokenGenerationTime”,tokenGenerationTime); log.info(“令牌生成时间:“+ tokenGenerationTime);
然后,我调用get声明并使用jsr 223后处理器将值存储在变量中
字符串
然后我有一个If token expire控制器${__jexl3((${__time(,)} - ${tokenGenerationTime})> 6300000,)}调用get token
然后在我的情况下,因为我是从队列中拉取,我检查没有索赔,然后我停止所有线程${__jexl3(${xueSize} == 0,)}
的