在JMeter上修改属性

奥雷斯蒂斯

我创建了一个包含两个线程组的测试计划。每个线程组都有一个SOAP / XML-RPC Request Sampler。线程组A还具有一个正则表达式提取器,其中包含:

Reference Name : ABC
Regular Expression :<response>([A-Z 0-9]+)</response>
Template: $1$

此外,线程组A具有一个BeanShellAssertion

Name: Extract value
Script: ${__setProperty(ABC, ${ABC})};

我想做的是修改ABC变量,然后将其传递给第二个线程组的SOAP Sampler。

因此,如果ABC等于1000(响应标签包含一个整数),我想将该值除以2,然后将其传递给第二个采样器,例如:

<abcValue>${__P(modifiedABC)}</abcValue>

有任何想法吗?

编辑:

我已经尝试了preProcessors(在第二个线程组上)和postProccessors(在第一个线程组上),但是我尝试的一切都给了我以下错误:

ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``String value = Integer.toString(Integer.parseInt(72295) /2); props.put("modifiedABC", v . . . '' : Typed variable declaration : Error in method invocation: Static method parseInt( int ) not found in class'java.lang.Integer'
查理
  1. 如果您的响应中包含AZ,'或0-9以外的内容,则正则表达式提取器将失败。将匹配组设置为(。+)可能更好,因此它会收集响应中的内容,并使用单独的正则表达式断言来检查内容是否符合您的期望。这样,当结果不好时,您将导致样本失败,而不是在错误的输入下您的下一个样本形成时,随后的失败。

  2. 在线程组A断言中,您需要一些“ ..

    $ {__ setProperty(“ ABC”,“ $ {ABC}”)}

这将一个称为ABC的属性设置为一个称为ABC的变量的值,这就是我认为您想要的。

  1. 划分值的简单方法是使用__javaScript()函数。

    $ {__ javaScript($ {ABC} / 2)}

您可以在jmeter中的任何位置使用它,它将替代您所需的值。由于变量(ABC)在不同的范围内,因此请确保已在线程组B的开头检索到该属性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章