首页 > 解决方案 > 在 Jmeter 变量值被下一个线程值覆盖

问题描述

我正在制定一个 JMeter 测试计划,旨在对 Web 服务进行性能测试。整个测试计划的主要部分包括两个步骤。

  1. 创建这些资产 ID 之一(通过 Post-request) - 通过 JSON 提取器提取资产 ID 并使用 bean shell 断言 ${__setProperty(assetId,${assetId})} 设置变量
  2. 按 ID 删除创建的资产(删除请求) - ${__property(assetId)}

如果我使用单线程计划,一切都会按预期进行,但是一旦我使用多个线程,那么assetId 将具有最后一个线程值,而剩余的值将被遗漏。您能否让我知道如何在删除调用中访问/存储所有assetId

标签: performancejmeterbeanshelljmeter-5.0

解决方案


属性与变量不同。变量是线程本地的;属性对所有线程都是通用的,需要使用 __P 或 __property 函数来引用。

您应该使用 JSON 提取器的变量名而不是创建属性以避免在线程之间共享变量。


推荐阅读