Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Websocket ApacheJMeter-需要线程范围变量_Websocket_Jmeter_Load Testing - Fatal编程技术网

Websocket ApacheJMeter-需要线程范围变量

Websocket ApacheJMeter-需要线程范围变量,websocket,jmeter,load-testing,Websocket,Jmeter,Load Testing,我正在尝试运行websocket负载测试,并发现我需要访问线程范围中定义的变量 具体地说,我需要随机生成一个UUID,用作伪用户ID。我们的API要求在每个请求中将其作为参数传递: 使用UUID发送身份验证请求 -这将创建一个输入系统信息的用户帐户 等待回应 使用UUID发送同步/初始化循环 UUID是应用程序id。我可以通过UUID函数使用用户定义的变量轻松地随机化,但是,用户定义的变量显然在测试开始时计算一次,而我需要在线程组范围内生成它们。有办法吗?如果现在,我如何才能做到这一点 换句话说

我正在尝试运行websocket负载测试,并发现我需要访问线程范围中定义的变量

具体地说,我需要随机生成一个UUID,用作伪用户ID。我们的API要求在每个请求中将其作为参数传递:

使用UUID发送身份验证请求 -这将创建一个输入系统信息的用户帐户 等待回应 使用UUID发送同步/初始化循环

UUID是应用程序id。我可以通过UUID函数使用用户定义的变量轻松地随机化,但是,用户定义的变量显然在测试开始时计算一次,而我需要在线程组范围内生成它们。有办法吗?如果现在,我如何才能做到这一点

换句话说,我需要为每个线程(作为用户)随机生成UUID,线程组中的每个采样器都可以访问该UUID


提前谢谢

您可以使用
Beanshell预处理器
作为第一个需要UUID的采样器,如下所示

vars.put(“uuid”,“${uuid}”)


用户/线程的线程组中的所有其他采样器都将具有相同的UUID,可以使用
${UUID}

访问它。我在负载测试期间确实遇到了这个问题,解决方案是

使用历元时间(ms)并附加UUI值。这是解决方案,因为历元时间永远不会相同,如果两个事务同时发出,UUI每次都会更改。因此,无论何时运行测试,这些值都应该是唯一的

epoch Time:${__javaScript(Math.round(new Date().getTime()))}
UUID: ${__BeanShell(UUID.randomUUID().toString())}

Combination is :${__javaScript(Math.round(new Date().getTime()))}_${__BeanShell(UUID.randomUUID().toString())}