如何在jmeter

时间:2017-01-25 08:18:45

标签: jmeter

我必须每次增加DSNTESTTEST01个。我试过了${__counter(TRUE,${SAN})},但它没有用。

请建议怎么做?

1 个答案:

答案 0 :(得分:1)

它可能有点棘手,因为基本上你需要提取数字后缀,解析它(因为它从零开始),增加后缀并将其添加回文字前缀。

我建议使用DSNTESTTEST作为静态字符串和Counter测试元素而不是函数,例如:

Counter number format

这样你就会得到:

Counter JMeter impact

有关在JMeter测试中生成递增(或递减)数字的更多信息,请参阅How to Use a Counter in a JMeter Test文章

您还可以考虑编写脚本方法,在这种情况下,您不必更改脚本逻辑,但它更复杂。您可以在JSR223 Test Elements中使用的示例代码为:

import java.text.NumberFormat;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

String san = vars.get("SAN");

log.info("Original SAN variable value: " + san);

Pattern p = Pattern.compile("(\\d+)", Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Matcher m = p.matcher(san);
if (m.find()) {
    String postfix = m.group(1);    
    NumberFormat format = NumberFormat.getInstance();
    format.setMinimumIntegerDigits(2);
    Number n = format.parse(postfix);
    int increment = n.intValue() + 1;
    String newNumber = format.format(increment);
    san = san.replace(postfix, newNumber);
    vars.put("SAN", san);
}

log.info("New SAN variable value: " + vars.get("SAN"));

演示:

JSR223 variable increment