如何在SoapUI中为一个测试步骤设置超时时间?

14

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

4个回答

14

1
它适用于SoapUI中的所有请求/响应,但我只想针对一个测试。 - Cherry
2
如果未设置超时时间,那么默认的超时时间是多少? - David García González
2
60秒是默认值。 - gnaanaa
您可以将超时设置为0,表示不设超时。 - Dinesh Rajan

4
正如其他答案所说,无法为TestStep设置套接字超时时间,但是您可以通过使用TestStepgroovy TestStep来实现。 您可以按照以下步骤操作:
  1. TestCase中创建TestStep并将其禁用,因为您将从groovy运行它。
  2. 创建一个Groovy testStep,在运行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()

您的测试用例将如下所示:

enter image description here

请注意,如果您想检查通过groovy更改设置是否按预期工作,可以尝试修改属性并检查首选项SOAPUI文件在$USER_HOME\soapui-settings.xml中是否更改(显然为了测试它,请不要再次备份原始值,如示例中的:))。

这将改变全局套接字超时,似乎会影响到所有的soapui项目。我的意思是,如果有其他测试并行运行,它们将“看到”修改的全局超时。例如,当几个测试用例包含该代码时,它们可以同步设置全局超时,并且对于其中几个测试用例,它可能比所需的更小。也许最好像SiKing建议的那样设置TestCase超时时间? - Cherry
在你的问题中,没有要求并行运行测试,这就是为什么我向你展示了一种可能的解决方法,即使用全局属性来实现。但是,如果在测试用例级别存在套接字超时,我认为可以通过类似的groovy脚本更改此属性来实现。如果存在,我会检查它并更新我的答案。 - albciff

4

TestCase Options有一个套接字超时设置,适用于该测试。您无法仅为一个步骤设置此设置。


谢谢,我已经成功为测试用例设置了超时时间 :) - Zeeshan

3

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

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

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

这个值将影响testCase中的所有步骤。

全局SOCKET_TIMEOUT值不受此影响。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接