a11y-playwright-testin…
Accessibility testing for web applications using Playwright (@playwright/test), TypeScript, and axe-core. Use to write, run, or debug WCAG 2.2 AA checks,…
Test REST and GraphQL endpoint contracts using Playwright request fixture (TypeScript) or REST Assured (Java). Use for standalone API tests covering schemas, auth, status/error handling, pagination, idempotency, rate limits, or contract checks; not for browser E2E specs.
$ npx -y skills add fugazi/test-automation-skills-agents --skill api-testing --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/api-testingContext preview
The summary Claude sees to decide when to auto-load this skill.
Test REST and GraphQL endpoint contracts using Playwright request fixture (TypeScript) or REST Assured (Java). Use for standalone API tests covering schemas, auth, status/error handling, pagination, idempotency, rate limits, or contract checks; not for browser E2E specs.
name: api-testing description: 'Test REST and GraphQL endpoint contracts using Playwright request fixture (TypeScript) or REST Assured (Java). Use for standalone API tests covering schemas, auth, status/error handling, pagination, idempotency, rate limits, or contract checks; not for browser E2E specs. Keywords: REST, GraphQL, API contract, schema validation, REST Assured.' license: 'Complete terms in LICENSE.txt'
Comprehensive API testing skill covering both Playwright TypeScript (request fixture, Supertest, Zod) and Java (REST Assured, AssertJ, JSON Schema Validator).
| Stack | Requirements | | ---------- | --------------------------------------------------------------------- | | TypeScript | Node.js 18+, `@playwright/test` or `supertest`, `zod` | | Java | Java 21+, REST Assured 5.x, AssertJ, Jackson, `json-schema-validator` |
1. **Schema validation on every response** — never trust an unvalidated response 2. **Test all HTTP status codes** — happy path AND error states 3. **Auth testing is mandatory** — verify 401/403 for protected endpoints 4. **Data-driven** — test with valid, invalid, boundary, and empty values 5. **Stateless where possible** — each test cleans up or uses unique data
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));
}---
Stop and reconsider if you see any of these in generated API tests:
---
| Document | Content | | ---------------------------------------------------------------- | --------------------------------------------------- | | [REST API Patterns](./references/rest-api-patterns.md) | CRUD, pagination, filtering, error patterns | | [Playwright API Testing](./references/playwright-api-testing.md) | Request fixture, Supertest, TypeScript patterns | | [REST Assured Testing](./references/rest-assured-testing.md) | REST Assured, AssertJ, Java patterns | | [Schema Validation](./references/schema-validation.md) | Zod (TS), JSON Schema (Java), strict vs loose | | [Contract Testing](./references/contract-testing.md) | 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 |
---
A practical library of agents, instructions, and skills designed specifically for QA Automation Engineers, focusing on production-oriented solutions.
Repo: fugazi/test-automation-skills-agents
Accessibility testing for web applications using Playwright (@playwright/test), TypeScript, and axe-core. Use to write, run, or debug WCAG 2.2 AA checks,…
Accessibility testing toolkit using Selenium WebDriver 4+ with Java 21+ and axe-core engine. Use when asked to validate WCAG 2.2 AA compliance, scan pages or…
A guided interview to challenge and validate QA automation plans, test strategies, and framework designs before implementation. Use when the user wants to…
Drive a live browser from the CLI with playwright-cli to navigate, interact, snapshot, and capture evidence. Use for ad-hoc browser commands, page inspection,…
Author and maintain versioned Playwright (@playwright/test) TypeScript UI specs for browser user flows. Use when asked to create, run, debug, or refactor E2E…
Govern Playwright TypeScript regression suites across many tests. Use when asked to plan, select, tier, execute, or optimize suites with risk/change analysis,…