How to capture assertions from SoapUI Test steps while executing SoapUI Scripts from a java applicat
- 9 years ago
Hi Rupert,
Thanks for providing your inputs. However I implemented in similar way with different approach.
// get a list of all test suites on the project
suiteList = project.getTestSuiteList();// iterating through each suite
for(int i = 0; i < suiteList.size(); i++){
//Neglect if suite is disabled/inactive
if(suiteList.get(i).isDisabled()){
continue;
}
// get the test suite name000
suiteName = suiteList.get(i).getName();System.out.println("Test Suite Is :" + suiteName );
reportStr = reportStr + "\nTest Suite: " + suiteName;// get a list of all test cases from the test suite
caseList = suiteList.get(i).getTestCaseList();
WsdlTestCaseRunner runner;
// iterating through each test case
for(TestCase testcase : caseList){
//neglect the disabled/inactive test case
if (testcase.isDisabled())
{
continue;
}
//Getting the WsdlTestCaseRunner
runner = new WsdlTestCaseRunner((WsdlTestCase) testcase, new StringToObjectMap(testcase.getProperties()) );
//Running the Test Case
runner.run();
//Getting the result of each step
List<TestStepResult> results = runner.getResults();
System.out.println("Test Case : " + testcase.getName());
//iterating through the results of the test steps executed in the test case
for(TestStepResult result : results ){
TestStepStatus stepStatus = result.getStatus();
//printing the status , we can have a check here for OK , FAILED or UNKNOWN test cases
System.out.println("Test Step Is : "+ result.getTestStep().getName() + " Test Step Status Is : " + stepStatus.toString());
if (result instanceof WsdlTestRequestStepResult){
if(result.getMessages().length>0){
//Getting the error messages
String[] errStr = result.getMessages();
StringBuilder sb= new StringBuilder();
//iterating through the error messages
for(int ii=0;ii<errStr.length;ii++){
String asserWithExcptn=errStr[ii];
String assertName= asserWithExcptn.substring(0,asserWithExcptn.indexOf("]")+1);
String assertResult= asserWithExcptn.substring(asserWithExcptn.indexOf("]")+1, asserWithExcptn.length());
sb.append("The failed assertion #"+(ii+1)+" as follows.. \n");
sb.append("The assertion is: "+assertName+"\n");
sb.append("The message is:"+assertResult);
sb.append("\n");
}
System.out.println(sb.toString());
}
}
}
reportStr = reportStr + "\n\tTestCase: " + testcase.getName() + "\tStatus: " + runner.getStatus() + "\tReason: " + runner.getReason();
}
}
//'reportStr' has the status of all the test cases
System.out.println("The Execution Status as follows: \n"+reportStr);The above script will capture more specific messages(Failed assertions from each test step).