Testing 如何在soapui中设置一个测试步骤的超时?
我已经在soapui中创建了一个测试步骤。我需要设置一个长的延迟,比如5分钟。我的意思是测试步骤之间没有延迟,我只需要等待一个步骤的响应。如何操作?将套接字超时设置为300000毫秒。Testing 如何在soapui中设置一个测试步骤的超时?,testing,soapui,Testing,Soapui,我已经在soapui中创建了一个测试步骤。我需要设置一个长的延迟,比如5分钟。我的意思是测试步骤之间没有延迟,我只需要等待一个步骤的响应。如何操作?将套接字超时设置为300000毫秒。 TestCase选项具有该测试的套接字超时设置。您不能仅为一个步骤设置此选项。因为其他答案说,无法为测试步骤设置套接字超时,但是您可以使用测试步骤和groovy测试步骤来完成此操作。您可以通过以下步骤执行此操作: 在TestCase中创建TestStep,并禁用它,因为您将从groovy运行它 创建一个Groov
TestCase选项具有该测试的套接字超时设置。您不能仅为一个步骤设置此选项。因为其他答案说,无法为
测试步骤设置套接字超时,但是您可以使用测试步骤和groovy测试步骤来完成此操作。您可以通过以下步骤执行此操作:
在TestCase
中创建TestStep
,并禁用它,因为您将从groovy运行它
创建一个Groovy测试步骤
,它将在运行testStep
之前更改全局套接字超时,并在执行后使用再次设置默认值
您可以使用的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()
您的测试用例将如下所示:
请注意,如果要检查通过groovy
更改设置是否按预期工作,可以尝试修改属性,并检查$USER\u HOME\SOAPUI settings.xml
中的首选项SOAPUI
文件是否更改(显然,要测试它,请不要像示例中那样再次备份原始值:)
)。我找到了一种设置testCase套接字超时的方法
在testCase的设置脚本中,使用以下代码:
testRunner.testCase.settings.setString("HttpSettings@socket_timeout","10000")
testCase内部的所有步骤都将受到该值的影响
全局套接字\u超时值不受此影响。它适用于soapui中的所有请求/响应,但如果未设置超时,我只希望进行一次测试。默认超时是什么?默认值是60秒。您可以将0设置为“无超时”,这将更改全局套接字超时
-它似乎会影响所有soapui项目。我的意思是,如果有其他测试并行运行,它们将“看到”修改的全局超时。例如,当多个测试用例包含该代码时,它们可以同步设置全局超时,并且对于其中几个测试用例,它可以小于需要的值。按照建议设置TestCase超时是否更好?在您的问题中,并没有关于并行运行测试的要求,这就是为什么我向您展示了一种可能的解决方法,可以使用全局属性来完成这项工作。然而,如果testCase级别存在套接字超时,我认为可以使用类似的groovy脚本更改此属性。我检查它,如果存在,我将更新我的答案。谢谢,我能够为测试用例设置超时:)