In readyAPI, we have a step called 'Run TestCase" under add step. If I use that to call another testcase, is there any way to receive the response of called test case?. Because right now I'm just getting passed or failed. I'm not getting any errors from the called step.
In short, When I run the "Run Testcase" pointing to test case A, if testcase A failed, how can I get the failure reason without going to testcase A
Solved! Go to Solution.
I'm not sure if this is what you are after, but I make extensive use of the "Run TestCase" test step. To help me debug, I always add the following to my "common" test cases tear down script:
def logPrefix = testCase.getName() + ': ' log.info (logPrefix + 'Number of results = ' + testRunner.getResults().size().toString()) for(result in testRunner.getResults()){ if(result.getStatus().toString() != 'PASS' ){ def failedTestStepName = result.getTestStep().getName() def logPrefixStep = logPrefix.trim() + failedTestStepName + ': ' log.error(logPrefixStep + 'TestStep "' + failedTestStepName + '" finished with the status ' + result.getStatus().toString()) for(testProperty in testCase.getTestStepByName(failedTestStepName).getPropertyList()){ if(testProperty.isReadOnly()){ log.info(logPrefixStep + 'Output property: ' + testProperty.getName() + ' = ' + testProperty.getValue()) }else{ log.info(logPrefixStep + 'Input property: ' + testProperty.getName() + ' = ' + testProperty.getValue()) } } for(message in result.getMessages()){ log.error(logPrefixStep + 'Error message: ' + message) } } }
Is this what you are after?
I'm not sure if this is what you are after, but I make extensive use of the "Run TestCase" test step. To help me debug, I always add the following to my "common" test cases tear down script:
def logPrefix = testCase.getName() + ': ' log.info (logPrefix + 'Number of results = ' + testRunner.getResults().size().toString()) for(result in testRunner.getResults()){ if(result.getStatus().toString() != 'PASS' ){ def failedTestStepName = result.getTestStep().getName() def logPrefixStep = logPrefix.trim() + failedTestStepName + ': ' log.error(logPrefixStep + 'TestStep "' + failedTestStepName + '" finished with the status ' + result.getStatus().toString()) for(testProperty in testCase.getTestStepByName(failedTestStepName).getPropertyList()){ if(testProperty.isReadOnly()){ log.info(logPrefixStep + 'Output property: ' + testProperty.getName() + ' = ' + testProperty.getValue()) }else{ log.info(logPrefixStep + 'Input property: ' + testProperty.getName() + ' = ' + testProperty.getValue()) } } for(message in result.getMessages()){ log.error(logPrefixStep + 'Error message: ' + message) } } }
Is this what you are after?
Hey @Radford
I've just 'borrowed' your script - cheers fella - very handy! 🙂
nice one
rich
@richie glad you found it useful.
Just to mention in my "real world" testing scenarios, I actually put the script in a "TestRunListener.afterRun" event, that way I just have a single copy of the script that runs for all test cases (you can always add a filter to the event if you want to limit the number of tets cases it runs against).
Thanks Radford, I have implemented the groovy script in the TestRunListener.afterStep, After the run where I can find the logs from the script?
Details of the logs can be found here:
https://support.smartbear.com/readyapi/docs/configure/logs.html
You need to look at the "Script Log" tab.
User | Count |
---|---|
6 | |
5 | |
4 | |
2 | |
1 |
Subject | Author | Latest Post |
---|---|---|