An HTTP-based API testing tool for Erlang that executes sequential requests and validates responses.
KATT is an HTTP-based API testing tool primarily for Erlang, but also usable as a standalone CLI tool. It allows developers to define and run sequential HTTP requests, validating responses against expected outcomes to ensure API correctness. It solves the problem of automating and verifying API interactions in a structured, repeatable manner.
Erlang developers and engineers who need to test HTTP APIs, as well as DevOps or QA professionals looking for a lightweight CLI-based API testing tool.
Developers choose KATT for its tight integration with Erlang ecosystems, flexible validation capabilities with runtime code execution, and dual usability as both a library and CLI tool, making it versatile for different testing workflows.
KATT (Klarna API Testing Tool) is an HTTP-based API testing tool for Erlang.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports runtime_value and runtime_validation extensions to execute Erlang or shell code during validation, enabling dynamic checks based on live data or complex logic.
Uses tags like {{_}} for wildcard matching and {{expected}} for existence checks, simplifying validation of variable or optional response fields without rigid schemas.
Can be run as a CLI tool, Erlang library, or Docker container, offering flexibility for local development, automation scripts, and CI/CD pipelines.
Converts HTTP Archive (HAR) files into APIB blueprints, allowing easy test generation from browser sessions or existing logs, as shown in the README examples.
Only natively validates JSON and URL-encoded responses; adding XML support requires implementing custom Erlang callbacks, as admitted in the README.
Even as a CLI tool, it depends on Erlang dependencies or Docker, which can be cumbersome for teams unfamiliar with Erlang or seeking minimal setup.
Extending functionality, such as adding new validation types or transforms, necessitates writing Erlang code, posing a barrier for non-Erlang developers.