How to Retry a Test Case or Test Step (ReadyAPI)
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
How to Retry a Test Case or Test Step (ReadyAPI)
If one particular test step fails, how do I retry or rerun either that specific Test Step or even the whole Test Case again?
- Labels:
-
Function Tests
-
REST
-
Scripting
-
SOAP
-
Test Setup
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I must be misunderstanding but you can re-execute a failed step, testcase, or testsuite by selecting the green arrow (execute) button.
Can you clarify your point please?
Ta
Rich
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hey Richie,
So sometimes a test step fails intermittently within my Test Case and I want an automate re-run/retry the whole test case again from the start.
I've tried adding a TearDown Script within the Test Case but goes on an infinite loop and I just want it to retry 2 or 3 times then if still fails on retry stop it...
import com.eviware.soapui.support.types.StringToObjectMap
// Retrieve target test case running status, if failed, then rerun.
def testcase = testRunner.testCase.testSuite.testCases["Contract_Created"]
def testresult = testcase.run(new StringToObjectMap(), false)
// loop
for (int i=0; i<3; i++) {
if (testresult.status.toString() == 'FAIL') {
testresult = testcase.run(new StringToObjectMap(), false)
} else {
break
}
}
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Did you take your code from another post on the soapui forum?
I noticed there was a post by @aaronpliu and your code is IDENTICAL, excepting your for clause.
aaronplui's response to this included (i in 0..<3) in his for clause. Whereas yours is (int i=0; i<3; i++).
Tbh, i wouldve thought your code wouldve worked fine,but anyway, try changing the code and see what happens.
Ta
Rich
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @richie,
I tried changing the below in the TearDown Script but if the test step fails it it keeps retrying on an infinite loop and doesn't seem to stop after the desired failed attempts.
for (i in 0..<3) {
if (testresult.status.toString() == 'FAIL')
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thats weird cos aaronpliu's solution definitely worked before.
I'll search for other solutions or you can yourself...simply a google/forum search.....should retrieve some posts with alternative solutions.
Ta
Rich
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@richie - Thanks for all the help 🙂
I'm not sure why it didn't work, but strange it went on infinite loop when I added to TearDown Script in the Test Case, I also added the Groovy Script after a Test Step but unfortunately that relies on getting to that exact groovy step but if it was to fail 2 steps before that one then Groovy wouldn't run...
Yea I've search as well but ReadyAPI seems very limited on answers to certain stuff people try to do...
I've posted before but unfortunately few answers to my questions 😞
