2014-04-09 2 views
0

REST 애플리케이션을 테스트 할 때 soapui을 사용하고 있습니다. Groovy 테스트 단계에서 mockRequest 변수를 호출 할 수 있는지 알고 싶습니다.soapui 테스트 단계에서 mockRequest 변수 사용

import com.eviware.soapui.impl.wsdl.mock.WsdlMockResult; 

def queryString = mockRequest.getHttpRequest().getQueryString() 
def httpResponse = mockRequest.httpResponse 
//log.info "HTTP Response is: "+httpResponse 
def mediaType = mockRequest.getHttpRequest().getHeader("Content-Type") 
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) 

//This variable is used to get the soapui project path 
def path = groovyUtils.projectPath + "/mockResponse/" 

if (mockRequest.getMethod() == "POST" && mediaType=="application/xml"){ 
    def notifyRequest = mockRequest.requestContent 
    def notifyXml = new XmlSlurper().parseText(notifyRequest) 

    String representation = notifyXml.representation 

    def decoded = new String(representation.decodeBase64()) 
    log.info "The decoded data received is: "+decoded 

    new File("E:\\some_folder\\mockResponse\\1.xml").withWriter{ it << decoded } 

    WsdlMockResult mockResult = new WsdlMockResult(mockRequest) 
    def Response = mockRequest.httpResponse 
    httpResponse.setContentLength(0) 
    Response.status = 200 
    return mockResult 

} 

는 사실 내가 메시지가 MockService 다음 적절한 응답에 수신 될 때마다 전송되어야되도록 결과를 달성하고자 :

나는 다음과 같은 그루비 스크립트가 있습니다. 또한 수신 된 요청 메시지의 일부 데이터를 저장하려고합니다. 이 기능은 각 테스트 케이스마다 다르므로 mockService의 onRequest 탭 대신 그루비 테스트 단계에서 수행해야합니다.

누구에게 의견이 있습니까?

답변

0

모의 서비스의 응답을 사용자 정의하려면 soapUI's guide on the same을보십시오. 서비스의 스크립트 섹션에서 모의 ​​서비스가받은 요청에 액세스 할 수 있습니다.

모의 서비스를 사용하는 경우 내 질문에 왜받은 요청의 내용을 저장 하시겠습니까?

+0

이 정보를 추출하여 해독하려고합니다. 나중에이 정보를 비교하고 테스트 케이스의 결과를 판단해야합니다. 따라서 테스트 단계를 통해 mockRequest 변수를 읽어야합니다. – Amrit

+0

테스트 단계에서 mockRequest에 액세스 할 수 있습니까? "서비스의 스크립트 섹션"을 이해하지 못해 죄송합니다. ?? : \ – Amrit

+0

모의 작업을 만들 때 맨 아래에 스크립트 탭이 표시됩니다. 내 대답에서 제공 한 soapUI 링크를 확인하십시오. –

관련 문제