Bird
Raised Fist0
Postmantesting~15 mins

Raw body (text, XML) in Postman - Build an Automation Script

Choose your learning style10 modes available
Send POST request with raw XML body and verify response
Preconditions (2)
Step 1: Open Postman and create a new POST request
Step 2: Set the request URL to https://api.example.com/orders
Step 3: Go to the Body tab and select 'raw' option
Step 4: Select 'XML' from the dropdown next to raw
Step 5: Enter the following XML content in the body:<order><id>123</id><item>Book</item><quantity>2</quantity></order>
Step 6: Click Send button
Step 7: Observe the response status code and body
✅ Expected Result: Response status code is 200 OK and response body contains confirmation message with order id 123
Automation Requirements - Postman/Newman
Assertions Needed:
Verify response status code is 200
Verify response body contains order id 123 confirmation
Best Practices:
Use raw body with correct Content-Type header set to application/xml
Use test scripts in Postman to assert response
Keep XML body well-formed and valid
Automated Solution
Postman
pm.test('Status code is 200', function () {
    pm.response.to.have.status(200);
});

pm.test('Response contains order id 123', function () {
    const responseBody = pm.response.text();
    pm.expect(responseBody).to.include('<id>123</id>');
});

The first test checks that the response status code is exactly 200, which means the request was successful.

The second test reads the response body as text and verifies it contains the XML tag with order id 123, confirming the order was processed.

Using pm.response.to.have.status(200) is the standard way in Postman to assert status codes.

Checking the raw response text for the expected XML snippet ensures the server returned the correct data.

Common Mistakes - 3 Pitfalls
Not setting Content-Type header to application/xml
Using JSON body format instead of XML when API expects XML
Not validating response status code before checking body
Bonus Challenge

Now add data-driven testing with 3 different XML orders having different ids and items

Show Hint

Practice

(1/5)
1. What is the main purpose of using the Raw body option in Postman when testing APIs?
easy
A. To send exact text or XML data as the request body
B. To automatically generate JSON data for the request
C. To create a graphical interface for the API
D. To validate the response status code

Solution

  1. Step 1: Understand Raw Body usage

    The Raw body option allows sending exact text or XML data in the request body without modification.
  2. Step 2: Compare with other options

    Other options like form-data or JSON editor do not send plain text or XML exactly as typed.
  3. Final Answer:

    To send exact text or XML data as the request body -> Option A
  4. Quick Check:

    Raw body = exact text/XML data [OK]
Hint: Raw body sends exact text or XML as is [OK]
Common Mistakes:
  • Confusing raw body with JSON auto-formatting
  • Thinking raw body generates data automatically
  • Using raw body to validate response codes
2. Which Content-Type header should you set in Postman when sending XML data in the Raw body?
easy
A. application/json
B. text/plain
C. multipart/form-data
D. application/xml

Solution

  1. Step 1: Identify correct Content-Type for XML

    XML data requires the Content-Type header to be application/xml so the server knows to parse XML.
  2. Step 2: Eliminate other options

    application/json is for JSON, text/plain is plain text, and multipart/form-data is for file uploads.
  3. Final Answer:

    application/xml -> Option D
  4. Quick Check:

    XML Content-Type = application/xml [OK]
Hint: Use application/xml header for XML raw body [OK]
Common Mistakes:
  • Using application/json for XML data
  • Omitting Content-Type header
  • Choosing text/plain for XML
3. Given this XML raw body sent in Postman:
<note>
  <to>Alice</to>
  <from>Bob</from>
  <message>Hello</message>
</note>

What will the server receive if the Content-Type is correctly set to application/xml?
medium
A. Plain text without any tags
B. A JSON object with keys 'to', 'from', and 'message'
C. The exact XML text as shown, including tags and content
D. An error because XML is not supported

Solution

  1. Step 1: Understand raw body with XML and Content-Type

    When raw XML is sent with Content-Type application/xml, the server receives the exact XML text including tags.
  2. Step 2: Eliminate other options

    The server does not convert XML to JSON automatically, nor strip tags or throw errors if XML is supported.
  3. Final Answer:

    The exact XML text as shown, including tags and content -> Option C
  4. Quick Check:

    Raw XML + application/xml = exact XML text [OK]
Hint: Raw XML with correct header sends exact XML text [OK]
Common Mistakes:
  • Assuming XML converts to JSON automatically
  • Thinking tags are removed in transmission
  • Believing server errors without checking support
4. You send this raw XML in Postman:
<user>
  <name>John</name>
  <age>30</age>
</user>

But the server returns a 400 Bad Request error. What is the most likely cause?
medium
A. The XML tags are invalid and malformed
B. Content-Type header is missing or incorrect
C. Raw body cannot send XML data
D. Postman does not support sending raw bodies

Solution

  1. Step 1: Check XML validity

    The XML tags are well-formed and valid, so the XML itself is not the issue.
  2. Step 2: Consider Content-Type header

    If the Content-Type header is missing or not set to application/xml, the server may reject the request with 400 error.
  3. Final Answer:

    Content-Type header is missing or incorrect -> Option B
  4. Quick Check:

    Missing/incorrect Content-Type causes 400 error [OK]
Hint: Always set Content-Type for XML raw body [OK]
Common Mistakes:
  • Blaming XML syntax without checking header
  • Thinking raw body cannot send XML
  • Assuming Postman lacks raw body support
5. You want to test an API that accepts plain text commands in the raw body. Which combination in Postman is correct to send the command START successfully?
hard
A. Set raw body to START and Content-Type to text/plain
B. Set raw body to {"command":"START"} and Content-Type to application/json
C. Set raw body to <command>START</command> and Content-Type to application/xml
D. Set raw body to START and Content-Type to application/xml

Solution

  1. Step 1: Identify data type expected by API

    The API expects plain text commands, so raw body should contain plain text like START.
  2. Step 2: Set matching Content-Type header

    For plain text, the Content-Type must be text/plain to inform the server correctly.
  3. Final Answer:

    Set raw body to START and Content-Type to text/plain -> Option A
  4. Quick Check:

    Plain text command needs text/plain header [OK]
Hint: Match raw body content with correct Content-Type header [OK]
Common Mistakes:
  • Sending plain text with JSON or XML headers
  • Wrapping plain text in JSON or XML tags unnecessarily
  • Using wrong Content-Type for plain text
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard