1

私はSOAP UI 4.5.1、負荷テストを行いましたが、正常に動作しています。私の問題は、毎回同じリクエストを実行し、送信するsoapリクエストの値を変更する必要があることです。

たとえば、石鹸のリクエストのブロックがあります。

 <ns:Assessment>
    <ns:Project>
       <ns:ProviderId>SHL</ns:ProviderId>
       <ns:ProjectId>SampleAssessment</ns:ProjectId>
    </ns:Project>
 </ns:Assessment>

プロバイダーID:SHLプロジェクトID:SampleAssessment

それらの値をある種の間隔から変更する方法はありますか?例:プロバイダーID[SHL, SLH, LHS] プロジェクトID[SampleAssessment, TestAssessment, AnotherAssessment]

そして、負荷テストでは、最初のリクエストの値が次のようになるように3つのリクエストを作成しています。

 <ns:Assessment>
    <ns:Project>
       <ns:ProviderId>SHL</ns:ProviderId>
       <ns:ProjectId>SampleAssessment</ns:ProjectId>
    </ns:Project>
 </ns:Assessment>

このような2番目の場合:

 <ns:Assessment>
    <ns:Project>
       <ns:ProviderId>SLH</ns:ProviderId>
       <ns:ProjectId>TestAssessment</ns:ProjectId>
    </ns:Project>
 </ns:Assessment>

等々...

これをSOAPUIで実現する方法はありますか?

4

2 に答える 2

2

私の経験から、Groovyスクリプトのステップを使用する必要があります。

たとえば、リクエストの前にスクリプトであるステップがある場合は、次のようなものを使用できます。

context.setProperty("ProviderId", "SHL")

次に、リクエストで次を使用します。

<ns:ProviderId>${ProviderId}</ns:ProviderId>

もちろん、これだけではあまり購入できません。context.setProperty( "ProviderId"、 "SHL")行が設定する内容を変更する方法はいくつかあります。コレクションを作成し、次のようなものを使用して反復することができます。

 def providers = ['ABC', 'DEF', 'GHI', 'JKL']

 providers.each() {
     context.setProperty("ProviderId", it)
     testRunner.runTestStepByName( "nameofteststep" )
 }

ここで、「nameofteststep」は、SoapRequestテストステップの名前です。これは奇妙に聞こえるかもしれませんが、テストステップを右クリックして無効にすると、Groovyスクリプトはそれを実行できますが、順次実行されません。つまり、Groovyスクリプトは4回実行しますが、スクリプトが完了すると、スクリプトの後にあるため、5回目は実行されません。次に、各負荷テストスレッドが4つのリクエストを行うことを覚えておく必要がありますが、SoapUI統計ではこれが考慮されると確信しています...ただし、注意が必要な場合があります。

または、「threadIndex」を確認し、それに基づいてコンテキスト変数を設定することもできます。ここに少し似ています: LogThreadCount

ループのないコレクションを使用して、テストケースプロパティとして保存するインデックスをインクリメントし、インデックスに対応する文字列を送信することもできます。

個人的には、最初の方法が最も簡単だと思いますが、必要に応じて他の方法の例を提供できます。

于 2012-10-24T16:25:07.587 に答える
1

グルーヴィーなスクリプトを書かずにこれを行う簡単な方法があります。

テストケースを作成した後、以下のテスト手順を含める必要があります。

1-データソース

2-リクエスト

3-ループ

データソースはExcelファイルを読み取ります(またはXML、groovy、JDBC、girdなどの他のデータソースメソッド。ただし、Excelが最も単純な方法です)。データを含める必要があります(リクエスト内で変更する必要があります)

テストリクエスト内で、右クリックして[データを取得]を選択する必要があります。テストリクエストは以下のようになりますのでご注意ください

<ns:ProviderId>${ProviderId}</ns:ProviderId>

そして最後のステップは「ループ」です。これは、データが終了するまで最初のステップに戻るためのものです。

これがお役に立てば幸いです。

于 2012-10-30T13:16:17.113 に答える