Panduan Lengkap Uji Integrasi API (Kode Siap Pakai Tersedia)

Oliver Kingsley

Oliver Kingsley

20 May 2025

Panduan Lengkap Uji Integrasi API (Kode Siap Pakai Tersedia)

Pengujian integrasi API memastikan bahwa berbagai API bekerja sama sesuai harapan. Pengujian ini memvalidasi bagaimana berbagai komponen berinteraksi, termasuk:

Tips profesional: Untuk pengujian integrasi API yang lancar, Apidog adalah platform pilihan Anda. Platform ini menyederhanakan proses simulasi alur kerja dunia nyata, memungkinkan Anda menguji interaksi berbagai API secara efisien.

button

Manfaat Utama Pengujian Integrasi API

  1. Keandalan & Akurasi Data: Memastikan data ditransfer dengan benar antar sistem dan API berfungsi dengan andal.
  2. Penanganan Kesalahan (Error Handling): Membantu mengidentifikasi dan mengatasi kesalahan, meningkatkan cara sistem bereaksi terhadap respons API yang bermasalah.
  3. Optimalisasi Kinerja: Membantu menemukan hambatan kinerja, terutama dalam menangani data dalam jumlah besar.
  4. Pemeliharaan Kompatibilitas: Memastikan pembaruan API baru tidak merusak sistem.
  5. Keamanan: Membantu mendeteksi kerentanan dan menjaga pertukaran data.

Pengujian Integrasi API vs Pengujian Unit

Langkah-Langkah Utama dalam Pengujian Integrasi API

  1. Mengembangkan Rencana Pengujian: Menguraikan tujuan dan skenario yang akan diuji.
  2. Membuat Kasus Uji (Test Cases): Membangun berbagai kasus untuk mencakup berbagai kasus penggunaan.
  3. Menjalankan Pengujian: Melaksanakan pengujian integrasi.
  4. Melacak, Melaporkan, dan Menyelesaikan Masalah: Mengidentifikasi masalah dari pengujian, menyelesaikannya, dan melacak kemajuan.
  5. Menguji Ulang (Retest): Memastikan perbaikan apa pun menyelesaikan masalah tanpa menimbulkan masalah baru.
  6. Mengulang: Terus meningkatkan integrasi hingga bebas dari bug.

Pengujian Integrasi API Menggunakan Apidog

Apidog secara signifikan merampingkan pengujian integrasi API dengan memungkinkan insinyur QA merancang dan melaksanakan skenario pengujian kompleks yang mensimulasikan alur kerja dunia nyata yang melibatkan banyak API.

Misalnya, dalam proses pembelian hewan peliharaan, di mana berbagai API berinteraksi—seperti menelusuri daftar hewan peliharaan, menambahkan item ke keranjang, melakukan pemesanan, melakukan pembayaran, dan menanyakan detail pesanan—Apidog memudahkan pengaturan pengujian yang saling terhubung ini.

using Apidog for API integration testing

Insinyur QA dapat membuat skenario dengan menghubungkan titik akhir API dan mentransfer data di antaranya, seperti meneruskan ID pesanan antara titik akhir "Buat Pesanan" dan titik akhir pembayaran serta kueri pesanan berikutnya. Penanganan data Apidog yang kuat memungkinkan hal ini baik dengan menyimpan ID pesanan sebagai variabel atau dengan langsung mereferensikan nilai kembalian dari langkah sebelumnya, merampingkan proses pengujian.

data-transferring-between-apis

Untuk operasi yang lebih kompleks, seperti tindakan massal seperti menambahkan banyak hewan peliharaan ke keranjang, loop ForEach Apidog menyederhanakan tugas dengan secara otomatis menyisipkan ID hewan peliharaan dari array ke setiap permintaan API.

Apidog ForEach loop for API integration testing

Setelah skenario pengujian dibuat dan dieksekusi, Apidog menghasilkan laporan pengujian terperinci, yang membantu insinyur QA dengan cepat mengidentifikasi dan memperbaiki masalah, memastikan bahwa semua API berfungsi dengan benar dalam alur kerja terpadu.

api-integration-report-generated-by-apidog

Dengan kemampuan pengujian integrasi Apidog, pengembang dapat secara efisien mensimulasikan tindakan pengguna nyata, menguji beberapa titik akhir secara bersamaan, dan memastikan pertukaran data yang mulus di seluruh API, menjadikannya platform pilihan untuk pengembangan, pengujian, dan integrasi API.

Pelajari bagaimana Apidog meningkatkan pengujian API dan meningkatkan efisiensi pengujian untuk insinyur QA.

Praktik Terbaik untuk Pengujian Integrasi API

  1. Menggunakan Pustaka Mocking: Gunakan pustaka seperti requests_mock untuk mensimulasikan interaksi jaringan. Ini mengisolasi pengujian dan mempercepat pengujian dengan menghindari panggilan API nyata.
  2. Penanganan Kesalahan: Uji bagaimana sistem Anda merespons berbagai kesalahan API (misalnya, 404, 500) untuk memastikan sistem tidak rusak.
  3. Menguji Nilai Batas (Boundary Values): Gunakan nilai ekstrem untuk menguji bagaimana sistem menanganinya.
  4. Kompatibilitas Mundur (Backward Compatibility): Pastikan perubahan API tidak merusak fungsionalitas Anda yang sudah ada.
  5. Data Realistis: Gunakan skenario realistis (misalnya, data pengguna nyata, harga akurat) untuk menguji bagaimana sistem akan berperilaku di dunia nyata.
  6. Memperbarui Pengujian: Seiring berkembangnya API, perbarui pengujian Anda agar tetap akurat dan andal.

