A Go-based REST API testing framework inspired by frisby-js, featuring a fluent interface for building and validating HTTP requests.
Frisby is a REST API testing framework written in Go, inspired by the JavaScript library frisby-js. It provides a fluent, chainable interface for building HTTP requests, setting headers and parameters, sending requests, and validating responses with assertions on status codes, JSON content, and headers. It solves the problem of writing verbose and repetitive API test code by offering a clean, expressive syntax.
Go developers and QA engineers who need to test RESTful APIs, particularly those looking for a lightweight, code-based alternative to GUI tools or more complex testing suites.
Developers choose Frisby for its straightforward, idiomatic Go API that reduces boilerplate, its comprehensive assertion library for validating API responses, and its ability to integrate seamlessly into Go projects without external dependencies.
API testing framework inspired by frisby-js
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Methods like Get().SetHeader().Send().ExpectStatus() allow building readable and maintainable test cases, as demonstrated in the basic usage examples for clear request chaining.
Includes ExpectStatus, ExpectJson, ExpectJsonLength, and post-flight hooks for validating HTTP responses, shown in examples that test status codes, JSON paths, and content types.
The frisby.Global object enables setting persistent authentication, headers, and options across tests, reducing boilerplate for repeated pre-flight settings.
AfterJson, AfterText, and AfterContent callbacks allow custom logic after responses, providing flexibility for complex scenarios like extracting values for subsequent requests.
The README lists reading specification files (e.g., Swagger) as a proposal, so it lacks native integration for API specs, requiring manual test writing instead of automated generation.
Load testing features are proposed but not implemented, making it unsuitable for performance testing out of the box, unlike tools like Locust.io.
Compared to more established frameworks, Frisby has fewer stars, contributors, and third-party integrations, which could impact long-term support and feature development.
Relies on github.com/bitly/go-simplejson for JSON handling, which might introduce compatibility issues or limitations compared to using standard Go libraries directly.