web-dev-qa-db-ja.com

soapuiの1つのテストステップのタイムアウトを設定するにはどうすればよいですか?

Soapuiにテストステップを作成しました。 5分のような長い遅延を設定する必要があります。つまり、テストステップ間に遅延はなく、1ステップだけ応答を待つ必要があります。どうすればできますか?

12
Cherry

ソケットタイムアウトを300000ミリ秒に設定します。 SoapUIドキュメント

13
gnaanaa

TestCaseオプションには、そのテスト用のソケットタイムアウト設定があります。これを1つのステップだけに設定することはできません。

4
SiKing

他の回答では、TestStepのソケットタイムアウトを設定することはできませんが、TestStepgroovy TestStepを使用してトリックを実行できます。次の手順を実行して実行できます。

  1. TestStep内にTestCaseを作成し、groovyから実行するため無効にします。
  2. testStepを実行する前にグローバルソケットタイムアウトを変更するGroovy testStepを作成し、実行後に com.eviware.soapui.SoapUI class を使用してデフォルト値を再設定します。

使用できるgroovyコードは次のとおりです。

import com.eviware.soapui.SoapUI
import com.eviware.soapui.settings.HttpSettings
import com.eviware.soapui.model.testsuite.TestStepResult.TestStepStatus

// get the settings 
def settings = SoapUI.getSettings();
// save the possible previous timeout
def bk_timeout = settings.getString(HttpSettings.SOCKET_TIMEOUT,"");
// set the new timeout... in your case 5 minutes in miliseconds
settings.setString(HttpSettings.SOCKET_TIMEOUT,"300000");
// save the new settings 
SoapUI.saveSettings();

// get the testStep by name
def testStep = testRunner.testCase.getTestStepByName('Test Request')
// run it
def result = testStep.run( testRunner, context )
if( result.status == TestStepStatus.OK )
{
    // ... if all ok    
}

// when finish set the timeout to default value again
settings.setString(HttpSettings.SOCKET_TIMEOUT, bk_timeout)
SoapUI.saveSettings()

TestCaseは次のようになります。

enter image description here

groovyによる設定の変更が期待どおりに動作するかどうかを確認する場合は、プロパティを変更して、$USER_HOME\soapui-settings.xmlの設定SOAPUIファイルが変更されるかどうかを確認できます(明らかにテストするため)サンプル:))のように元の値を再度バックアップしないでください。

4
albciff

TestCaseソケットタイムアウトを設定する方法を見つけました。

TestCaseのセットアップスクリプトでは、次のコードを使用します。

testRunner.testCase.settings.setString("HttpSettings@socket_timeout","10000")

TestCase内のすべてのステップは、この値の影響を受けます。

グローバルSOCKET_TIMEOUT値は、これによる影響を受けません。

3
LPedro