2017-09-25 11 views
1

무료 soap-ui 버전을 사용하고 있습니다. 기본 추가 작업 (계산기 WSDL)에 대한 , groovy를 사용하여 텍스트 파일의 입력을 먹이고 응답을 저장하려고합니다. 내가 사용하고soapui에서 텍스트 또는 엑셀 파일에 대한 응답을 캡처

그루비 스크립트입니다 :

nextLine=context.fileReader.readLine() 
def inputFileResponse = new File("D://file.txt") 
if(nextLine!=null){ 
String[] inpData=nextLine.split(",") 
testRunner.testCase.testSteps["Properties"].setPropertyValue("num1",inpData[0]) 
testRunner.testCase.testSteps["Properties"].setPropertyValue("num2",inpData[1]) 
inputFileResponse.write(context.testCase.testSteps["Add - Request 1"].getProperty("response").value) 
testRunner.gotoStep(0)    
} 

문제 지역이 나에게 완전한 XML 응답을주고있다

1.Now. 하지만 nodevalue "AddResult"를 얻고 싶습니다. 파일에 저장하고 싶습니다.

  1. 4 입력 중 마지막 입력의 응답 만 캡처합니다. 모든 응답을 캡처하고 싶습니다.

답변

0

질문 1/여기에 xmlNode를 그루브로 검색하는 스 니펫이 있습니다.
context.expand('${Add - Request 1#Response#//*AddResult/text()}').
응답에 AddResult라는 필드가 많은 경우 노드의 전체 경로를 채워야합니다.

2 번 질문에 대해 미안하지만 잘 이해하지 못했습니다. 마지막 응답 만 파일에 기록됩니다. 파일의 내용을 지우는 명령 인 write이 원인 일 수 있습니다. 대신에 다음을 사용할 수 있습니다 : inputFileResponse.append("Your response text" + System.getProperty("line.separator"))

+0

1) def response = context.expand ('$ {Add-Request 1 # Response # // * AddResult/text()}') inputFileResponse.append (응답) 이처럼,하지만 아무것도 캡처하지 않습니다. – shiv

+0

2) 감사합니다. 문제는 없지만 하나의 문제가 있습니다. ** (nextLine! = null) (텍스트 파일 행에서 데이터를 읽는 중) 루핑에 ** 사용했기 때문에 ** **는 마지막 응답을 쓰지 않습니다 **, 그래서 어떤 조건을 써야 최종 응답을 얻을 수 있습니다. – shiv