我正在使用maven-soapui-plugin 4.5.1,我想運行特定的測試步驟。我使用下面的代碼:嘗試使用java運行soap xml時出現錯誤
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它們被編碼如下:
第一個測試步驟腳本(考慮到與有效地址是由請求)從第一測試套件是如下:
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)
庫中的第二個測試腳本測試套件具有實際的REST請求,用於webservice和webservice驗證的終點。
如果我們在SOAPUI的第一個測試套件中執行第一個測試步驟,它將在內部調用庫中的測試步驟來替換變量值並進行REST調用以獲取響應。這在SOAPUI中工作正常,但是當我們通過JAVA中的run方法調用第一個測試步驟時,它會失敗,並顯示以下錯誤。
在線程 「主要」 java.lang.NoClassDefFoundError異常:COM/jniwrapper/PlatformContext 在com.eviware.soapui.SoapUI.isJXBrowserDisabled(SoapUI.java:1060) 在com.eviware.soapui.SoapUI.isJXBrowserDisabled (SoapUI.java:1038) at com.eviware.soapui.impl.wsdl.submit.filters.HttpAuthenticationRequestFilter.filterAbstractHttpRequest(HttpAuthenticationRequestFilter.java:77) at com.eviware.soapui.impl.wsdl.submit.filters.AbstractRequestFilter .filterRequest(AbstractRequestFilter.java:31) at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest(HttpClientRequestTransport.java:184) at com.eviware.soapui.impl.wsdl.WsdlSubmit .run(WsdlSubmit.java:123) at com.eviware.soapui.impl.wsdl.WsdlSubmit.submitRequest(WsdlSubmit.java:76) at com.eviware.soapui.impl.rest.RestRequest.submit(RestRequest.java:209) at com.eviware。 soapui.impl.wsdl.teststeps.RestTestRequestStep.run(RestTestRequestStep.java:898) at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.runTestStep(AbstractTestCaseRunner.java:238) at com.eviware.soapui。 impl.wsdl.support.AbstractTestCaseRunner.runTestStep(AbstractTestCaseRunner.java:224) at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner $ runTestStep.call(Unknown Source) at org.codehaus.groovy.runtime.callsite .CallSiteArray.defaultCall(CallSiteArray.java:42) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at at.Cut.haus.Groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at MyClass.simpletest1(MyClass.groovy:109) at test.main(test.java:11) at sun。 reflect.NativeMethodAccessorImpl.invoke0(本機方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method中.invoke(Method.java:606) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) 引起:java.lang.ClassNotFoundException:com.jniwrapper.PlatformContext at java。 net.URLClassLoader $ 1.run(URLClassLoader.java:366) at java.n在java.net.URLClassLoader.findClass(URLClassLoader。)上的java.security.AccessController.doPrivileged(本地方法) 上運行的.URLClassLoader $ 1.run(URLClassLoader.java:355) 。Java的:354) 在java.lang.ClassLoader.loadClass(ClassLoader.java:425) 在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308) 在java.lang.ClassLoader.loadClass(類加載器。 Java的:358) ...... 22多個
什麼可以在這裏錯過了我需要添加到解決這個問題?請幫忙。
您使用的是Maven嗎?你下載了所有的依賴關係嗎? 4.5.1已經很老了,你確定所有的依賴關係仍然可用嗎? – SiKing
是的,我使用Maven 4.5.1和Soapui免費版本。後來的插件可用於SoapUI專業版。 – JavaSoap
Maven,**工具**,https://maven.apache.org/最新版僅限於版本3! – SiKing