如何通过JSR223预处理器使同一线程组内HTTP请求UUID保持一致
解决JMeter同一线程内UUID参数不一致的问题
问题原因
你当前的JSR223预处理器绑定在每个HTTP请求上,导致每个请求执行前都会重新生成一次UUID,所以三个请求的参数值各不相同。另外脚本存在语法错误:"obs_id}"多了一个右括号,可能导致变量设置异常。
解决方案
1. 调整预处理器位置
将JSR223预处理器移动到线程组的最顶部(所有HTTP请求的上方)。这样每个线程启动时只会执行一次预处理器,生成的event_id和obs_id会绑定到当前线程,后续该线程的所有请求都会复用这两个值。
2. 修正Groovy脚本
修正语法错误后的脚本如下:
vars.put("event_id", UUID.randomUUID().toString()) vars.put("obs_id", UUID.randomUUID().toString())
验证方法
添加Debug Sampler到线程组末尾,运行测试后查看结果树:同一线程的三个HTTP请求和Debug Sampler中,event_id和obs_id的值应该完全一致;10个线程会各自生成一组独立的UUID,符合测试需求。
内容的提问来源于stack exchange,提问作者harryk
相关产品推荐
相关产品推荐

