修改JMeter上的属性
我创建了一个有两个线程组的测试计划。每个线程组都有一个SOAP/XML-RPC请求采样器。线程组A还有一个正则表达式提取器,其中包含:修改JMeter上的属性,jmeter,Jmeter,我创建了一个有两个线程组的测试计划。每个线程组都有一个SOAP/XML-RPC请求采样器。线程组A还有一个正则表达式提取器,其中包含: Reference Name : ABC Regular Expression :<response>([A-Z 0-9]+)</response> Template: $1$ 我要做的是修改ABC变量,然后将其传递给第二个线程组的SOAP采样器 所以,如果ABC等于1000(response tag包含一个int),我希望得到该值除以
Reference Name : ABC
Regular Expression :<response>([A-Z 0-9]+)</response>
Template: $1$
我要做的是修改ABC变量,然后将其传递给第二个线程组的SOAP采样器
所以,如果ABC等于1000(response tag包含一个int),我希望得到该值除以2,然后将其传递给第二个采样器,如下所示:
<abcValue>${__P(modifiedABC)}</abcValue>
螺纹组1
请使用“Beanshell后处理器”处理您的请求。将此后处理器添加到提取ABC的采样器下
下面的链接将给你一个想法。
请注意,默认情况下,Jmeter中的所有内容都是字符串。因此,您可能希望在将其除以2之前将其转换为整数。您必须在Beanshell后处理器中添加类似的内容
modifiedABC = Integer.toString(Integer.parseInt(props.get("ABC"))/2);
props.put("modifiedABC",modifiedABC);
螺纹组2
现在您想要访问第二个线程组中的modifiedABC
只需使用
${__P(modifiedABC)}
您可以在jmeter中的任何位置使用它,它将替换您所需的值。请确保已检索线程组B开头的属性作为变量(ABC)在不同的范围内。检查修改后的答案。使用后处理器。让我知道谢谢你的时间。我得到了编辑中描述的相同错误。Integer.toString部分非常重要。我正在执行props.put(“number.of.threads”,5),但当我的线程执行时,它只运行一次,就好像我没有设置它一样。这修复了它:props.put(““线程数”,字符串.valueOf(4));
modifiedABC = Integer.toString(Integer.parseInt(props.get("ABC"))/2);
props.put("modifiedABC",modifiedABC);
${__P(modifiedABC)}