我正在使用maven-soapui-plugin 4.5.1,我想运行一个特定的测试步骤。我使用下面的代码:
WsdlProject abc = new WsdlProject(projectXMLPath);
WsdlTestSuite wsdlTestSuite = abc.getTestSuiteByName(testSuiteName);
WsdlTestCase wsdlTestCase = wsdlTestSuite.getTestCaseByName(testCaseName);
WsdlTestCaseRunner wsdlTestCaseRunner = new WsdlTestCaseRunner(wsdlTestCase,new StringToObjectMap());
WsdlTestStep wsdlTestStep = wsdlTestCase.getTestStepByName(testStepName);
wsdlTestCaseRunner.run(wsdlTestStep);
很少 - 1.项目xml有2个测试套件,第一个测试套件有步骤,第二个测试套件有库功能。在SoapUI中,它们编码如下:
第一个Test Suite脚本(给定一个有效地址的请求)来自第一个Test Suite,如下所示:
def proj= null
def workspace = testRunner.testCase.testSuite.project.getWorkspace();
proj= workspace.getProjectByName("Calling")
def testCase = proj.testSuites["Library"].testCases["Successful Calling Steps" ]
testRunner.testCase.setPropertyValue( "addressLine1", "xxxx" )
testRunner.testCase.setPropertyValue( "city", "xxxx" )
testRunner.testCase.setPropertyValue( "state", "xx" )
def testStep = testCase.getTestStepByName("Given a request with a valid address is made")
def runner = null
runner = testStep.run(testRunner, context)
来自Library Test Suite的第二个测试脚本具有实际的REST请求,Web服务和Web服务认证的终点。
如果我们在SOAPUI中的第一个测试套件中执行第一个测试步骤,它会在内部调用Library中的测试步骤来替换变量值并进行REST调用以获得响应。这在SOAPUI中工作正常,但是当我们在JAVA中通过run方法调用第一个测试步骤时,它失败并出现以下错误。
线程中的异常" main" java.lang.NoClassDefFoundError:com / jniwrapper / PlatformContext 在com.eviware.soapui.SoapUI.isJXBrowserDisabled(SoapUI.java:1060) 在com.eviware.soapui.SoapUI.isJXBrowserDisabled(SoapUI.java:1038) 在com.eviware.soapui.impl.wsdl.submit.filters.HttpAuthenticationRequestFilter.filterAbstractHttpRequest(HttpAuthenticationRequestFilter.java:77) 在com.eviware.soapui.impl.wsdl.submit.filters.AbstractRequestFilter.filterRequest(AbstractRequestFilter.java:31) 在com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest(HttpClientRequestTransport.java:184) 在com.eviware.soapui.impl.wsdl.WsdlSubmit.run(WsdlSubmit.java:123) 在com.eviware.soapui.impl.wsdl.WsdlSubmit.submitRequest(WsdlSubmit.java:76) 在com.eviware.soapui.impl.rest.RestRequest.submit(RestRequest.java:209) 在com.eviware.soapui.impl.wsdl.teststeps.RestTestRequestStep.run(RestTestRequestStep.java:898) 在com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.runTestStep(AbstractTestCaseRunner.java:238) 在com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.runTestStep(AbstractTestCaseRunner.java:224) at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner $ runTestStep.call(Unknown Source) 在org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) 在org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) 在org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at MyClass.simpletest1(MyClass.groovy:109) 在test.main(test.java:11) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) 在com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) 引起:java.lang.ClassNotFoundException:com.jniwrapper.PlatformContext 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:366) 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) 在java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 22更多
我需要添加哪些内容才能解决问题?请帮忙。
答案 0 :(得分:0)
SoapUI版本4.5.1已经过时了,所需的依赖项可能不再可用。
您应该使用更新的版本。从版本4.5.2开始,SmartBear购买了SoapUI,并且相应地更新了jar的groupid,这导致了Maven repos中的不同位置:http://smartbearsoftware.com/repository/maven2/com/smartbear/soapui/soapui-maven-plugin/