Integrating with JUnit
1. JUnit Pro Integration
It is fairly easy to invoke the testrunner from your own JUnit-tests;
Copy all the jar files from the lib folder for ReadyAPI Installation folder in class file path. Copy the soapui-pro-5.0.0.jar (or corresponding version) from the bin folder in ReadyAPI intallation directory.
public void testRunner() throws Exception { SoapUIProTestCaseRunner runner = new SoapUIProTestCaseRunner(); runner.setProjectFile(“SoapUIWorkspace/Sample-soapui-project.xml”); runner.setPrintReport(true); runner.run(); }
The runner.run() call will throw an exception if an error occurs. If you want more control over your integration / error-reporting, a specific TestCase could be run as follows:
public void testRunner() throws Exception { WsdlProjectPro project = new WsdlProjectPro(“SoapUIWorkspace/Sample-soapui-project.xml”); List testSuites = project.getTestSuiteList(); for( TestSuite suite : testSuites ) { List testCases = suite.getTestCaseList(); for( TestCase testCase : testCases ) { System.out.println(“Running SoapUI test [” + testCase.getName() + ”]”); TestRunner runner2 = testCase.run(new PropertiesMap(), false); assertEquals(Status.FINISHED, runner2.getStatus()); } } }
2. JUnit open source integration
It is fairly easy to invoke the testrunner from your own JUnit-tests;
public void testRunner() throws Exception { SoapUITestCaseRunner runner = new SoapUITestCaseRunner(); runner.setProjectFile( “src/dist/sample-soapui-project.xml” ); runner.run(); }
The runner.run() call will throw an exception if an error occurs. If you want more control over your integration / error-reporting, a specific TestCase could be run as follows:
public void testTestCaseRunner() throws Exception { WsdlProject project = new WsdlProject( “src/dist/sample-soapui-project.xml” ); TestSuite testSuite = project.getTestSuiteByName( “Test Suite” ); TestCase testCase = testSuite.getTestCaseByName( “Test Conversions” );
// create empty properties and run synchronously TestRunner runner = testCase.run( new PropertiesMap(), false ); assertEquals( Status.FINISHED, runner.getStatus() ); }
TestEngine: An Optimized Test Runner
Execute tests from SoupUI Open Source or SoupUI Pro in parallel to speed up your API Testing.
-
Scale Based on Your Business Needs:
Dynamically run larger regression tests alongside smaller tests with custom configuration parameters.
-
Job Queuing:
Execute tests as they arrive, staggering test runs and avoiding bottlenecks at peak times.
-
Supports Multiple Environments:
Use TestEngine on Docker, VMS, Mac, Windows or Linux.
3. Reporting and Exporting Functional Web Service Tests
The SoapUITestCaseRunner has basic reporting functionalities, including the possibility to create JUnit-compatible xml-reports using the -j switch. Also, it will during execution print diagnostic information and if the -r switch was specified print a small summary:
testrunner.bat jbossws-soapui-project.xml -stest -ctesting -r -a -fmyresults
produced the following output:
SoapUI 1.5beta2 TestCase Runner
12:33:10,042 INFO [SoapUITestCaseRunner] setting projectFile to [jbossws-soapui-project.xml]
12:33:10,042 INFO [SoapUITestCaseRunner] setting testSuite to [test]
12:33:10,042 INFO [SoapUITestCaseRunner] setting testCase to [testing]
12:33:10,583 INFO [WsdlProject] Loaded project from [jbossws-soapui-project.xml]
12:33:11,915 INFO [SoapUITestCaseRunner] Running soapui tests in project [jbossws]
12:33:11,915 INFO [SoapUITestCaseRunner] Running soapui suite [test], runType = SEQUENTIAL
12:33:11,925 INFO [SoapUITestCaseRunner] Running soapui testcase [testing]
12:33:11,935 INFO [SoapUITestCaseRunner] runing step [Groovy Script - init boss]
12:33:12,335 INFO [SoapUITestCaseRunner] runing step [Properties]
12:33:12,335 INFO [SoapUITestCaseRunner] runing step [Transfer Values - set boss]
12:33:12,716 ERROR [SoapUITestCaseRunner] Transfer Values - set boss failed, exporting
to [myresults\test\testing\Transfer-FAILED.txt]
12:33:12,716 INFO [SoapUITestCaseRunner] runing step [request step] Retrieving document
at ‘http://lpt-olma:8080/ws4ee-samples-server-ejb/Organization?wsdl’.
12:33:13,407 INFO [SchemaUtils] Loading schema types from
[http://lpt-olma:8080/ws4ee-samples-server-ejb/Organization?wsdl\]
12:33:13,407 INFO [SchemaUtils] Getting schema
http://lpt-olma:8080/ws4ee-samples-server-ejb/Organization?wsdl
12:33:13,787 INFO [SoapUITestCaseRunner] Assertion [Schema Compliance] has status VALID
12:33:13,807 INFO [SoapUITestCaseRunner] Finished running soapui testcase [testing], time taken = 1882ms
12:33:13,807 INFO [SoapUITestCaseRunner] Skipping testcase [testcase2], filter is [testing]
12:33:13,807 INFO [SoapUITestCaseRunner] Skipping testcase [Copy of testing], filter is [testing]
12:33:13,807 INFO [SoapUITestCaseRunner] Skipping testcase [Copy of Copy of testing],
filter is [testing]
12:33:13,807 INFO [SoapUITestCaseRunner] soapui suite [test] finished in 1892ms
SoapUI 1.5beta2 TestCaseRunner Summary
Time Taken: 1895ms Total TestSuites: 1 Total TestCases: 1 Total TestSteps: 4 Total Request Assertions: 1 Total Failed Assertions: 0 Total Exported Results: 4
By default, the testrunner exports only failed results to a text file, the -a option will export all results instead. For example the file for a Request TestStep will be as follows (slightly modified to fit):
Status: OK Time Taken: 55 Size: 448 Timestamp: Sun Mar 12 12:45:57 CET 2006 TestStep: request step
Encoding: UTF-8
Endpoint: http://lpt-olma:8080/ws4ee-samples-server-ejb/Organization
Username: test
Password: zswrgfa3
Domain:
---------------- Request ---------------------------
<soapenv:Envelope xmlns:sam=“http://org.jboss.test.webservice/samples”
xmlns:soapenv=“http://schemas.xmlsoap.org/soap/envelope/”>
soapenv:Body
sam:getContactInfo
<String_1>testsd1141581163341</String_1>
</sam:getContactInfo>
</soapenv:Body>
</soapenv:Envelope>
---------------- Response --------------------------
<soapenv:Envelope xmlns:soapenv=“http://schemas.xmlsoap.org/soap/envelope/”
xmlns:xsd=“http://www.w3.org/2001/XMLSchema” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>
soapenv:Body
<ns1:getContactInfoResponse xmlns:ns1=“http://org.jboss.test.webservice/samples”>
Exported files are written to a file named