如果状态码等于 401,则重新运行测试步骤
Rerun teststep if statuscode equals 401
如果测试步骤失败,我如何在 ReadyAPI 中重新运行 x 次测试步骤?我的测试要求一台服务器,如果它没有“预热”,有时可能需要长达 30 秒的时间来回答。有时它会快得多。所以我实施了一个到 20 秒的“延迟步骤”。但是我不想让延迟比 20s 大很多。
示例:
Testcase
--Teststep: GetMyData
Teststep GetMyData 失败,我在几秒钟后手动重新运行它,现在集成服务器收到响应并且测试步骤工作正常。
我试过这个解决方案:
Rerun teststep
但它给了我 java.lang.NullPointerException
这是一个例子...
获取重试次数Groovy 包含此...
这定义了重试的次数。
获取等待期groovy包含...
这是重试之间的毫秒数。因此,等待 2 秒的 10 次重试最多为 20 秒。
重置重试 groovy 脚本包含...
这会将我们的自定义 属性 设置为零。
Rest Request 步骤是您要发出并重试的任何调用。
检查请求是我们进行检查和重试的地方。我粘贴了代码而不是屏幕截图。
// Initialise some variables.
def status = testRunner.testCase.testSteps["REST Request"].testRequest.response.responseHeaders["#status#"];
def waitTime = context.expand( '${Get Wait Period - Groovy Script#result}' )
def maxRetries = context.expand( '${Get Number of Retries - Groovy Script#result}' )
def retryCountString = context.expand( '${#TestCase#RetryCount}' )
// Convert the retry count from String to Int
def retryCount = Integer.parseInt(retryCountString);
// Let's check the request status. If it worked its 200.
if(status.toString().contains("200")){
// We're good. Do nothing more.
} else {
// Server not ready. Let's retry...
if(retryCount < Integer.parseInt(maxRetries)) {
log.info("Retry ${retryCount} of ${maxRetries}.");
// A small sleep to give a gap inbetween retries.
sleep( Integer.parseInt(waitTime));
// Update the retry count and save it.
retryCount += 1;
testRunner.testCase.setPropertyValue( "RetryCount", retryCount.toString() );
// Let's re-run the step.
testRunner.gotoStepByName("REST Request");
} else {
log.info("Ran out of retries");
}
}
如果测试步骤失败,我如何在 ReadyAPI 中重新运行 x 次测试步骤?我的测试要求一台服务器,如果它没有“预热”,有时可能需要长达 30 秒的时间来回答。有时它会快得多。所以我实施了一个到 20 秒的“延迟步骤”。但是我不想让延迟比 20s 大很多。
示例:
Testcase
--Teststep: GetMyData
Teststep GetMyData 失败,我在几秒钟后手动重新运行它,现在集成服务器收到响应并且测试步骤工作正常。
我试过这个解决方案: Rerun teststep
但它给了我 java.lang.NullPointerException
这是一个例子...
获取重试次数Groovy 包含此...
这定义了重试的次数。
获取等待期groovy包含...
这是重试之间的毫秒数。因此,等待 2 秒的 10 次重试最多为 20 秒。
重置重试 groovy 脚本包含...
这会将我们的自定义 属性 设置为零。
Rest Request 步骤是您要发出并重试的任何调用。
检查请求是我们进行检查和重试的地方。我粘贴了代码而不是屏幕截图。
// Initialise some variables.
def status = testRunner.testCase.testSteps["REST Request"].testRequest.response.responseHeaders["#status#"];
def waitTime = context.expand( '${Get Wait Period - Groovy Script#result}' )
def maxRetries = context.expand( '${Get Number of Retries - Groovy Script#result}' )
def retryCountString = context.expand( '${#TestCase#RetryCount}' )
// Convert the retry count from String to Int
def retryCount = Integer.parseInt(retryCountString);
// Let's check the request status. If it worked its 200.
if(status.toString().contains("200")){
// We're good. Do nothing more.
} else {
// Server not ready. Let's retry...
if(retryCount < Integer.parseInt(maxRetries)) {
log.info("Retry ${retryCount} of ${maxRetries}.");
// A small sleep to give a gap inbetween retries.
sleep( Integer.parseInt(waitTime));
// Update the retry count and save it.
retryCount += 1;
testRunner.testCase.setPropertyValue( "RetryCount", retryCount.toString() );
// Let's re-run the step.
testRunner.gotoStepByName("REST Request");
} else {
log.info("Ran out of retries");
}
}