JMeter:几个采样器之间的UUID相同

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JMeter:几个采样器之间的UUID相同相关的知识,希望对你有一定的参考价值。

具有多个HTTP请求的Jmeter线程组如何在每个线程中使用相同的UUID值?

我试图用${__UUID}和java预处理器用vars.put("uuid", UUID.randomUUID().toString())创建'用户定义的变量'元素; (独立地)

thread group

但是同一个线程中的每个http请求都使用自己的UUID。

答案

将java PreProcessor作为第一个HTTP Request(启动会话)的子项移动,然后在所有请求中将其称为${uuid}以仅获取一个UUID值。

另一种选择是没有代码:添加User Parameters作为第一个HTTP Request(开始会话)的PreProcessor,Name为uuid2和Value ${__UUID()},你可以使用${uuid2}只获得一个UUID值。

另一答案

JMeter变量是每个线程的本地和个体(有关详细信息,请参阅ThreadLocal概念),因此为了创建随机GUID结构,您需要:

  • 仅执行一次此功能(可选,但很高兴)。例如,它可以使用If Controller完成,条件设置为: ${__groovy(ctx.getThreadNum() == 0 && vars.getIteration() == 1)}
  • 使函数执行结果可用于所有JMeter线程。有多种方法可以做到这一点,最简单的方法是通过setProperty() function将其转换为JMeter Property
  • 如果需要,请使用__P() function作为${__P(uuid,)}生成GUID

这样,您就可以从不同的线程甚至线程组访问相同的GUID值。

演示:

UUID Property Demo

另一答案

你不能重用生成的$ {__ UUID},但你总是可以通过javascript函数生成它(它允许重用结果):${__javaScript(function s4(){return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);} s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();, var_for_reuse)}

以上是关于JMeter:几个采样器之间的UUID相同的主要内容,如果未能解决你的问题,请参考以下文章

jmeter beanshell调用jmeter函数

Jmeter笔记

OpenGL均匀采样器2D具有相同的图像

JMeter 延迟与加载时间(采样时间)

使用Jmeter,我需要在同一列中添加从JSON中提取的UUID(UUID的多个值)所以传入删除路径

如何在jmeter tcp采样器中发送多个十六进制数据有效负载?