2016-09-24 3 views
0

Ich habe ein Problem bei der Verwendung des Jmeter BeanShell-Präprozessors. Das Script ruft jars auf, die ich in das Verzeichnis "D: \ Software \ apache-jmeter-3.0 \ lib \ ext" gestellt habe. enter image description hereJmeter Typisierte Variablendeklaration: Methodenaufruf

hier ist mein Code Beanshell:

import com.evergrande.api.test.JsonClientUtil; 
import com.evergrande.common.utils.JsonUtil; 
import com.fasterxml.jackson.databind.node.ObjectNode; 

JsonClientUtil jcu=new JsonClientUtil(); 
ObjectNode node = JsonUtil.createObjectNode();//when I try to use the method in JsonUtil(Class),it came out error 

Fehler:

2016/09/24 22:48:06 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import com.evergrande.api.test.JsonClientUtil; import com.evergrande.common.util . . . '' : Typed variable declaration : Method Invocation JsonUtil.createObjectNode 
2016/09/24 22:48:06 WARN - jmeter.modifiers.BeanShellPreProcessor: Problem in BeanShell script org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import com.evergrande.api.test.JsonClientUtil; import com.evergrande.common.util . . . '' : Typed variable declaration : Method Invocation JsonUtil.createObjectNode 

Ich kann "createObjectNode" Methode in meinem Java-Code aufrufen. Also, wie kann ich dieses Problem beheben? Danke euch allen.

Antwort

0
  1. keine Gläser auf den lib/ext Ordner Legen Sie, sollte es nur für JMeter Kernkomponenten und Plugins verwendet werden. Setzen Sie Ihre .jar-Bibliotheken in den "lib" -Ordner von woanders, sie müssen nur auf der JMeter's Claspath sein. Alternative Option ist mit Add directory or jar to classpath Option auf Test Plan Ebene

    extra jars to classpath

  2. JMeter Neustart ist erforderlich, die Gläser zu holen.
  3. Sie können besser lesbar Beanshell Fehlermeldung erhalten, indem rund um Ihren Code mit try/catch Block wie

    import com.evergrande.api.test.JsonClientUtil; 
    import com.evergrande.common.utils.JsonUtil; 
    import com.fasterxml.jackson.databind.node.ObjectNode; 
    
    try { 
        JsonClientUtil jcu=new JsonClientUtil(); 
        ObjectNode node = JsonUtil.createObjectNode(); 
    } 
    catch (Throwable ex) { 
        log.error("Beanshell failure: ", ex); 
        throw ex; 
    } 
    

    Also, wenn Ihr Skript fehlschlägt können Sie stacktrace Details in der jmeter.log Datei sehen. Ein weiterer Ansatz, um den Fehler in Ihrem Beanshell-Skript zu beheben, besteht darin, den Befehl debug(); am Anfang des Skripts hinzuzufügen. Es wird eine ausführliche Ausgabe an die Konsole auslösen. Weitere Informationen zu JMeter-Debugging-Techniken finden Sie im Artikel How to Debug your Apache JMeter Script.

+0

Vielen Dank! Ich habe dieses Problem gelöst. Es ist wegen des Mangels an Jar-Paket. – TavisD