polly-proxy

0.3.0 • Public • Published

polly proxy

Greenkeeper badge

A proxy server configurable at runtime that can record and replay HTTP web requests. Uses the Polly.JS library by Netflix, and node-http-proxy.

It was designed for use by applications written in any language (such as C#) that make external web requests during integration tests. Ideally you would consume Polly.JS directly in your tests so that the extra layer of indirection is unnecessary.

Usage:

  • Install polly-proxy via npx polly-proxy or npm i -g polly-proxy
  • Start the polly proxy service locally before your tests run.
  • Register a service to be proxied. You will receive a JSON response with the open port you can send requests to. (repeat for all services)
    • POST /addproxy?proxyPath=${encodeURIComponent('http://myservice.example.com')}.
  • Start a test session. Test data will be recorded using the provided test name.
    • POST /replay?testName=your-unique-test-name-here
    • Any API calls that were not present in the recorded data will be externally made and the response persisted.
      • Each time replay is called, the current replay will be stopped and started over from the beginning.
  • Make HTTP requests from your app, but change the base URL to http://localhost:(port). For example, if the port returned /addproxy was 56064, and the URL was http://myservice.example.com/getsomething/foo, have your app make requests to http://localhost:56064/getsomething/foo.
    • Right now the order of the requests does not matter, but you can fork this library and change the polly settings to whatever you want here
  • Stop the test session when your test completes. This will record a HAR file to disk locally, which will be used in future replays.
    • POST /stop?testName=your-unique-test-name-here
  • See this test as an example for how to consume the API
  • Read the Polly.JS documentation for more information on how the record-replay logic works.

Limitations:

  • Does not support parallel tests (yet!)
  • Proxies will be automatically cleaned up after a short time
  • The Polly.JS options are not yet configurable. Fork this library or open an issue with what you'd like to see exposed.

Dependents (0)

Package Sidebar

Install

npm i polly-proxy

Weekly Downloads

0

Version

0.3.0

License

MIT

Unpacked Size

84.3 kB

Total Files

55

Last publish

Collaborators

  • dustinsoftware