2016-03-21 5 views
1

SOAPUIについての記事を読んでいますが、そのうちの1つはSoapUI getting request parameters in mock service scriptです。私が探している解決策はGroovyを使用していると思います。SOAPUI - リクエスト要素の値を変更する

動的な変更要求でいくつかの精巣を実行したいSOAP Webサービスがあります。この要求...

<soapenv:Body> 
     <req:MyrRquest> 
     <req:number>XPTO</req:number> 
     </req:MyrRquest> 
    </soapenv:Body> 

私の考えは、最大値に達するまで、開始値からループを1つ増やすことです。そして私はXPTOをこの変化する価値に置き換えたいと思っています。

誰でもこれを試みましたか?それをする最善の方法は何ですか?

+0

あなたは負荷テストを使用してもよろしいですか? – Rao

+0

パフォーマンスはテストしていますが、レガシーシステムとの一貫性があるため、アイデアは負荷テストではありません。だから私は大量のリクエストから実行しています。 –

答えて

0

これは、groovyステップを使用してこれを行う方法です。

2つのテスト段階でテストケースを定義します。

  1. テストリクエストステップ(石鹸、あなたが示されたもの)を
  2. のGroovyスクリプトステップ(これは私が提案しています追加の一つです)

あなたはそれを繰り返し実行し、テストごとに値を提供し、と同じCURRENT_VALUEを維持しなければならない最小と最大の時間を必要とするもののような3つのテストケースレベルのカスタムプロパティの下の定義1回の仕事である。なぜなら、毎回CURRENT_VALUEが増加し、テストを実行するたびにMIN_VALUEを変更したくないからです。そのようにして、テストケースが実行されるたびに値をリセットしないでください。これは、個々のステップ、すなわちを実行することはできません、テストケースは、それが数を繰り返さなければならないとして、あなたの必要性を満たすために実行されなければならないことを

  • MIN_VALUE
  • MAX_VALUE
  • CURRENT_VALUE

注意あなたのために大丈夫です。

テストリクエストでは、現在の値プレースホルダを使用する必要があります。

変更:<req:number>XPTO</req:number>
へ:

//Read the test case level properties as integers 
def min = context.testCase.getPropertyValue('MIN_VALUE') as Integer 
def max = context.testCase.getPropertyValue('MAX_VALUE') as Integer 

//Get the previous step name 
def pStepName = context.testCase.testStepList[context.currentStepIndex-1].name 

//min+1, because already test request is executed once 
((min+1)..max).each { 

    //update the current value incremented by 1 
    context.testCase.setPropertyValue('CURRENT_VALUE', it.toString()) 
    log.info "Running step ${pStepName} for ${it} time" 

    //run the previous test step 
    testRunner.runTestStepByName(pStepName) 
} 
//finally resetting current value to min value as test finishes 
context.testCase.setPropertyValue('CURRENT_VALUE', min.toString()) 

ためstep 1このグルーヴィーなスクリプトステップは、基本的には、n-1回の最初のステップを実行しているの面倒を見る:<req:number>${#TestCase#CURRENT_VALUE}</req:number>

ここでグルーヴィーなスクリプトコードがあります実行スクリプトのテストステップの前にすでに実行されています。nは実行に必要な総回数です(n = max - min )。

前述のように、テストケースを実行するだけです。

関連する問題