2013-01-16 23 views
10

मैं बाहरी फ़ाइल से ग्रोवी स्क्रिप्ट कैसे शामिल कर सकता हूं? enter image description hereSOAPUI: बाहरी फ़ाइल से ग्रोवी स्क्रिप्ट को कैसे शामिल करें

मैं का उपयोग करने की कोशिश की गई थी:

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

लेकिन मैं मिलता है:

enter image description here

अद्यतन

जार में मेरी तरीकों पैक करने के लिए कुछ संभावना वहां मौजूद है या ऐसा कुछ, औरसे उनका उपयोग करें?

उत्तर

14

सबसे आसान तरीका 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() 
+0

थोडा देर के रूप में स्वागत है, लेकिन तब होता है जब आप परियोजना को युद्ध के रूप में निर्यात करते हैं? क्या आपको सर्वर पर कहीं भी एक groovy/निर्देशिका की आवश्यकता है? – Dave

+0

मैंने इसे आजमाया नहीं है, लेकिन अगर यह परियोजना के सापेक्ष रखता है तो इसे ठीक काम करना चाहिए। –

1

इस प्रयास करें:

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

या यहां तक ​​कि इस:

evaluate(new File('path/to/external.groovy')); 
+0

मुझे 'java.lang.Exception संपत्ति नहीं मिल सकती है 'अनुरोध दोनों के लिए शून्य ऑब्जेक्ट' संदेश पर कॉन्टेक्स्ट 'अनुरोध करें। क्या आपने पोस्ट करने से पहले उन्हें चेक किया था? – CAMOBAP

+0

अपनी बाहरी फ़ाइल में कोड को चेक करें। ग्रोवी इंजन ने इसे चलाया और अपवाद मिला। यह देखने के लिए कि यह कैसे काम करता है, बाहरी कमांड के साथ बाहरी फ़ाइल की सामग्री को बदलें: log.info "बाहरी फ़ाइल से हैलो" –

+0

जब मैंने बाहरी फ़ाइल की सामग्री स्क्रिप्ट टेक्स्ट एरिया में रखी तो यह सही काम करता है। समस्या तब होती है जब मैंने 'लॉग', 'संदर्भ', 'requestContext',' mockRequest' और 'mockResponse' चर' – CAMOBAP

0

mixin त्रुटि संदेश के लिए, आप है कि से छुटकारा मिल सकता है अगर आप ExpandoMetaClass.enableGlobally() और फिर this.metaClass = null का उपयोग करें। बहुत शुरुआत में, इससे पहले कि आप में मिश्रण शुरू करते हैं।

2

तुम भी जावा में अपनी स्क्रिप्ट बनाने (ग्रहण) और फिर इसे निर्यात कर सकते हैं इसे चलाने के लिए है एक जार के रूप में और soapui में जोड़ें।

  1. एक पैकेज के अंदर जावा वर्गों में अपने कोड बनाएँ:

    यहाँ कदम है।

  2. पैकेज और निर्यात पर राइट क्लिक करें (जार चुनें)
  3. soapui/bin/ext फ़ोल्डर को यह जार
  4. पुनः आरंभ soapui (इस कदम से पहले बंद करने के लिए soapui सुनिश्चित कर लें) जोड़ें और अब आप आयात और उपयोग कर सकते हैं नीचे के रूप में soapui के अंदर स्क्रिप्ट।

  5. जार एक ग्रूवी कदम बनाएँ और आयात

    आयात पैकेज name.class नाम

  6. कॉल के रूप में समारोह:

    वर्ग name.function नाम (पैरामीटर);

संबंधित मुद्दे