SOAPUI: comment inclure un script Groovy à partir d'un fichier externe

Comment puis-je inclure un script groovy à partir d'un fichier externe? enter image description here

j'ai été tenté d'utiliser:

def script = new GroovyScriptEngine('d:/soapui/payment.v2').with { 
    loadScriptByName( 'proxy.groovy' ) 
} 
this.metaClass.mixin script

Mais j'obtiens:

enter image description here

mise à Jour

il existe la possibilité d'emballer mes méthodes dans le pot, ou quelque chose comme cela, et l'utilisation de Script TextArea?

10
demandé sur CAMOBAP 2013-01-16 15:45:30

4 réponses

la manière la plus simple est de l'exécuter en utilisant un Groovy Test Step within SOAPUI

import groovy.lang.Binding
import groovy.util.GroovyScriptEngine

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )

// location of script file is relative to SOAPUI project file.
String scriptPath = groovyUtils.projectPath + "/groovy/"

// Create Groovy Script Engine to run the script.
GroovyScriptEngine gse = new GroovyScriptEngine(scriptPath) 

// Load the Groovy Script file 
externalScript = gse.loadScriptByName("Utility.groovy")  

// Create a runtime instance of script
instance = externalScript.newInstance()

// Sanity check 
assert instance!= null

// run the foo method in the external script
instance.foo()
14
répondu Martin Spamer 2018-06-16 14:42:25

vous pouvez aussi créer vos scripts en java (eclipse), puis les exporter comme un jar et les ajouter dans soapui.

Voici le pas:

  1. créer votre code dans des classes java à l'intérieur d'un paquet.
  2. faites un clic droit sur le paquet et exportez (sélectionnez jar)
  3. ajouter ce pot au dossier soapui /bin/ext (assurez-vous de fermer soapui avant cette étape)
  4. redémarrez soapui et maintenant vous pouvez importer et utiliser les scripts à l'intérieur de soapui comme dessous.

  5. Créer un groovy étape et importer le jar

    importer le nom du paquet.nom de la classe

  6. Appel de la fonction:

    nom de la classe.nom de la fonction(paramètre);

2
répondu 2015-10-10 11:08:22

essaye ceci:

GroovyShell gs = new GroovyShell(getBinding()); 
gs.evaluate(new File('path/to/external.groovy').text);

Ou encore:

evaluate(new File('path/to/external.groovy'));
1
répondu Artem Zankovich 2013-01-18 14:22:47

pour le message d'erreur mixin, vous pouvez vous en débarrasser si vous utilisez ExpandoMetaClass.enableGlobally() et this.metaClass = null. au tout début, avant de commencer le mixage.

0
répondu blackdrag 2013-01-26 08:20:31