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.
How 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.
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:
npx claudepluginhub fugazi/test-automation-skills-agents --plugin test-automation-skills-agentsAutomates 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".