2017-05-24 7 views
0

Update: Ich möchte ein JSON-Dokument auf seine Struktur überprüfen. Ich habe eine JSR223 Assertion mit Sprache groovy erstellt. Mein Code, um die JSON-Struktur zu überprüfen, sieht wie folgt aus:JMeter Assertion Fehler mit groovy

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()); 

Die Validierung im JMeter Logdatei funktioniert super. Aber meiner Ansicht Ergebnis Baum, bekam ich folgende Fehlermeldung:

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 

ich erfolgreich war oder nicht, wenn das Testergebnis sehen wollen, ist.

Wie behebt man dieses Problem?

+0

haben Sie versucht, es direkt wie dmitri vorgeschlagen zu verwenden? https://stackoverflow.com/questions/44153653/jmeter-beanshell-groovy-script-doesnt-work?noredirect=1#comment75326344_44153653 – ararar

Antwort

1
  1. Sie AssertionResult Klasse nicht instanziiert ist es vordefinierte

    JSR223 Assertion Result

  2. nicht Groovy assert keyword, den Sampler Eltern scheitern nicht Verwenden Sie als erwartet, siehe unten Beispiel einfacher Code

    if (1 != 2) { 
        AssertionResult.setFailure(true) 
        AssertionResult.setFailureMessage("1 is not equal to 2") 
    } 
    

    , sobald Sie es wie unten bekommen arbeiten:

    JSR223 Assertion sample

    Sie beginnen können, zu modifizieren Ihre Tests als

    erforderlich

Siehe How to Use JMeter Assertions in Three Easy Steps Führung um mehr zu erfahren über Behauptungen in JMeter Tests.

Verwandte Themen