Puppetry
3.2.2
3.2.2
  • Welcome Puppetry
  • Getting Started
  • Project
  • Suite
  • Group
  • Target
    • Simple Target
    • iFrame Target
    • ShadowDOM Target
    • Chained Target
    • Shared Target
  • Test Case
  • Test Step / Action
    • Page Commands
    • Page Assertions
    • Target Commands
    • Target Assertions
  • Managing Records
  • Snippets
  • Running tests
    • Interactive Mode
    • Troubleshooting
  • Test Report
  • Export
    • Exporting as Jest Project (CI-friendly)
    • Exporting as Test Specification
  • Settings
  • Template Expressions
  • Testing Techniques
    • Testing Dynamic Content
    • Exhaustive Testing
    • Performance Testing
    • Visual Regression Testing
    • Testing Shadow DOM
    • Testing Google Analytics tracking code
    • Testing Chrome Extensions
    • Testing REST API
    • Mocking HTTP/S Requests
    • Testing Transactional Emails
      • Example with Restmail.net
      • Example with Mailinator
      • Example with IMAP bridge
      • Example with Google API
    • Testing Forms with Captcha
  • Version Control
  • Tips and Tricks
    • Embrace the Power of CSS
  • Command API
  • Test Application
Powered by GitBook
On this page

Was this helpful?

  1. Testing Techniques

Testing REST API

PreviousTesting Chrome ExtensionsNextMocking HTTP/S Requests

Last updated 5 years ago

Was this helpful?

Nowadays it’s hard to find a web-application, which doesn’t use REST API. That’s an essential part of application functionality that we have to test. Usually REST API calls are covered with integration tests. However, if by some reason, it isn’t done you can still test it with Puppetry.

Let’s put it into practice. Imagine we have a marketplace application, which relies on .

To start, we check if product information can be retrieved. So we use page.assertRest as follows:

Now let’s do something more sophisticated. We are going to obtain authentication token.

The application calls integration/admin/token to obtain authentication token. So we set page.assertRest parameters like that:

We expect the response of status 200 with a non-empty access token.

Note that page.assertRest automatically assigns the response text to PUPPETRY_LAST_RESPONSE_TEXT template variable. So we can use it further in the test case.

Here we assert that call respond with status code 200 (success) and the returned JSON matches the given .

JSONPath
Magento API
Making GET request and asserting the response
Making POST request and asserting the response