Jmeter:如何提取断言结果并将其用于我的API

时间:2017-04-28 14:51:03

标签: jmeter

我的测试计划如下,

  1. 我正在使用断言运行一些Http请求。
  2. 我需要检查断言是通过还是失败(任何内置变量都可用?)。
  3. 需要调用/提取断言结果并将其用于我的下一个API。
  4. 任何人都可以帮助我。

3 个答案:

答案 0 :(得分:0)

我通过添加以下代码使用BeanShell Listener解决了这种情况,您可以在jmeter上调用断言结果,如$ {results}

try 
{
int results;

    if (sampleResult.isSuccessful()) {
    log.info("Response Assertion PASSED");
    results = 1;
    vars.put("results","1");} 

else {
    log.info("Response Assertion FAILED" );
     results = 2;
    vars.put("results","2");}

}

catch (Throwable ex) {
    log.error("Error in Beanshell", ex);
    throw ex;
}

答案 1 :(得分:0)

我建议添加JSR223 Assertion,您可以在其中获取父样本AssertionResult实例,并从中提取所需信息,如:

def assertionResult = SampleResult.getAssertionResults()[0]
if (assertionResult.isFailure()) {
    log.info("Assertion " + assertionResult.getName() + " failed")
    log.info(assertionResult.getFailureMessage())
}

演示:

JSR223 Assertion - previous assertions

有关使用断言的更多信息,请参阅How to Use JMeter Assertions in Three Easy Steps文章。如果你需要编写脚本,也可以避免使用Beanshell,因为它可能会导致性能问题 - 坚持JSR223 Test Elements

答案 2 :(得分:0)

1.使用“正则表达式提取器”提取断言结果。 2.使用BeanShell Sampler获取断言结果,然后将其用于下一个API。