http://soa.dzone.com/articles/functional-web-services-1
http://soa.dzone.com/articles/draft-functional-web-services--0
http://soa.dzone.com/articles/functional-web-services-testin-1
More here
http://www.soapui.org/Getting-Started/functional-testing.html
and with Maven:
http://technology.amis.nl/blog/7408/automatic-testing-oracle-service-bus-using-hudson-maven-and-soapui
On running SOAPUI tests from JUnit (Hudson):
where every SOAPUI project is executed in its own JUnit test, to make it easier to identify problems:
package dk.acme.dmr.service.test.integration; import java.io.File; import java.io.FilenameFilter; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import com.eviware.soapui.tools.SoapUITestCaseRunner; /** * Run SOAPUI project files as test cases. * * @author Acme A/S * @version 1.0 * @since 1.0 */ @RunWith(value = Parameterized.class) public class SoapUITest { // The folder must be relative to this project private final static String SOAPUI_PROJECT_DIR = "src/test/resources/"; private final static String ENDPOINT_VAR = "endpoint"; private final String soapUiFileName; public SoapUITest(String soapUiFileName) { this.soapUiFileName = soapUiFileName; } @Parameterized.Parameters public static Collection<Object[]> soapUIprojectFiles() { File folder = new File(SOAPUI_PROJECT_DIR); OnlyExt onlyXml = new OnlyExt(".xml"); String[] soapuiProjs = folder.list(onlyXml); List<Object[]> ret = new ArrayList<Object[]>(); for (String s : soapuiProjs) { ret.add(new Object[] { s }); } return ret; } @Test public void soapUITest() throws Exception { SoapUITestCaseRunner runner = new SoapUITestCaseRunner(); runner.setProjectProperties(new String[] { new String(ENDPOINT_VAR + "=http://myserver:9001") }); runner.setOutputFolder(System.getProperty("user.dir") + "/soapui-errors"); runner.setProjectFile(SOAPUI_PROJECT_DIR + "/" + soapUiFileName); runner.run(); } static class OnlyExt implements FilenameFilter { private final String ext; public OnlyExt(String _ext) { ext = _ext; } public boolean accept(File dir, String name) { return name.endsWith(ext); } } }
I am still NOT persuaded that using SOAPUI for functional tests is better than using JUnit and Java stubs. If you go beyond the basics, SOAPUI and Groovy can be even more complex than the Java solution. I simply cannot accept writing complex code in a language that cannot be compiled and easily refactored.
2 comments:
Groovy can be easily refactored, try out the Intellij Plugin or the Eclipse one.
groovyc --> compiles groovy code to Java bytecode.
Here is working example
https://github.com/stokito/soapui-junit
Post a Comment