2017-03-21 2 views
0

모든 서비스를 하나의 단계로 테스트하는 그루비 스크립트를 작성 중입니다.단일 groovy 스크립트에서 모든 비누 요청에 액세스하는 방법

WSDL을 가져오고 모든 SOAP 요청이 자동으로 생성됩니다.

모든 SOAP 서비스를 하나씩 테스트하는 수동 작업을 줄이고 싶습니다.

가능한 경우 groovy를 통해이를 수행하려고합니다.

enter image description here

여기 addressScript에서에서 - 나중에 모든 테스트 케이스의 모든 SOAP 요청을 액세스하려는. 문맥에 따라 루핑을 통해 구현할 수 있습니까? 아래는 샘플 코드입니다.

필자의 주요 목표는 모든 SOAP 요청을 하나씩 테스트하는 모든 수동 작업을 줄이는 것입니다. SOAP 요청 단계를 수행하여 경우에 사용되는 것처럼 당신이 첨부 이미지에서

import org.apache.commons.httpclient.methods.PostMethod; 
import org.w3c.dom.*; 


    class Example { 
     static void main(String[] args) { 

    String serviceInput=""; 
    PostMethod post = new PostMethod("); 
    post.setRequestHeader("Accept", "application/soap+xml,application/dime,multipart/related,text/*"); 
    post.setRequestHeader("SOAPAction", ""); 


    def req = context.testCase.getTestStepAt(context.currentStepIndex - 1).httpRequest.requestContent 
    log.info req 

    // here i want to access all the SOAP requests in loop , and to test all the services in sequence 

     } 
    } 

답변

1

, 그것은 보인다.

여기는 Groovy Script입니다.

import com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep 
//Loop thru all the test cases of test suite 
context.testCase.testSuite.testCaseList.each { testKase -> 
    //Loop thru all the test steps of each test case 
    testKase.testStepList.each { step -> 
      //Check if the request type is SOAP  
     if (step instanceof WsdlTestRequestStep) { 
      //Get the request of test step 
      def stepRequest = step.getPropertyValue('Request') 
      log.info "Request of step ${step.name} is :\n ${stepRequest}" 
     } else { 
      log.info 'Ignoring step as it is not SOAP request type step' 
     } 
    } 
} 

정말 잘 모르겠지만 요청을 받고 나면 무엇을하고 싶습니까? 어쨌든 stepRequest 변수는 위 코드에서 보듯이을 로깅하기 위해 요청 데이터 인 을 갖게됩니다.

+0

예, 유용합니다. 스크립트가 시작되었습니다. –