Help us improve
Share bugs, ideas, or general feedback.
From test-automation-skills-agents
Creates, runs, debugs API tests for REST/GraphQL endpoints using Playwright (TypeScript, Supertest, Zod) and REST Assured (Java). Validates schemas, authentication, contracts, error handling.
npx claudepluginhub fugazi/test-automation-skills-agents --plugin test-automation-skills-agentsHow this skill is triggered — by the user, by Claude, or both
Slash command
/test-automation-skills-agents:api-testingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Comprehensive API testing skill covering both Playwright TypeScript (request fixture, Supertest, Zod) and Java (REST Assured, AssertJ, JSON Schema Validator). Provides deep domain expertise for the `api-tester-specialist` agent.
Automates testing of REST/GraphQL API endpoints from OpenAPI specs: generates requests, validates schemas/responses, covers auth, CRUD, errors, idempotency. Supports Supertest, pytest, REST-assured.
Automates REST/GraphQL API tests using Postman/Newman, REST Assured, SuperTest, httpx. Handles Pact contract testing, OpenAPI/JSON Schema validation, WireMock/MSW mocks, performance baselines, auth tokens.
Build API test suites — endpoint testing, contract testing, load testing for REST/GraphQL/gRPC APIs. Use when asked to "test this API", "API tests", "endpoint testing", "contract tests", or "load test".
Share bugs, ideas, or general feedback.
Comprehensive API testing skill covering both Playwright TypeScript (request fixture, Supertest, Zod) and Java (REST Assured, AssertJ, JSON Schema Validator). Provides deep domain expertise for the api-tester-specialist agent.
| Stack | Requirements |
|---|---|
| TypeScript | Node.js 18+, @playwright/test or supertest, zod |
| Java | Java 21+, REST Assured 5.x, AssertJ, Jackson, json-schema-validator |
import { test, expect } from "@playwright/test";
test("GET /api/users returns 200 with valid schema", async ({ request }) => {
const response = await request.get("/api/users");
expect(response.ok()).toBeTruthy();
const body = await response.json();
expect(body).toMatchObject({ data: expect.any(Array) });
});
import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
import java.util.List;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
@Test
@DisplayName("GET /api/users returns 200 with valid schema")
void getUsers() {
String token = "test-token";
given()
.header("Authorization", "Bearer " + token)
.when()
.get("/api/users")
.then()
.statusCode(200)
.body("data", is(instanceOf(List.class)))
.body("data.size()", greaterThan(0));
}
Common shortcuts and "good enough" excuses that erode test quality — and the reality behind each.
| Rationalization | Reality |
|---|---|
| "Schema validation is overkill" | Without schema validation, a silent field rename becomes a production incident. Validate every response. |
| "Happy path testing is enough" | Error states (400, 401, 403, 404, 409, 500) are where real failures happen. Test all status codes. |
| "Auth tests can wait" | Unauthenticated access to protected endpoints is a security vulnerability, not a backlog item. |
| "This endpoint won't change" | APIs evolve. Contract tests catch breaking changes before they reach production. |
| "Manual API testing with Postman is sufficient" | Manual testing isn't repeatable, can't run in CI, and doesn't scale. Automate API tests. |
| "Idempotency doesn't matter" | Duplicate requests happen in production. Without idempotency testing, you get duplicate records and charges. |
| Document | Content |
|---|---|
| REST API Patterns | CRUD, pagination, filtering, error patterns |
| Playwright API Testing | Request fixture, Supertest, TypeScript patterns |
| REST Assured Testing | REST Assured, AssertJ, Java patterns |
| Schema Validation | Zod (TS), JSON Schema (Java), strict vs loose |
| Contract Testing | Request/response contracts, idempotency, versioning |
| Issue | Solution |
|---|---|
| 401 on authenticated endpoints | Verify token is fresh; check expiry; re-authenticate |
| Flaky API tests | Add retry logic; check for rate limiting; use unique test data |
| Schema validation too strict | Use .passthrough() (Zod) or additionalProperties: true for flexible fields |
| Timeout on slow endpoints | Increase timeout in request options; check for server load |
After completing this skill's workflow, confirm: