Pengujian integrasi API memastikan bahwa berbagai API bekerja sama sesuai harapan. Pengujian ini memvalidasi bagaimana berbagai komponen berinteraksi, termasuk:
- Autentikasi API
- Pagination
- Pembatasan Tingkat (Rate Limiting)
- Badan Respons (Response Bodies)
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.
Manfaat Utama Pengujian Integrasi API
- Keandalan & Akurasi Data: Memastikan data ditransfer dengan benar antar sistem dan API berfungsi dengan andal.
- Penanganan Kesalahan (Error Handling): Membantu mengidentifikasi dan mengatasi kesalahan, meningkatkan cara sistem bereaksi terhadap respons API yang bermasalah.
- Optimalisasi Kinerja: Membantu menemukan hambatan kinerja, terutama dalam menangani data dalam jumlah besar.
- Pemeliharaan Kompatibilitas: Memastikan pembaruan API baru tidak merusak sistem.
- Keamanan: Membantu mendeteksi kerentanan dan menjaga pertukaran data.
Pengujian Integrasi API vs Pengujian Unit
- Pengujian Unit: Menguji komponen atau fungsi individual secara terpisah.
- Pengujian Integrasi: Menguji bagaimana berbagai komponen (termasuk API) bekerja sama. Pengujian ini memverifikasi bahwa integrasi API berfungsi secara keseluruhan.
Langkah-Langkah Utama dalam Pengujian Integrasi API
- Mengembangkan Rencana Pengujian: Menguraikan tujuan dan skenario yang akan diuji.
- Membuat Kasus Uji (Test Cases): Membangun berbagai kasus untuk mencakup berbagai kasus penggunaan.
- Menjalankan Pengujian: Melaksanakan pengujian integrasi.
- Melacak, Melaporkan, dan Menyelesaikan Masalah: Mengidentifikasi masalah dari pengujian, menyelesaikannya, dan melacak kemajuan.
- Menguji Ulang (Retest): Memastikan perbaikan apa pun menyelesaikan masalah tanpa menimbulkan masalah baru.
- 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.

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.

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.

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.

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.
Praktik Terbaik untuk Pengujian Integrasi API
- Menggunakan Pustaka Mocking: Gunakan pustaka seperti
requests_mock
untuk mensimulasikan interaksi jaringan. Ini mengisolasi pengujian dan mempercepat pengujian dengan menghindari panggilan API nyata. - Penanganan Kesalahan: Uji bagaimana sistem Anda merespons berbagai kesalahan API (misalnya, 404, 500) untuk memastikan sistem tidak rusak.
- Menguji Nilai Batas (Boundary Values): Gunakan nilai ekstrem untuk menguji bagaimana sistem menanganinya.
- Kompatibilitas Mundur (Backward Compatibility): Pastikan perubahan API tidak merusak fungsionalitas Anda yang sudah ada.
- Data Realistis: Gunakan skenario realistis (misalnya, data pengguna nyata, harga akurat) untuk menguji bagaimana sistem akan berperilaku di dunia nyata.
- 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.