Skip to content

hkt74/test-server

 
 

Repository files navigation

Test-server

A lightweight record-replay reverse proxy for software testing.

Usage

Create a configuration file for your test server, example:

endpoints:
  - target_host: generativelanguage.googleapis.com 
    target_type: https
    target_port: 443
    source_type: http
    source_port: 1443
    redact_request_headers:
      - X-Goog-Api-Key
      - Authorization
  - target_host: us-central1-aiplatform.googleapis.com
    target_type: https
    target_port: 443
    source_type: http
    source_port: 1444
    redact_request_headers:
      - X-Goog-Api-Key
      - Authorization

The configuration above specifies that test-server will be providing a testing endpoint for https://generativelanguage.googleapis.com:443 on http://localhost:1443 And a testing endpoint for https://us-central1-aiplatform.googleapis.com:443 on http://localhost:1444

The configuration also specifies that the X-Goog-Api-Key and Authorization http headers will be redacted from the recordings for both endpoints.

Running in record mode

To start test-server in record mode invoke:

test-server record --config <CONFIG_FILE> --recording-dir <RECORDING_DIR>

This runs test-server as a reverse proxy, with all interactions being saved to files under <RECORDING_DIR>.

Running in replay mode

To start test-server in replay mode invoke:

test-server replay --config <CONFIG_FILE> --recording-dir <RECORDING_DIR>

This will have test-server listen on the local endpoints and respond to requests with the recorded responses. Requests that were not recorded will be answered with an internal server error.

About

A lightweight record-replay reverse proxy for testing

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 75.2%
  • TypeScript 14.4%
  • JavaScript 10.4%