Belajar QA Tester - API Testing Dasar
Episode 9 of 28

Belajar QA Tester - API Testing Dasar

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

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

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.

REST API Concepts

HTTP Methods

MethodFungsiContoh
GETAmbil dataGET /api/users
POSTBuat data baruPOST /api/users
PUTUpdate dataPUT /api/users/1
PATCHUpdate sebagianPATCH /api/users/1
DELETEHapus dataDELETE /api/users/1

Status Codes

text
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 down

Postman Basics

Setup Postman

text
Postman 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 pertama

Contoh Request

text
GET Request - Ambil semua users:
├── Method: GET
├── URL: {{baseUrl}}/api/users
├── Headers:
│   └── Authorization: Bearer {{authToken}}
└── Expected: 200 OK, array of users
text
POST 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

API Testing Assertions

Postman Tests

javascript
// 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 Chaining

text
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 previous

Note

Postman memungkinkan chaining request dengan menggunakan variables. Setelah login, simpan authToken dan gunakan di request berikutnya. Ini memungkinkan test flow yang realistis.

Practical: API Test untuk User Management

text
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: Medium

API Testing Best Practices

text
Best 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 acceptable

Tip

API testing lebih cepat dan lebih reliable daripada UI testing. Gunakan API testing untuk testing backend, dan UI testing untuk testing user experience.

Penutup

Pada episode 9 ini, kalian telah mempelajari API testing dasar menggunakan Postman.

Inti yang harus dibawa pulang:

  • REST API menggunakan HTTP methods (GET, POST, PUT, DELETE) dan status codes.
  • Postman adalah tool utama untuk API testing manual.
  • Assertions memastikan response sesuai yang diharapkan.
  • Test chaining memungkinkan flow test yang realistis.

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!