In this post I am going to show you how to execute SoapUI project using Junit.
SoapUI provide testrunner class name “SoapUITestCaseRunner” which can be used to run soapui test using java class, maven or ant build tool. We create object of this class in java file and call the run function to execute soapui project.
Steps to create Junit test for soap ui project:
1. Chose any IDE as eclipse or NetBean
2. Add “soapui-4.5.1.jar” from soapui bin folder and soapui lid folder as library to class path of your project (eclipse).
3. Use “SoapUITestCaseRunner” class object to run soapui project as mentioned in below code:
4. Use below code if you want to execute test case not just executing all test case
SoapUI provide testrunner class name “SoapUITestCaseRunner” which can be used to run soapui test using java class, maven or ant build tool. We create object of this class in java file and call the run function to execute soapui project.
Steps to create Junit test for soap ui project:
1. Chose any IDE as eclipse or NetBean
2. Add “soapui-4.5.1.jar” from soapui bin folder and soapui lid folder as library to class path of your project (eclipse).
3. Use “SoapUITestCaseRunner” class object to run soapui project as mentioned in below code:
//import classes
import org.junit.Test;
import
com.eviware.soapui.tools.SoapUITestCaseRunner;
//Junit test method
@Test
public void testSoapUI() {
//initialize SoapUITestCaseRunner class object
SoapUITestCaseRunner
soapUITestCaseRunner = new SoapUITestCaseRunner();
//set
your project absolute path of your project
soapUITestCaseRunner.setProjectFile("D://SampleTest-soapui-project.xml");
try {
//call run method to execute all test
of project.
soapUITestCaseRunner.run();
} catch (Exception e) {
e.printStackTrace();
}
}
4. Use below code if you want to execute test case not just executing all test case
//import classes
import java.io.IOException;
import java.util.List;
import org.apache.xmlbeans.XmlException;
import org.junit.Assert;
import org.junit.Test;
import com.eviware.soapui.impl.wsdl.WsdlProject;
import
com.eviware.soapui.model.support.PropertiesMap;
import
com.eviware.soapui.model.testsuite.TestCase;
import
com.eviware.soapui.model.testsuite.TestRunner;
import
com.eviware.soapui.model.testsuite.TestSuite;
import com.eviware.soapui.support.SoapUIException;
//Junit test method
@Test
public void testSoapUI() throws XmlException,
IOException, SoapUIException {
//
Create a WsdlProject instance by
specifying the project absolute path
WsdlProject
project = new WsdlProject("D://SampleTest-soapui-project.xml");
// retrieve
all test suite from project
List
testSuiteList = project.getTestSuiteList();
//
Iterate all TestSuites of project
for
(TestSuite ts : testSuiteList) {
System.out.println("****Running
Test suite " + ts.getName() + "********");
// Retrieve all TestCases from a
particular TestSuite
List testCaseList
= ts.getTestCaseList();
// Iterate all TestCases of the
particular TestSuite
for (TestCase testcase :
testCaseList) {
System.out.println("****Running
Test Case " + testcase.getName()+ "*****");
//
Run the specific TestCase
TestRunner
testRunner = testcase.run(new PropertiesMap(), false);
//verify
where test case pass or not
Assert.assertEquals(TestRunner.Status.FINISHED,
testRunner.getStatus());
}
}
}
what are basic problems faced when we are automating a project using selenium
ReplyDeleteHow to get Response XML ??
ReplyDeletemy code is like this
@Test
public void fullControl() throws Exception {
WsdlProject project = new WsdlProject("D:\\WebServiceTesting\\TLGO-soapui-project.xml");
List testSuites = project.getTestSuiteList();
for( TestSuite suite : testSuites ) {
List testCases=suite.getTestCaseList();
for( TestCase testCase : testCases ) {
String name=testCase.getName();
System.out.println();
System.out.println("Rajesh "+name);
TestRunner runner2 = testCase.run(new PropertiesMap(), false);
assertEquals(Status.FINISHED, runner2.getStatus());
System.out.println("::::::::::::::"+runner2.toString());
}
}
}
hi, i have tried using soapui-5.2.0.jar, nothing happens.
ReplyDeletetests are not triggered at all. what am i missing?
@shahin can you post your code?
ReplyDeletethanks for the code..I have soapui project which is on another machine. How can I run that project on my machine using junit.
ReplyDeleteThis comment has been removed by the author.
ReplyDeletedoes this only work with soapui-4.5.1.jar? what about readyapi jar?
ReplyDeleteit is also working for readyapi1.8.0 i got it to work with that version.
DeleteHi All,
ReplyDeleteI have some other query regarding above topic like How to add WS security header (KeyStore file already generated & added into classpath) in java programmatically since we are currently executing WsdlProject ( Loading testsuite details from project xml file) with the help of SOAP UI IDE.
Setting:
SoapUI.getSettings().setString(SSLSettings.KEYSTORE, "C:/dev/TestKeyStore");
SoapUI.getSettings().setString(SSLSettings.KEYSTORE_PASSWORD, "password_123");
WsdlProject project = new WsdlProject("PROJECT XML PATH");
List testSuites = project.getTestSuiteList();
for (TestSuite suite : testSuites){
List testCases = suite.getTestCaseList();
for (TestCase testCase : testCases){
// do something
}
}
Awaiting for your response!
Thanks!
Hi All,
ReplyDeleteI have some other query regarding above topic like How to add WS security header (KeyStore file already generated & added into classpath) in java programmatically since we are currently executing WsdlProject ( Loading testsuite details from project xml file) with the help of SOAP UI IDE.
Setting:
SoapUI.getSettings().setString(SSLSettings.KEYSTORE, "C:/dev/TestKeyStore");
SoapUI.getSettings().setString(SSLSettings.KEYSTORE_PASSWORD, "password_123");
WsdlProject project = new WsdlProject("PROJECT XML PATH");
List testSuites = project.getTestSuiteList();
for (TestSuite suite : testSuites){
List testCases = suite.getTestCaseList();
for (TestCase testCase : testCases){
// do something
}
}
Awaiting for your response!
Thanks!
Hello All,
ReplyDeleteI'm executing the same class. Maven build runs the class and executes tests and reports are generated but the build nevers ends. Is somemone facing the same problem?
Thank You!
The method getTestCaseList() is undefined for the type TestSuite
ReplyDelete