Skip to content

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 02:25
· 184 commits to main since this release

Sonde 1.2 adds a mock server and three protocols beyond plain HTTP:
Server-Sent Events, WebSocket and gRPC. The new protocols are written in
.sonde files; .hurl files stay strict Hurl 8, and each new construct is
a parse error there. There is no 1.1 release: its mock server ships here.

Highlights

  • sonde mock. Serve an OpenAPI 3.0/3.1 or Swagger 2.0 spec as an HTTP
    mock: responses come from the spec's examples and schemas, and requests
    can be validated against it (--validate-requests).
    docs/guides/mock-server.md
  • Server-Sent Events and WebSocket. sonde-stream-* options read a
    response as an event stream; a [SondeMessages] section scripts a
    WebSocket exchange with send, receive and close steps. The
    sondeStream query checks the messages with the usual filters and
    predicates.
    docs/guides/streaming.md
  • gRPC. A [SondeGrpc] section calls unary and server-streaming
    methods with JSON messages, from .proto files, descriptor sets or
    server reflection. The sondeGrpc query checks the status; a status
    other than OK fails the entry unless the entry checks it. gRPC runs on
    Sonde's own HTTP/2 client, so TLS, proxies, verbose output, reports and
    redaction work as for HTTP.
    docs/guides/grpc.md

The designs are recorded in decisions
0004
and 0005.
gRPC support adds 3.6 MB to the binary; the measurements are in 0005.

Compatibility

Every change to the CLI, the JSON report and the engine and exchange
Go packages is additive, as docs/stability.md
promises for 1.x. Hurl compatibility is unchanged (97.3% of Hurl's
blocking integration tests).

Install

brew install nhtera/tap/sonde                                   # macOS, Linux
scoop bucket add nhtera https://github.com/nhtera/scoop-bucket  # Windows
scoop install sonde
go install github.com/nhtera/sonde/cmd/sonde@v1.2.0

Changelog

Features

  • 64ab201 feat(grpc): call gRPC services from .sonde files
  • 4f0991e feat(mock): serve OpenAPI specs as HTTP mocks with sonde mock
  • 533a13f feat(stream): test Server-Sent Events and WebSocket in .sonde files

Bug fixes

  • 5027203 fix(stream): bound the WebSocket close handshake by closing the connection

Others

  • dc5095e ci: check the public API against v1.0.0
  • c4d1085 ci: leave extension and scoped docs/test commits out of CLI release notes
  • 5af437d ci: make the benchmark comparison run every tool
  • 746b266 ci: publish the extension with a locked vsce install