Contoh Pengujian Integrasi API

Berikut adalah contoh praktis pengujian integrasi API menggunakan Python dan pustaka requests_mock.

Langkah 1: Menginstal Pustaka yang Dibutuhkan

pip install requests requests_mock

Langkah 2: Contoh Kode Integrasi API

Contoh ini menunjukkan cara mengintegrasikan dua API publik: satu untuk konversi mata uang dan satu untuk memeriksa ketersediaan produk berdasarkan kode pos.

import requests

def get_converted_price(product_price: int, conversion_currency: str) -> float:
    converted_price = None
    base_currency = "usd"
    api_url = f"https://cdn.jsdelivr.net/gh/fawazahmed0/currency-api@1/latest/currencies/{base_currency}/{conversion_currency.lower()}.json"

    try:
        resp = requests.get(api_url)
        if resp.ok:
            currency_data = resp.json()
            converted_price = product_price * currency_data[conversion_currency]
            print(f"Converted price: {round(converted_price, 2)} {conversion_currency.upper()}")
        else:
            print(f"Error: {resp.text}")
    except Exception as ex:
        print(f"Exception: {ex}")
    finally:
        return converted_price

def get_product_availability(zipcode: int) -> bool:
    availability = None
    api_url = f"https://api.zippopotam.us/us/{zipcode}"

    try:
        resp = requests.get(api_url)
        if resp.ok:
            zip_data = resp.json()
            state = zip_data["places"][0]["state"]
            availability = False if state in ["Texas", "California"] else True
            print(f"Availability in {state}: {availability}")
        else:
            print(f"Error: {resp.text}")
    except Exception as ex:
        print(f"Exception: {ex}")
    finally:
        return availability

Langkah 3: Menguji Integrasi API

Anda dapat membuat pengujian unit untuk memvalidasi integrasi menggunakan unittest dan requests_mock:

import unittest
import requests_mock
from api_integration import get_converted_price, get_product_availability

class TestAPIIntegrations(unittest.TestCase):

    def test_get_converted_price(self):
        test_data = {"usd": 82.6}
        expected_price = 8260
        with requests_mock.Mocker() as mock:
            mock.get("https://cdn.jsdelivr.net/gh/fawazahmed0/currency-api@1/latest/currencies/usd/inr.json", json=test_data)
            calculated_price = get_converted_price(100, "inr")
            self.assertEqual(calculated_price, expected_price)

    def test_get_converted_price_failure(self):
        with requests_mock.Mocker() as mock:
            mock.get("https://cdn.jsdelivr.net/gh/fawazahmed0/currency-api@1/latest/currencies/usd/inr.json", status_code=404)
            calculated_price = get_converted_price(100, "inr")
            self.assertIsNone(calculated_price)

    def test_get_product_availability_true(self):
        test_data = {"places": [{"state": "California"}]}
        with requests_mock.Mocker() as mock:
            mock.get("https://api.zippopotam.us/us/90210", json=test_data)
            availability = get_product_availability(90210)
            self.assertTrue(availability)

    def test_get_product_availability_false(self):
        test_data = {"places": [{"state": "Texas"}]}
        with requests_mock.Mocker() as mock:
            mock.get("https://api.zippopotam.us/us/75001", json=test_data)
            availability = get_product_availability(75001)
            self.assertFalse(availability)

    def test_get_product_availability_failure(self):
        with requests_mock.Mocker() as mock:
            mock.get("https://api.zippopotam.us/us/75001", status_code=500)
            availability = get_product_availability(75001)
            self.assertIsNone(availability)

if __name__ == '__main__':
    unittest.main(verbosity=2)

Langkah 4: Menjalankan Pengujian Integrasi API

Untuk menjalankan pengujian, gunakan perintah berikut di terminal Anda:

python api_integration_tests.py

Ini akan mengeksekusi semua pengujian dan menampilkan output terperinci dari setiap pengujian, termasuk apakah respons API tiruan (mock) ditangani dengan benar dan apakah hasil yang diharapkan terpenuhi.

Pikiran Akhir

Pengujian integrasi API memastikan bahwa API berfungsi bersama sebagaimana dimaksud. Dengan menggunakan pustaka mocking dan kasus uji yang komprehensif, Anda dapat secara efisien memverifikasi perilaku integrasi sistem Anda. Selalu pastikan pengujian Anda diperbarui seiring berkembangnya API Anda, dan pertimbangkan untuk mengimplementasikan pengujian otomatis untuk integrasi berkelanjutan.

Jika Anda ingin mengotomatiskan proses integrasi lebih lanjut, alat seperti Apidog menawarkan API terpadu untuk meningkatkan skala dan menguji integrasi dengan cepat.

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.