testing - 将计数器的最大值保存到 JMeter 中的文件

标签 testing soap wsdl jmeter

我正在使用 SOAP/XML-RPC 请求来测试 WSDL。此外,我为此请求创建了一个 Counter 元素。其中一个函数的每次调用都必须在其中一个参数中包含其他值。 是否有可能将最大计数器值保存到文件中? 所以当我开始测试时,该值将从文件中加载并增加计数器。 最后,这个最大值将再次保存到这个文件中。等等等等……

最佳答案

让我们放弃内置的 Counter 并绕过线程安全的 AtomicInteger。 添加一个带有 JSR223 SamplersetUp Thread Group(选择 groovy 作为脚本语言)到您的测试计划中。我们将使用它从文件中读取值。该线程组将在所有其他线程组之前执行,并将为我们提供初始值。 将以下代码添加到采样器:

import java.util.concurrent.atomic.AtomicInteger

counter = new File($/C:\Path\ToFile\fileName.txt/$).text
ai = new AtomicInteger(Integer.valueOf(counter))
props.put("sharedAtomicInteger", ai)

然后在您的常规线程组中的SOAP/XML-RPC 请求之后添加另一个JSR223 采样器

将以下代码添加到采样器中:

ai = props.get("sharedAtomicInteger")
variable = ai.incrementAndGet()
vars.put("variable", Integer.toString(variable))

现在,临时计数器的值存储在一个变量 中,可以用于此线程发出的其他请求。

将带有 JSR223 采样器teardown 线程组 添加到您的测试计划中。该线程组将在所有其他线程组之后执行,并将最大值写入文件。

将以下代码添加到采样器中:

ai = props.get("sharedAtomicInteger")
new File($/C:\Path\ToFile\fileName.txt/$).write(ai.toString())

最后,您的测试计划应如下所示:

setUp Thread Group

JSR223 Sampler

常规线程组

SOAP/XML-RPC Request

JSR223 Sampler

拆卸线程组

JSR223 Sampler

附言 请记住,为了简洁起见,我使用了 java.util.Properties 类的 put() 方法,这在 documentation 中是不鼓励的。 .

关于testing - 将计数器的最大值保存到 JMeter 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42909361/

相关文章:

java - 是否有任何自动化工具可以对 java 批处理应用程序执行功能测试?

c# - 当使用 C# 使用 SOAP Web 服务时,获取为 null,提供程序为 Ladon/Python

wsdl - 可以从现有的 wsdl 创建 wadl 的工具?

web-services - 如何在 WSDL 中将 SOAP header 标记为可选?

ruby-on-rails - Rails 唯一性验证测试失败

java - Eclipse:Junit 我在下面的 junit 选项卡中看到此错误

angularjs - 如何在 Angular 测试中重用辅助函数?

java - CXF:将隐式 header 添加到 CXF SOAP/REST Web 服务的 WSDL 和 WADL 响应

java - Apache Rampart 是否与 Maven 一起工作?

java - 为生成的类添加 xml 根元素注释的方法?