2017-03-21 5 views
0

私はすべてのサービスを1つのステップでテストするための独創的なスクリプトを作成しています。単一のgroovyスクリプトですべてのsoapリクエストにアクセスするには

WSDLをインポートした後、すべてのSOAP要求が自動的に生成されます。

すべてのSOAPサービスを1つずつテストする手作業を減らしたいと思います。

可能であれば、私はgroovyからやりたいと思っています。ここaddressScript中から

enter image description here

- 私は、後にすべてのテストケース内のすべてのSOAPリクエストにアクセスしたいです。コンテキスト内でいくつかのループを介して実装することは可能ですか?以下は、試行しているサンプルコードです。

私の主なモットーは、すべてのSOAPリクエストを1つずつテストするすべての手動作業を減らすことです。あなたが添付した画像から

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

SOAP要求ステップはあなたのケースで使用されているように、それが見えます。

ここには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

はい、これは便利なスクリプトです –

関連する問題