执行JMeter脚本时线程处于阻塞状态[非GUI模式]

eoigrqb6  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(251)

我正在使用非GUI模式的Linux虚拟机上使用吞吐量整形计时器运行100 RPS/TPS的JMeter脚本,因为在有足够的RAM和CPU资源可用的情况下,我无法达到所需的TPS/RPS。
我使用ThreadDump,发现200个线程中有195个线程处于阻塞状态。线程转储分析位于:
Thread Dump Analysis
这是在执行每个请求之前需要生成动态标头的API脚本。动态标头如下所示:

  1. contentMD 5-请求正文的MD5哈希
    1.客户端-客户端类型APP
  2. nonce -唯一的当前时间戳
  3. apikey-sha 512 Hmac字符串,该字符串由连接方法、主体、路径、md5等生成。
    以上标头是使用JSR 223预处理器生成的。生成的标头也会在采样器执行后使用JSR 223后处理器删除。
xv8emn3q

xv8emn3q1#

线程转储显示问题出在JSR223测试元素上,最有可能的是Groovy代码有问题,最有可能的是内联了JMeter Functions or Variables
1.请确保从代码中删除所有对函数或变量的调用
1.尝试使用脚本文件,而不是将代码放入JSR223测试元素中

1.使用profiler tool来找出代码问题的根源
1.如果您达到了Groovy脚本引擎性能的极限,请考虑moving your custom code logic into a JMeter Plugin或切换到Distributed Testing

相关问题