2011-06-14 16 views
5

में ग्रोवी टेस्टस्टेप के साथ स्थानीय निर्देशिका में स्टोर अनुरोध/प्रतिक्रिया फाइलें साबुनयूआई में एक ग्रोवी टेस्टस्टेप के माध्यम से मैं सभी अनुरोध और प्रतिक्रिया फ़ाइलों को सिस्टम निर्देशिका के साथ स्थानीय निर्देशिका में संग्रहीत करना चाहता हूं।सोपयूआई

soapUI में ग्रूवी teststep:

def name = context.expand('${Input#TG}') 

def locatie = context.expand('${#TestCase#locatie}') 

def createFolder() { 
    date = new Date() 
    dateFormat = new java.text.SimpleDateFormat('ddMMyyyy') 
    shortDate = dateFormat.format(date) 
    outputFolder = locatie+shortDate 
    createFolder = new File(outputFolder) 
    createFolder.mkdir() 
} 

def getResponseFilename(name) { 
    respFilename = createFolder()+"_"+name+"_response.xml" 
} 

def getRequestFilename(locatie,name) { 
    reqFilename = createFolder()+"_"+ name+"_request.xml" 
} 

def file = new PrintWriter (getResponseFilename(name)) 

def response = testRunner.testCase.testSteps 
["CheckAdres"].testRequest.response.contentAsString 

file.println(response) 
file.flush() 
file.close() 

def file2 = new PrintWriter (getRequestFilename(name)) 
def request = context.expand('${CheckAdres#Request}') 

file2.println(request) 
file2.flush() 
file2.close() 

मैं निम्नलिखित त्रुटि मिलती है: मूल्य जो कुछ भी आप चाहते हैं का चयन करने के लिए SoapUI के उपकरणों का उपयोग करने

Tue Jun 14 12:47:24 CEST 2011:**ERROR:groovy.lang.MissingPropertyException: No such property: locatie for class: Script78** 
groovy.lang.MissingPropertyException: No such property: locatie for class: Script78 
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:49) 
    at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:241) 
    at Script78.createFolder(Script78.groovy:8) 
    at Script78$createFolder.callCurrent(Unknown Source) 
    at Script78.getResponseFilename(Script78.groovy:14) 
    at Script78$getResponseFilename.callCurrent(Unknown Source) 
    at Script78.run(Script78.groovy:21) 
    at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:93) 
    at com.eviware.soapui.support.scripting.groovy.SoapUIProGroovyScriptEngineFactory$SoapUIProGroovyScriptEngine.run(SourceFile:51) 
    at com.eviware.soapui.impl.wsdl.teststeps.WsdlGroovyScriptTestStep.run(WsdlGroovyScriptTestStep.java:148) 
    at com.eviware.soapui.impl.wsdl.panels.teststeps.GroovyScriptStepDesktopPanel$RunAction$1.run(GroovyScriptStepDesktopPanel.java:274) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

उत्तर

9

ऐसा करने के कई तरीके हैं। निम्न में से एक स्क्रिप्ट के साथ एक ग्रूवी परीक्षण कदम बनाने की जाएगी: मैकडॉनल्ड्स द्वारा जवाब

def myOutFile = "C:/Temp/MyOutDir/response.xml" 
def response = context.expand('${MyTestRequest#Response}') 
def f = new File(myOutFile) 
f.write(response, "UTF-8") 
+0

आपकी सहायता और उपयोगी स्पष्टीकरण के लिए धन्यवाद। – makhlo

+0

आपका स्वागत है :-) –

1

प्रयास करें। groovy संपादन क्षेत्र पर राइट क्लिक करें, Get Data -> अपना परीक्षण सूट -> अपना परीक्षण केस -> अपना परीक्षण चरण ->response चुनें। यह आपको पूरी प्रतिक्रिया मिलेगा। आप इस विधि के साथ response में भी गहराई से गोता लगा सकते हैं।

+0

की मदद करने और उपयोगी स्पष्टीकरण आप दे के लिए धन्यवाद। – makhlo

+0

अगर आपकी मदद की गई तो जवाब को ऊपर उठाएं :) – RonK

0

अधिक उपयोगी हम एक त्रुटि बचाने चाहिए अगर प्रतिक्रिया में:

import com.eviware.soapui.support.XmlHolder 
import java.text.MessageFormat 
import org.apache.commons.lang.ObjectUtils 

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) 
def retrieve = groovyUtils.getXmlHolder("MyTestRequest#Response") 

if (!ObjectUtils.equals(retrieve.getNodeValue("//*:xpath"), "string")){ 
def currentTime = System.currentTimeMillis() 
def fullFilePath = context.expand('${projectDir}') + File.separator + "Fail-"+currentTime+".xml" 
def reportFile = new File(fullFilePath) 
if (!reportFile.exists()) 
{ 
    reportFile.createNewFile()  
    reportFile.append((Object)retrieve.getPrettyXml(), 'UTF-8') 
} 
} 
संबंधित मुद्दे

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