Json 使用groovy时JMeter断言失败

Json 使用groovy时JMeter断言失败,json,groovy,jmeter,jsr223,Json,Groovy,Jmeter,Jsr223,更新: 我想检查他的结构上的JSON文档。我用groovy语言创建了一个JSR223断言。我检查JSON结构的代码如下所示: import groovy.json.*; import org.apache.jmeter.samplers; def response = prev.getResponseDataAsString(); log.info("Response" + response); def json = new JsonSlurper().parseText(response);

更新: 我想检查他的结构上的JSON文档。我用groovy语言创建了一个JSR223断言。我检查JSON结构的代码如下所示:

import groovy.json.*;
import org.apache.jmeter.samplers;

def response = prev.getResponseDataAsString();
log.info("Response" + response);
def json = new JsonSlurper().parseText(response);

//tests
def query = json.query;
assert query instanceof String;

def totalResults = json.totalResults;
assert query instanceof Integer;

def from = json.from;
assert from instanceof Integer;

def to = json.to;
assert to instanceof Integer;

assertionResult = new AssertionResult("Assertion failed! See log file.");
assertionResult.setError(true);
assertionResult.setFailureMessage(e.toString());
JMeter日志文件中的验证非常有效。 但在我的视图结果树中,我收到以下错误消息:

Assertion error: true
Assertion failure: false
Assertion failure message: javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script27.groovy: 2: unable to resolve class org.apache.jmeter.samplers
 @ line 2, column 1.
   import org.apache.jmeter.samplers;
   ^

Script27.groovy: 21: unable to resolve class AssertionResult 
 @ line 21, column 19.
   assertionResult = new AssertionResult("Assertion failed! See log file.");
                     ^

2 errors
我想看看测试结果是否成功

如何解决这个问题

  • 不要实例化AssertionResult类,它是预定义的

  • 不要使用它不会像预期的那样使父采样器失败,请参阅下面的示例简单代码

    if (1 != 2) {
        AssertionResult.setFailure(true)
        AssertionResult.setFailureMessage("1 is not equal to 2")
    }
    
    一旦按如下方式工作:

    您可以根据需要开始修改测试


  • 有关在JMeter测试中使用断言的更多信息,请参阅指南。

    您是否尝试像dmitri建议的那样直接使用它?