Soapuiにテストステップを作成しました。 5分のような長い遅延を設定する必要があります。つまり、テストステップ間に遅延はなく、1ステップだけ応答を待つ必要があります。どうすればできますか?
ソケットタイムアウトを300000ミリ秒に設定します。 SoapUIドキュメント
TestCaseオプションには、そのテスト用のソケットタイムアウト設定があります。これを1つのステップだけに設定することはできません。
他の回答では、TestStep
のソケットタイムアウトを設定することはできませんが、TestStep
とgroovy TestStep
を使用してトリックを実行できます。次の手順を実行して実行できます。
TestStep
内にTestCase
を作成し、groovyから実行するため無効にします。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は次のようになります。
groovy
による設定の変更が期待どおりに動作するかどうかを確認する場合は、プロパティを変更して、$USER_HOME\soapui-settings.xml
の設定SOAPUI
ファイルが変更されるかどうかを確認できます(明らかにテストするため)サンプル:)
)のように元の値を再度バックアップしないでください。
TestCaseソケットタイムアウトを設定する方法を見つけました。
TestCaseのセットアップスクリプトでは、次のコードを使用します。
testRunner.testCase.settings.setString("HttpSettings@socket_timeout","10000")
TestCase内のすべてのステップは、この値の影響を受けます。
グローバルSOCKET_TIMEOUT値は、これによる影響を受けません。