我正在使用 SOAPUI 测试 REST Web 服务。我正在尝试参数化 POST JSON 请求。所以我创建了一个名为“JSON.request”的文件并将其附加在请求下(请参阅随附的屏幕截图)。
当我的文件包含一个 JSON 请求时,它可以正常工作。例如
{ "operation": "PayTxn.Account,CanLogin", "sessionid": 0, "parms": [{"UserName":
"abcd", "Password": "password"}] }'
但是当有多个请求时,我遇到了问题(由 a 分隔;
)
{ "operation": "PayTxn.Account,CanLogin", "sessionid": 0, "parms": [{"UserName":
"abcd", "Password": "password"}] };{ "operation": "PayTxn.Misc,GetCountryCodes",
"sessionid": 0}
在请求的属性中,我将多值分隔符的值指定为;
在日志中,我收到以下错误:
org.apache.xmlbeans.XmlException: error: Unexpected element: CDATA
at org.apache.xmlbeans.impl.store.Locale$SaxLoader.load(Locale.java:3486)
at org.apache.xmlbeans.impl.store.Locale.parse(Locale.java:712)
at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:696)
at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:683)
at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:208)
at org.apache.xmlbeans.XmlObject$Factory.parse(XmlObject.java:633)
at com.eviware.soapui.support.xml.XmlUtils.createXmlObject(XmlUtils.java:217)
at com.eviware.soapui.impl.rest.panels.request.inspectors.schema.InferredSchemaInspector.afterSubmit(InferredSchemaInspector.java:131)
at com.eviware.soapui.impl.wsdl.WsdlSubmit.run(WsdlSubmit.java:157)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source) Caused by: org.xml.sax.SAXParseException; systemId: file:; lineNumber: 1; columnNumber: 1; Unexpected element: CDATA
at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.reportFatalError(Piccolo.java:1038)
at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.parse(Piccolo.java:723)
at org.apache.xmlbeans.impl.store.Locale$SaxLoader.load(Locale.java:3454) ... 14 more
所以,请让我知道如何解决它。此外,为了参数化 SOAP Web 服务,我一直使用 DataSource 和 DataSource Loop,但我认为要参数化 JSON POST 请求,我必须遵循上述方法。
任何帮助都感激不尽。