// Interview Prep/Prep plans/14-Day API Tester Prep Plan

๐Ÿ—“๏ธ 14-Day API Tester Prep Plan

Mid-to-senior API testers preparing for a structured interview loop. Assumes you can read code and have used a REST client before โ€” this plan sharpens your API testing instincts, builds coded interview-ready artefacts, and targets the specific question banks interviewers use for API testing and automation rounds.

14 days~1โ€“2 hrs/dayยทapi tester role page โ†’

// GOAL

Arrive at the API Tester interview with a coded test suite on GitHub, a green CI pipeline, and confident answers to questions on REST fundamentals, schema validation, REST Assured, Karate, and contract testing.

Phases01020304

// THE PLAN

01Days 1โ€“3 โ€” API fundamentals

Build a precise mental model of HTTP and REST before touching any tool

// STUDY

  • HTTP methods: GET, POST, PUT, PATCH, DELETE โ€” idempotency and safety rules, and why the distinction matters when designing test cases for a badly behaved API
  • Status code semantics: 200, 201, 204, 400, 401, 403, 404, 409, 422, 500 โ€” what each code means for the client and the specific test assertion it demands
  • REST constraints: statelessness, uniform interface, resource naming conventions โ€” what makes an API design testable versus painful to test
  • Authentication mechanisms: API keys, Bearer tokens, OAuth 2.0 (client credentials and authorisation code flows), session cookies โ€” what each means for test setup and token refresh handling

// PRACTISE

  • Read the API Tester role page and map each listed skill to a question bank topic โ€” this becomes your study tracker for Days 12โ€“14
  • Using only curl or a REST client (Postman, Bruno, or Insomnia), call 3 endpoints on a public API (e.g. jsonplaceholder.typicode.com): GET a collection, GET a single resource, POST a new resource โ€” record every status code, response header, and body field, and write one sentence explaining what each means
  • Write 5 test conditions for a PATCH endpoint that updates a user's email: happy path (200 + body), malformed JSON body (400), missing Authorization header (401), resource not found (404), and email already taken (409)

Deliverable

A completed skill-to-topic map and 5 written test conditions for the PATCH endpoint โ€” use these as the foundation for the collection you build in Days 4โ€“7.

02Days 4โ€“7 โ€” Hands-on testing

Build and run a fully asserted API collection with negative cases and request chaining

// STUDY

  • Postman collections: request organisation, environments and variables, test scripts with pm.expect(), pm.response.to.have.status(), Newman CLI for running collections in CI
  • JSON schema validation: required fields, type checks, pattern matching, enum values, additionalProperties: false โ€” how to validate that a response body matches a documented contract
  • Negative case design: malformed payloads, out-of-range values, missing required fields, wrong Content-Type header, expired or stale tokens โ€” each deserves its own assertion, not just a status code check
  • Request chaining: extracting a resource ID or auth token from one response using pm.environment.set() or a variable, and passing it as a path parameter or header into the next request

// PRACTISE

  • Build a Postman collection against reqres.in or jsonplaceholder.typicode.com: GET list โ†’ GET single โ†’ POST create โ†’ DELETE, with pm.expect() assertions on status code, body shape, and at least one response header for each request
  • Add 3 negative tests: a request with a missing required field (expect 422 or 400), a request with an invalid auth token (expect 401), and a request with an out-of-range value (expect 400 or 422) โ€” assert the correct status code and a meaningful error message in the body
  • Chain 3 requests: POST to create a resource, extract the returned ID, use it in a GET to retrieve the same resource, then DELETE it and assert 200 or 204

Deliverable

A Postman collection committed to GitHub covering at least 8 assertions across happy path, negative cases, and a chained create โ†’ retrieve โ†’ delete flow โ€” all passing.

03Days 8โ€“11 โ€” Automation

Write coded API tests and run the full suite in a GitHub Actions pipeline

// STUDY

  • REST Assured: given/when/then DSL, path and query parameter injection, response body extraction with JsonPath, schema validation using the json-schema-validator library, and response time assertions
  • Karate DSL: feature file syntax, background section for shared auth setup, call expressions for reusable flows, data tables for parameterised requests, built-in response matching with match and contains
  • Data-driven API tests: loading test data from a CSV or JSON file and running the same assertion logic across multiple input payloads โ€” one failing row should not block the rest
  • CI integration: running REST Assured (Maven/Gradle) or Karate tests in a GitHub Actions workflow, triggering on push, publishing the Surefire or Allure HTML report as a downloadable artifact

// PRACTISE

  • Write a REST Assured or Karate test suite covering the same flows as your Postman collection: at minimum, GET list with schema assertion, POST create with body extraction, DELETE and verify 404 on subsequent GET
  • Add one data-driven test: the same endpoint, 3 different request payloads in a data table or CSV, each with a distinct expected HTTP status code โ€” assert status and body for each row
  • Set up a GitHub Actions workflow that installs dependencies, runs the full suite on push, and uploads the HTML report as an artifact โ€” trigger a deliberate failure and fix it from the Actions log alone without running locally

Deliverable

A REST Assured or Karate test suite with at least one data-driven test, running in a green GitHub Actions pipeline with a downloadable HTML report artifact.

04Days 12โ€“14 โ€” Review and mock

Consolidate gaps, tackle contract testing concepts, and simulate the interview

// STUDY

  • REST Assured bank: focus on JsonPath extraction, schema validation, response time assertions, authentication setup (given header, OAuth helper), and common DSL mistakes
  • Karate bank: feature file structure, call patterns, background fixtures, data tables, and the difference between match, contains, and each
  • Contract testing fundamentals: consumer-driven contracts, Pact terminology (consumer, provider, pact file, pact broker), and when Pact adds value over schema validation alone โ€” senior interviewers test this
  • Behavioural bank: an API breaks backward compatibility mid-sprint, a service returns inconsistent status codes, a bug only appears under load โ€” practise structured STAR answers

// PRACTISE

  • Answer 10 questions aloud from the API, REST Assured, and Karate question banks โ€” time yourself at 90 seconds per answer and flag every question where you stalled
  • Identify your 5 weakest answers and write a worked example for each, drawing on the test suite you built in Days 4โ€“11
  • Run a 30-minute timed mock: given an OpenAPI spec for an endpoint you have not seen before, produce a written test plan โ€” which cases to automate first, which to leave exploratory, and how you would structure the suite

Deliverable

A written test plan from the mock exercise, plus worked answers to your 5 weakest questions drawing on the suite you built during the plan.

05Day 14 โ€” Mock task

Capstone: simulate the technical interview task

Mock task

Set a 45-minute timer. You receive a Swagger spec for a new Orders API with 4 endpoints: POST /orders (create an order), GET /orders/{id} (retrieve), PATCH /orders/{id}/status (update the order status), DELETE /orders/{id} (cancel). Part 1 (25 minutes): on paper or in a document, produce a prioritised test case list covering happy paths, 4xx error scenarios, boundary conditions on the order amount field, and one chained flow (create โ†’ retrieve โ†’ update status โ†’ cancel). For the PATCH endpoint, design a data-driven test showing how you would parameterise across 4 valid status transitions and at least 2 invalid ones. Part 2 (15 minutes): justify your automation choices โ€” which cases you would automate in REST Assured or Karate, which you would leave as Postman checks, and which you would leave exploratory. Include a one-paragraph CI integration plan: what triggers the suite, how failures surface, and how the HTML report reaches the team. Use the final 5 minutes to write a 3-sentence summary a product manager could act on.