Menguasai API testing dasar menggunakan Postman termasuk REST concepts, HTTP methods, status codes, dan assertions

Setelah di episode 8 kita mempelajari defect reporting & lifecycle, pada episode ini kita mempelajari API testing dasar — bagaimana menguji REST API menggunakan Postman. API testing penting karena banyak bug backend tidak terlihat di UI tapi bisa ditemukan melalui testing API langsung.
Mengapa API testing penting? Karena API adalah jantung aplikasi modern. Jika API bermasalah, UI tidak akan berfungsi dengan benar meskipun UI-nya sempurna. API testing memungkinkan kalian menemukan bug backend sebelum UI diuji.
| Method | Fungsi | Contoh |
|---|---|---|
| GET | Ambil data | GET /api/users |
| POST | Buat data baru | POST /api/users |
| PUT | Update data | PUT /api/users/1 |
| PATCH | Update sebagian | PATCH /api/users/1 |
| DELETE | Hapus data | DELETE /api/users/1 |
Status Codes:
├── 2xx Success:
│ ├── 200 OK: Request berhasil
│ ├── 201 Created: Data berhasil dibuat
│ └── 204 No Content: Berhasil, tanpa response body
├── 4xx Client Error:
│ ├── 400 Bad Request: Request tidak valid
│ ├── 401 Unauthorized: Tidak terotentikasi
│ ├── 403 Forbidden: Tidak punya akses
│ ├── 404 Not Found: Resource tidak ditemukan
│ └── 422 Unprocessable Entity: Validasi gagal
└── 5xx Server Error:
├── 500 Internal Server Error: Error di server
├── 502 Bad Gateway: Gateway error
└── 503 Service Unavailable: Service downPostman Setup:
├── 1. Install Postman
├── 2. Buat Collection baru
│ └── Nama: "API Testing - User Management"
├── 3. Buat Environment
│ ├── Variables:
│ │ ├── baseUrl: https://api.example.com
│ │ ├── authToken: (akan diisi setelah login)
│ │ └── userId: (akan diisi setelah create)
│ └── Gunakan variable untuk reuse
└── 4. Buat Request pertamaGET Request - Ambil semua users:
├── Method: GET
├── URL: {{baseUrl}}/api/users
├── Headers:
│ └── Authorization: Bearer {{authToken}}
└── Expected: 200 OK, array of usersPOST Request - Buat user baru:
├── Method: POST
├── URL: {{baseUrl}}/api/users
├── Headers:
│ ├── Authorization: Bearer {{authToken}}
│ └── Content-Type: application/json
├── Body (raw JSON):
│ {
│ "name": "John Doe",
│ "email": "john@test.com",
│ "password": "Password123!"
│ }
└── Expected: 201 Created, user object// Test status code
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
// Test response time
pm.test("Response time is less than 500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
// Test response body
pm.test("Response has users array", function () {
const data = pm.response.json();
pm.expect(data).to.have.property("users");
pm.expect(data.users).to.be.an("array");
});
// Test specific field
pm.test("First user has name", function () {
const data = pm.response.json();
pm.expect(data.users[0]).to.have.property("name");
});Postman Test Flow:
├── 1. Login → Save authToken
├── 2. Create user → Save userId
├── 3. Get user by id → Verify data
├── 4. Update user → Verify changes
├── 5. Delete user → Verify deletion
└── Each step depends on previousNote
Postman memungkinkan chaining request dengan menggunakan variables. Setelah login, simpan authToken dan gunakan di request berikutnya. Ini memungkinkan test flow yang realistis.
API Test Suite - User Management:
├── TC-API-001: Get all users
│ ├── Request: GET /api/users
│ ├── Expected: 200, array of users
│ └── Priority: High
├── TC-API-002: Create user
│ ├── Request: POST /api/users (valid data)
│ ├── Expected: 201, user object
│ └── Priority: High
├── TC-API-003: Create user with duplicate email
│ ├── Request: POST /api/users (existing email)
│ ├── Expected: 422, validation error
│ └── Priority: High
├── TC-API-004: Get user by id
│ ├── Request: GET /api/users/1
│ ├── Expected: 200, user object
│ └── Priority: Medium
├── TC-API-005: Update user
│ ├── Request: PUT /api/users/1 (new data)
│ ├── Expected: 200, updated user
│ └── Priority: Medium
└── TC-API-006: Delete user
├── Request: DELETE /api/users/1
├── Expected: 204, no content
└── Priority: MediumBest Practices:
├── 1. Testhappy path DAN error cases
│ └── Jangan hanya test success scenario
├── 2. Validate status codes
│ └── Pastikan response code sesuai
├── 3. Validate response body
│ └── Pastikan data sesuai yang diharapkan
├── 4. Test edge cases
│ ├── Empty fields
│ ├── Maximum length
│ └── Special characters
├── 5. Test authentication & authorization
│ ├── Tanpa token
│ ├── Invalid token
│ └── Token dengan role berbeda
└── 6. Test performance
└── Response time harus acceptableTip
API testing lebih cepat dan lebih reliable daripada UI testing. Gunakan API testing untuk testing backend, dan UI testing untuk testing user experience.
Pada episode 9 ini, kalian telah mempelajari API testing dasar menggunakan Postman.
Inti yang harus dibawa pulang:
Di episode 10 selanjutnya, kita akan membahas database & SQL testing — bagaimana menguji data integrity dan backend verification menggunakan SQL queries. Sampai jumpa di episode 10!