如何设置soapui中一个测试步骤的超时?

时间:2014-10-22 03:45:37

标签: testing soapui

我在soapui中创建了一个测试步骤。我需要设置一个长达5分钟的延迟时间。我的意思是测试步骤之间没有延迟,我只需等待一步的响应。我该怎么办?

4 个答案:

答案 0 :(得分:13)

将套接字超时设置为300000毫秒。 SoapUI Documentation

答案 1 :(得分:4)

TestCase Options具有该测试的套接字超时设置。您不能仅将此设置为一步。

答案 2 :(得分:4)

正如其他答案所说,无法为TestStep设置套接字超时,但您可以使用TestStepgroovy TestStep来解决问题。您可以执行以下步骤:

  1. TestStep内创建TestCase并禁用它,因为您将从groovy运行它。
  2. 创建Groovy testStep,它将在运行testStep之前更改全局套接字超时,并在使用com.eviware.soapui.SoapUI class执行后再次设置默认值。
  3. 您可以使用的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更改设置是否按预期工作,可以尝试修改属性并检查SOAPUI中的首选项$USER_HOME\soapui-settings.xml文件是否发生更改(显然是为了测试)它不会像样本:)中那样再次备份原始值。

答案 3 :(得分:3)

我找到了一种设置testCase套接字超时的方法。

在testCase的设置脚本中,使用以下代码:

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

testCase内的所有步骤都会受到此值的影响。

全局SOCKET_TIMEOUT值不受此影响。