执行查询获取结果将其增加1并将其作为xml有效内容中的变量传递

时间:2017-01-28 13:44:20

标签: jmeter

我正在使用JMeter,我建立了一个连接oracle并执行查询。 例如,从employee_id

中选择employee

结果是 EMP100

现在我想将结果增加1

  

(例如 EMP100 EMP101

并且需要在变量中捕获新的emp_is i,e EMP101并在另一个XML请求中使用此变量。

1 个答案:

答案 0 :(得分:0)

如果EMP100 ${foo}中有import java.util.regex.Matcher; import java.util.regex.Pattern; String foo = vars.get("foo"); log.info("Original foo variable value: " + foo); Pattern p = Pattern.compile("(\\d+)", Pattern.CASE_INSENSITIVE | Pattern.DOTALL); Matcher m = p.matcher(foo); if (m.find()) { String postfix = m.group(1); int oldNumber = Integer.parseInt(postfix); oldNumber++; String newNumber = String.valueOf(oldNumber); foo = foo.replace(postfix, newNumber); vars.put("foo", foo); } log.info("New foo variable value: " + vars.get("foo")); ${foo},您可以添加JMeter Variable并使用以下代码:

<?xml version="1.0"?>
<Common>
    <Test name="B1">
        <Test id="100"><Name>a test</Name></Test>
        <Test id="101"><Name>another test</Name></Test>
    </Test>
    <Test name="B2">
        <Test id="500"><Name>a simple test</Name></Test>
        <Test id="501"><Name>another simple test</Name></Test>
    </Test>
    <Test name="B6">
        <!-- link to B2 to avoid redundancy -->
    </Test>
</Common>

演示:

Beanshell PostProcessor

之后,您应该能够在XML有效负载或其他任何地方使用相同的<Test name"B2">变量。

有关使用脚本增强JMeter测试的更多信息,请参阅JMeter Increment aplhanumeric variable文章。