Invalid timeout formats for SOAP Request
hi i am getting invalid timeout formats in response below is my SOAP request <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <SecurityHeader xmlns="http://services.medconnect.net/submissionportal"> <UserName>2143883</UserName> <Password><![CDATA[I3zt!7&W]]></Password> </SecurityHeader> </soap:Header> <soap:Body> <SubmitSync xmlns="http://services.medconnect.net/submissionportal"><request> </request> <requestFormat>EDI</requestFormat> <responseFormat>EDI</responseFormat> <synchronousTimeout>00:01:00</synchronousTimeout> <submissionTimeout>00:01:00</submissionTimeout> </SubmitSync> </soap:Body> </soap:Envelope>512Views0likes0CommentsFaultString - Illegal semicolon, not in group
Hi All, i am having soap Webservice , in which i have to pass special characters like (&,;,>,<). When i use these characters in request .i am getting below error <faultstring>Illegal semicolon, not in group</faultstring> Critical Request attribute <link>"http=test.test.com&csf=1&web=1&e=abcd"</link> Could you please suggest how to resolve the error730Views0likes1CommentDisplaying Log Output as null when trying to set node value using groovy script
import com.eviware.soapui.support.XmlHolder import com.eviware.soapui.impl.wsdl.testcase.WsdlTestRunContext def request1 = testRunner.testCase.testSuite.testCases["GetEmp"].testSteps["GetEmpDtls"].getPropertyValue("Request") def xml1= new XmlHolder(request1) def getnode1=xml1.getNodeValue("saxon:parse(//tem:GetEmp/tem:InputParameters)//USER_ID") log.info ("GetNodeValue : " +getnode1) def setnode1=xml1.setNodeValue("saxon:parse(//tem:GetEmp/tem:InputParameters)//USER_ID" , "JACK") log.info ("SetNodeValue : " +setnode1) Log Output: Mon Mar 09 16:29:48 IST 2020:INFO:GetNodeValue : test Mon Mar 09 16:29:48 IST 2020:INFO:SetNodeValue : null Expected Logt Output is : SetNodeValue : JACK, BUT Actual Log Output is : SetNodeValue : null I want to set the node value in above scenario, why null value is displaying?, can you provide solution for above senario. In above script emoji icons are displaying, please find the attached script file.1.6KViews0likes4CommentsWSDL file is not loading
Dear All i am new to this community and hope to find help i am working on BMC remedy application and need to consume WSDL file in Remedy but it is not loading BMC Remedy has these limitation in consuming WSDL 1- SOAP-encoded arrays and SOAP-encoded structures are not supported. This means that RPC-encoded and document-encoded web services with complex input or output parameters do not work. For example, Amazon Web 2- Services API and Google Web Services API fall into this category. 3- All operations should be of one kind — that is,allRPC-encoded oralldoc/literal. 4- Only SOAP operations are considered. MIME and HTTP operations are ignored. Overloaded operations are not allowed. 5- Both input and output should be present; one-way messaging is not allowed. 6- A WSDL file cannot have both a<wsdl:include>and a<wsdl:types>element. Tip As a workaround, use<xsd:include>inside<wsdl:types>. There is no restriction on the number of<xsd:include>elements that you can use. 7- A WSDL file cannot have more than one<wsdl:include>element. 8- BMC Remedy AR System supports Message Parts that point to XML Elements or XML Simple Types only. 9- If a<wsdl:message>element has more than one Message Part, only the first Message Part is considered. i am trying to load the file but it is not loading so i dont know if my file contain one of the limitation above or not because i am not experinced in XML can you help to identify if the file has some limitation of above ?757Views0likes0CommentsNeed help! with empty response when I using the external XML as response.
Hi, I'm the beginner for SoapUI. I have a problem when using the external XML file for dynamic responses. It returns an empty message for the response but it appears on the log.info. 1. I created the request "Req_NAME_ID1" 2. I created the response and force it reads the XML from specifying the path. def resultRespXML = new File("C:\\Users\\Administrator\\Desktop\\Temp\\Test\\mockResponses\\Resp_0000202130123310_0057076200.xml") log.info resultRespXML context.content = resultRespXML 3. Run and see the log. It shows the message log from log.info 4. But it doesn't show the data at the Response. Please help me. Regards, DanSolved4.3KViews0likes8CommentsValidate Data from DB2 in groovy script
I have 2 test cases, for one of them I need to validate in DB2, for the other one in SQL. The scenario: I have a search service and when sending a customer number I get all the credit cards connected to that customer. For this I need to validate in DB2. If I send a number for a customer who only has paypal accounts, I need to validate in SQL. For the second one I'm using simple SELECT query to retrieve records from one table. Here is the code that I use to validate: //----------Script Functions---------- //XMLify Response def XMLifyResponse(String step) { def resp = context.expand('${' + step + '#ResponseAsXml}') def xml = new XmlSlurper().parseText(resp) log.info("String response for step " + step + ": " + resp) log.info("XMLified content for step " + step + ": " + xml) return xml } //Jsonify Response def JsonifyResponse(String step) { def resp = context.expand('${' + step + '#Response}').toString() def json = new groovy.json.JsonSlurper().parseText(resp) log.info("String response for step " + step + ": " + resp) log.info("Jsonified content for step " + step + ": " + json) return json } //----------Main Script---------- //Parse Responses def xmlSQL = XMLifyResponse('TestData_SQL') def jsonEndpoint = JsonifyResponse('List Request') //Put into organized lists def sqlList =xmlSQL.'**'.findAll{it.name() == 'Row'} log.info("SQL LIST: "+sqlList) def endpointList = jsonEndpoint.creditCards //Validate Sizes assert sqlList.size() == endpointList.size() assert endpointList.size() <= 500, "Endpoint returned more than 500 results. " //Account Validation Endpoint - SQL endpointList.each { //Account Number def creditCardNumberHashCode = it.creditCardNumberHashCode.toString() log.info creditCardNumberHashCode def sqlcreditCardNumberHashCode = sqlList.find{it.PAYMENT_METHOD_ID.toString() == creditCardNumberHashCode} log.info sqlcreditCardNumberHashCode def statusCode = it.statusCode.toString() log.info statusCode assert it.creditCardNumberHashCode == sqlcreditCardNumberHashCode.PAYMENT_METHOD_ID.toString(), "SQL and endpoint account numbers do not match" assert it.statusCode == sqlcreditCardNumberHashCode.PAYMENT_METHOD_STATUS_TYPE_CD.toString() } log.info("Validation Complete") -------------------------------------------------------------------------- This line:def sqlcreditCardNumberHashCode = sqlList.find{it.PAYMENT_METHOD_ID.toString() == creditCardNumberHashCode} --- is supposed to create another list for that row where the account numbers match The problem arises when I need to validate in DB2 where the query retrieves following XML: <Row rowNumber="1"> <CUST_CREDT_CARD.CREDITCARD>0011001101</CUST_CREDT_CARD.CREDITCARD> <CUST_CREDT_CARD.CC_LAST_FOUR_NBR>1817</CUST_CREDT_CARD.CC_LAST_FOUR_NBR> <CUST_CREDT_CARD.CC_TYP_CD>VI </CUST_CREDT_CARD.CC_TYP_CD> </Row> <Row rowNumber="2"> <CUST_CREDT_CARD.CREDITCARD>00101010</CUST_CREDT_CARD.CREDITCARD> <CUST_CREDT_CARD.CC_LAST_FOUR_NBR>8453</CUST_CREDT_CARD.CC_LAST_FOUR_NBR> <CUST_CREDT_CARD.CC_TYP_CD>VI </CUST_CREDT_CARD.CC_TYP_CD> </Row> ---So when I use that same line of code to create a list from a row based on a specific credit card number from Json response: def db2creditCardNumberHashCode = db2List.find{it.CUST_CREDT_CARD.CREDITCARD.toString() == creditCardNumberHashCode} I get null object. I am Joining 3 tables and when querying db2 i receive an XML that gives the table and field (CUST_CREDT_CARD.CREDITCARD) and that seems to be the problem. When validating SQL jdbc response it works fine because it just retrieves me the field name (PAYMENT_METHOD_ID). I tried with using just CREDITCARD, I tried replacing the . (dot) with different things, nothing helped. Any suggestions will be greatly appreciated!1.1KViews0likes0CommentsStore a value from XML/XPath output of a REST query in a SoapUI property for later use
I'm new to SOAP, REST, and SoapUI. I'm working to build a test case that simulates a user login & then extracts the user list from the server. My log in command is working, and I get the XML output I want: <MGRestTokenResponse xmlns="http://schemas.datacontract.org/2004/07/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <Message>success</Message> <Token>---THIS IS THE DATA I WANT---</Token> </MGRestTokenResponse> I'm trying to get the Token value stored in a SecurityToken property inside SoapUI but nothing is working. I've tried using XmlToolBox to get an XPath result and I've been given: /MGRestTokenResponse[@xmlns="http://schemas.datacontract.org/2004/07/"]/Token/text() or /MGRestTokenResponse[@xmlns="http://schemas.datacontract.org/2004/07/"]/Token/text() but nothing I'm trying is working. The environment I'm working in is REST only. How do I extract values from the responses & transfer them to a property?Solved2.9KViews0likes5CommentsCompare test step
Purpose The process of testing often requires to compare test results to expected values. When we need to check a specific value, we can use assertions. However, there are often occasions when we need to compare one documents to another (e.g. XML, JSON). I propose to introduce a new type of test step: Compare test step. Functionality Compare test step would allow: Select documents: users would select source and target document from test step requests, responses, properties and other document holders in SoapUI environment, similarly as the Property Transfer test step does. Type of comparisson: the user could choose whether the documents have to be identical (both structure and values) or similar (only the structure should be same). Also the user could choose to ignore differences in whitespaces, attributes, or namespaces, or even data types which to ignore (e.g. xsd:dateTime is typically different). List of items to compare/ignore: the user could list the items which should be ignored, represented by XPath statements. Also there would be an opposite option: a list of XPath statements to check and to ignore the rest of the documents. Suggestions The Compare test step can utilize the XMLUnit library for XML and thus expose its function via SoapUI user interface. The Compare step can be similarly used for JSON documents.9KViews8likes3CommentsCustomize request XML parsing
Hi, is there a way of customizing the request XML parsing process in SOAP UI? I have already tried to check out the sources and intervene there butthe codebase has proven to be a bit overwhelming to understand - I wasn`t able to understand where the configuration for the XML parser is set. I`m trying to use it to demonstrate XXE payloads for a university project and it seems most of the popular payloads are not working on requests sent via SOAP UI, probably due to parser configuration... Basically I need to find how to turn off the anti-XXE measures. There is an attachment to show what I mean to do... Thanks2.1KViews0likes4CommentsExtracting value of an attribute from XML using groovy
I would use same sample xml from my previous post <property name="mail"> <entry key="server" value="outlook"/> </property> <property name="housekeep"> <entry key="files.days" value="60"/> <entry key="logs.days" value="30"/> </property> <property name="ConnectedDB"> <entry key="name" value="oracle" /> <entry key="table1" value="tableA" /> <entry key="table2" value="tableB"/> </property> Using groovy, I have to access "oracle". I am hard-coding to get the value of oracle. ..@value[0] def getxml = new XmlSlurper().parse(new File ('C:/ConfigXML/file.xml')) def chosenDB =getxml.property.find{it.@name=='ConnectedDB'}.entry.@value[0] log.info(chosenDB) //gives oracle Pls suggest without the hard-coded way..like give me the 'value' where 'key'== 'name' from property 'ConnectedDB'2KViews0likes0Comments