我在soapui中创建了一个测试步骤。我需要设置一个长达5分钟的延迟时间。我的意思是测试步骤之间没有延迟,我只需等待一步的响应。我该怎么办?
答案 0 :(得分:13)
将套接字超时设置为300000毫秒。 SoapUI Documentation
答案 1 :(得分:4)
TestCase Options具有该测试的套接字超时设置。您不能仅将此设置为一步。
答案 2 :(得分:4)
正如其他答案所说,无法为TestStep
设置套接字超时,但您可以使用TestStep
和groovy TestStep
来解决问题。您可以执行以下步骤:
TestStep
内创建TestCase
并禁用它,因为您将从groovy运行它。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()
您的testCase将如下所示:
请注意,如果要检查通过groovy
更改设置是否按预期工作,可以尝试修改属性并检查SOAPUI
中的首选项$USER_HOME\soapui-settings.xml
文件是否发生更改(显然是为了测试)它不会像样本:)
中那样再次备份原始值。
答案 3 :(得分:3)
我找到了一种设置testCase套接字超时的方法。
在testCase的设置脚本中,使用以下代码:
testRunner.testCase.settings.setString("HttpSettings@socket_timeout","10000")
testCase内的所有步骤都会受到此值的影响。
全局SOCKET_TIMEOUT值不受此影响。