Wednesday, 2 July 2025
QA

Jenis-Jenis Testing API: Functional, Integration, dan E2E

1. Pendahuluan

API (Application Programming Interface) adalah komponen krusial dalam pengembangan aplikasi modern, memungkinkan komunikasi antara sistem yang berbeda. Oleh karena itu, testing API sangat penting untuk memastikan kualitas, keandalan, dan keamanan aplikasi. Artikel ini akan membahas tiga jenis utama testing API: Functional, Integration, dan End-to-End (E2E) menggunakan Postman.

2. Testing Fungsional (Functional Testing)

Definisi dan Tujuan

Functional Testing bertujuan untuk menguji setiap endpoint API secara individual guna memastikan bahwa ia memberikan respons yang benar berdasarkan input yang diberikan.

Contoh Kasus Testing

  • Validasi status kode respons (200, 400, 500, dll.).
  • Verifikasi format dan isi respons JSON atau XML.
  • Testing skenario positif dan negatif.
  • Testing validasi input data.

Implementasi dengan Postman

  1. Membuat Request: Buka Postman, buat request baru ke endpoint API yang ingin diuji.
  2. Menambahkan Assertion dengan Test Script:
    • Klik tab Tests di Postman dan tambahkan script untuk validasi respons.
pm.test("Status code should be 200", function () {
    pm.response.to.have.status(200);
});

pm.test("Response should be JSON", function () {
    pm.response.to.be.json;
});
  1. Menjalankan Uji Coba: Klik Send dan lihat hasilnya pada tab Test Results.

3. Testing Integrasi (Integration Testing)

Definisi dan Tujuan

Integration Testing menguji interaksi antara beberapa modul atau layanan API untuk memastikan bahwa data dapat mengalir dengan benar di antara mereka.

Contoh Kasus Testing

  • Integrasi API pembayaran dengan API pemesanan.
  • Verifikasi bahwa data dikirim dari satu API ke API lain dengan benar.
  • Testing interaksi antara layanan microservices.

Implementasi dengan Postman

  1. Gunakan Environments: Simpan URL API dan variabel lain dalam Postman Environments untuk kemudahan testing.
  2. Menggunakan Chained Requests:
    • Ambil data dari satu request dan gunakan di request berikutnya.
pm.test("Save token for next request", function () {
    pm.environment.set("authToken", pm.response.json().token);
});
  1. Menjalankan Uji Coba dengan Collection Runner atau Postman Monitors.

4. Testing End-to-End (E2E Testing)

Definisi dan Tujuan

E2E Testing mensimulasikan skenario pengguna nyata untuk memastikan bahwa seluruh sistem bekerja dari awal hingga akhir.

Contoh Kasus Testing

  • Alur pembelian produk dalam aplikasi e-commerce.
  • Proses registrasi dan verifikasi email pengguna.
  • Testing skenario bisnis yang kompleks.

Implementasi dengan Postman

  1. Membuat Collection berisi semua request yang diperlukan untuk skenario testing.
  2. Menjalankan Collection dengan Collection Runner untuk mengotomatisasi testing.
  3. Menggunakan Newman (CLI Postman) untuk menjalankan testing dalam pipeline CI/CD.
newman run api-tests.postman_collection.json -e staging.postman_environment.json

5. Studi Kasus: Testing API E-Commerce dengan Postman

Dalam studi kasus ini, kita akan menguji API e-commerce yang melibatkan skenario pembelian produk, mulai dari pencarian produk hingga pembayaran.

Skenario Testing

  1. Pencarian Produk:
    • Endpoint: GET /products?search=laptop
    • Validasi: Pastikan respons berisi daftar produk yang sesuai dengan kata kunci.
  2. Menambahkan Produk ke Keranjang:
    • Endpoint: POST /cart
    • Body:
    { "product_id": "123", "quantity": 1 }
    • Validasi: Pastikan produk berhasil ditambahkan ke keranjang.
  3. Checkout dan Pembayaran:
    • Endpoint: POST /checkout
    • Body:
    { "cart_id": "456", "payment_method": "credit_card" }
    • Validasi: Pastikan transaksi berhasil dengan status “paid”.
  4. Verifikasi Status Pesanan:
    • Endpoint: GET /orders/{order_id}
    • Validasi: Pastikan pesanan memiliki status “processed”.

Implementasi dalam Postman

  • Buat Collection berisi request untuk setiap langkah di atas.
  • Gunakan Chained Requests untuk mengambil order ID dari respons checkout dan menggunakannya dalam request berikutnya.
  • Tambahkan Test Script untuk validasi otomatis.
pm.test("Order status should be processed", function () {
    pm.response.to.have.jsonBody("status", "processed");
});

6. Testing Keamanan API

Keamanan adalah aspek penting dalam API testing. Beberapa elemen utama yang harus diuji meliputi otentikasi dan otorisasi.

6.1 Testing Otentikasi

  • Validasi Token:
    • Pastikan API menolak akses tanpa token atau dengan token yang tidak valid.
pm.test("Unauthorized requests should return 401", function () {
    pm.response.to.have.status(401);
});
  • Pengujian Expired Token:
    • Uji skenario di mana token kedaluwarsa dan pastikan API mengembalikan status yang sesuai.

6.2 Testing Otorisasi

  • Akses Data Sesuai Role:
    • Pastikan pengguna dengan peran tertentu hanya dapat mengakses data yang relevan.
pm.test("Admin users should have access", function () {
    pm.response.to.have.status(200);
    pm.response.to.have.jsonBody("role", "admin");
});
  • Mencegah Akses Tidak Sah:
    • Uji skenario di mana pengguna mencoba mengakses data milik pengguna lain.
pm.test("Users should not access other user's data", function () {
    pm.response.to.have.status(403);
});

7. Perbandingan Functional, Integration, dan E2E Testing

AspekFunctional TestingIntegration TestingE2E Testing
FokusSatu endpoint APIInteraksi antar modulKeseluruhan sistem
KecepatanCepatSedangLambat
KetergantunganTidak adaAPI internalAPI & UI eksternal
TujuanValidasi fitur APIValidasi koneksi antar bagianValidasi user flow

8. Kesimpulan

Postman menyediakan solusi lengkap untuk testing API, dari Functional Testing, Integration Testing, hingga E2E Testing. Dengan menggunakan fitur-fitur seperti scripting, environments, dan Newman, pengembang dapat meningkatkan efisiensi dan keandalan testing API.


Semoga artikel ini membantu dalam memahami pentingnya testing API ! 🚀

Fredy Siswanto

Fredy Siswanto

About Author

0 Comments

  1. Perbedaan Test Case dan Test Scenario dalam Testing API - Panduan QA

    18 March 2025

    […] Mengapa test case ini selalu ada?Karena test case tersebut menguji fungsionalitas dasar API login, sehingga harus diuji dalam Functional, Integration, dan E2E Testing. […]

  2. Sanity Testing API - Panduan QA

    18 March 2025

    […] Functional Testing […]

Leave a Reply

Your email address will not be published. Required fields are marked *

You may also like