Repository navigation
v1.2.0
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 withsend,receiveandclosesteps. The
sondeStreamquery 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.protofiles, descriptor sets or
server reflection. ThesondeGrpcquery 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.0Changelog
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