Forum Discussion

razzy's avatar
12 years ago

Please format SoapUI generated XMLs

Please pretty format SoapUI generated XMLs.
To clarify:
For example, when User creates Test Case using Soap UI, it is saved as XML file.
Unfortunately SoapUI save it as 2 line file:
razzy:smokeCoreUseCases razzy$ grep -n x SampleTestCase.xml
1:<?xml version="1.0" encoding="UTF-8"?>
2:<con:testCase failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="SampleTestCase" searchProperties="true" id="af6aed1d-d392-4019-a1fb-cc3854e9296e" xmlns:con="http://eviware.com/soapui/config"><con:settings/><con:testStep type="groovy" name="SampleGroovyScript"><con:settings/><con:config><script/></con:config></con:testStep><con:testStep type="restrequest" name="SampleRest"><con:settings/><con:config service="SWAT-Rest" methodName="GET - getAddressById" resourcePath="/address/{id}" xsi:type="con:RestRequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:restRequest name="SampleRest" mediaType="application/json"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>https://127.0.0.1</con:endpoint><con:request/><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters/></con:restRequest></con:config></con:testStep><con:properties/><con:reportParameters/></con:testCase>

If user over time makes changes, it is very hard to track differences - as all of them are on same line.
Unless I format file myself, I can't really do easily diff.

It would be good to have pretty formatted XML, like
TMP_FILE_NAME="SampleTestCase.xml"
xmllint --format - < ${TMP_FILE_NAME} > "formatted"_${TMP_FILE_NAME}

Following xml is actually indented too - not sure why it is not displayed such in this post.
cat formatted_SampleTestCase.xml
<?xml version="1.0" encoding="UTF-8"?>
<con:testCase xmlns:con="http://eviware.com/soapui/config" failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="SampleTestCase" searchProperties="true" id="af6aed1d-d392-4019-a1fb-cc3854e9296e">
<con:settings/>
<con:testStep type="groovy" name="SampleGroovyScript">
<con:settings/>
<con:config>
<script/>
</con:config>
</con:testStep>
<con:testStep type="restrequest" name="SampleRest">
<con:settings/>
<con:config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" service="SWAT-Rest" methodName="GET - getAddress" resourcePath="/address/{id}" xsi:type="con:RestRequestStep">
<con:restRequest name="SampleRest" mediaType="application/json">
<con:settings/>
<con:encoding>UTF-8</con:encoding>
<con:endpoint>https://127.0.0.1</con:endpoint>
<con:request/>
<con:credentials>
<con:authType>No Authorization</con:authType>
</con:credentials>
<con:jmsConfig JMSDeliveryMode="PERSISTENT"/>
<con:jmsPropertyConfig/>
<con:parameters/>
</con:restRequest>
</con:config>
</con:testStep>
<con:properties/>
<con:reportParameters/>
</con:testCase>
razzy:smokeCoreUseCases razzy$

4 Replies