我的授权令牌和标头未被传递到Jmeter中的请求

f2uvfpb9  于 2023-11-19  发布在  其他
关注(0)|答案(2)|浏览(120)

所有我有以下设置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端点,需要一些建议。

ua4mk5z4

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中工作。

x7rlezfr

x7rlezfr2#

好吧,过了一段时间,我能够解决这个问题。
下面是我的新结构:x1c 0d1x
创建一个仅限一次的控制器,调用它初始化令牌我有一个存储令牌时间的jsr 223后处理器
a)获取令牌

${__time(,tokenGenerationTime)} String tokenGenerationTime = String.valueOf(System.currentTimeMillis()); vars.put(“tokenGenerationTime”,tokenGenerationTime); log.info(“令牌生成时间:“+ tokenGenerationTime);
然后,我调用get声明并使用jsr 223后处理器将值存储在变量中

def messageText = vars.get("messageTextVariable")
log.info("messageTextVariable: " + vars.get("messageTextVariable"))

字符串
然后我有一个If token expire控制器${__jexl3((${__time(,)} - ${tokenGenerationTime})> 6300000,)}调用get token
然后在我的情况下,因为我是从队列中拉取,我检查没有索赔,然后我停止所有线程${__jexl3(${xueSize} == 0,)}


相关问题