Mengapa API Testing Penting?
API (Application Programming Interface) merupakan komponen penting dalam pengembangan aplikasi modern. API memungkinkan komunikasi antar sistem, baik dalam satu aplikasi maupun antar platform yang berbeda. Oleh karena itu, melakukan API testing sangat diperlukan untuk memastikan API berfungsi dengan benar, aman, dan efisien. Dengan melakukan pengujian API yang menyeluruh, pengembang dapat menghindari bug yang dapat mengganggu pengalaman pengguna serta memastikan kualitas aplikasi tetap terjaga.
Manfaat API Testing
- Mendeteksi Bug Lebih Awal
Dengan API testing, bug dapat ditemukan sejak tahap awal pengembangan, sehingga mengurangi biaya perbaikan di tahap produksi. - Meningkatkan Keamanan
API sering digunakan untuk mengakses data sensitif, sehingga pengujian yang baik dapat membantu mengidentifikasi celah keamanan. - Meningkatkan Kinerja Aplikasi
Pengujian API dapat membantu mengoptimalkan waktu respons API serta menghindari masalah skalabilitas. - Memastikan Kompatibilitas Antar Sistem
API sering digunakan untuk menghubungkan berbagai sistem yang berbeda. Pengujian memastikan kompatibilitas API dengan berbagai platform. - Mengotomatiskan Pengujian
API testing dapat dengan mudah diotomatisasi menggunakan tools seperti Postman, Newman, atau Jest untuk meningkatkan efisiensi pengujian.
Checklist Testing API
Berikut beberapa aspek yang perlu diuji dalam API:
1. Basic API Testing
- Verifikasi bahwa API merespons dengan status code yang valid dan sesuai standard.
Pastikan bahwa setiap permintaan yang benar menghasilkan respons sukses tanpa error.
Contoh: Mengirim permintaan GET ke endpoint/users
dan memastikan bahwa responsnya memiliki status 200 OK. - Validasi waktu respons API dalam batas yang normal sesuai standard.
Pastikan API memberikan respons dalam waktu yang wajar agar tidak memperlambat aplikasi, biasanya di tahap deplovepment seringkali data yang kita gunakan tidak terlalu banyak sehingga rata-rata response time tidak terlalu lama. disini kita diharapkan agar lebih memperhatikan apakah data real di production itu akan sama atau jauh berbeda. Jika jauh berbeda perlu dilakukan testing dengan data yang banyak untuk menjamin jika fitur naik ke production tidak menyebabkan terjadi delay karena response time yang terlalu lama.
Contoh: Mengukur waktu respons API dan memastikan tidak melebihi 500ms untuk setiap permintaan. - Pastikan API mengembalikan data yang benar
Periksa apakah respons API sesuai dengan format yang diharapkan dan sesuai dengan requirement. Kita dapat memastikan setiap data yang tampil pada response sudah sesuai.
Contoh: Jika API seharusnya mengembalikan JSON, pastikan respons memiliki headerContent-Type: application/json
dan data dalam format JSON yang valid. - Test API dengan parameter yang tidak lengkap dan periksa apakah menangani kesalahan dengan baik.
Pastikan API memberikan pesan error yang jelas jika parameter wajib tidak disertakan.
Contoh: Mengirim permintaan POST tanpa parameter yang diperlukan dan memeriksa apakah API mengembalikan kode status 400 Bad Request. - Coba gunakan nilai parameter yang tidak valid dan validasi penanganan error.
Pastikan API menangani input yang salah dengan baik tanpa menyebabkan error yang tidak terduga.
Contoh: Mengirimkan karakter alfanumerik ke parameter yang seharusnya berupa angka dan memastikan API merespons dengan pesan error yang tepat. - Verifikasi response headers (misalnya, Content-Type, Cache-Control).
Pastikan API mengembalikan header yang sesuai dengan kebutuhan aplikasi.
Contoh: Memeriksa apakah respons API memiliki headerCache-Control: no-cache
untuk menghindari data expired atau data yang salah. - Pastikan API mendukung CORS (Cross-Origin Resource Sharing).
CORS diperlukan jika API akan digunakan oleh klien dari domain yang berbeda.
Contoh: Menggunakan alat seperti Postman atau browser dev tools untuk memeriksa apakah API mengembalikan headerAccess-Control-Allow-Origin: *
. - Periksa otentikasi dan otorisasi untuk memastikan API tidak dapat diakses sesuai ketentuan / role.
Pastikan API hanya bisa diakses oleh pengguna yang memiliki hak akses.
Contoh: Mengirim permintaan ke endpoint yang dilindungi tanpa token autentikasi dan memastikan API mengembalikan status 401 Unauthorized. - Pastikan response API mengembalikan format waktu yang benar.
seringkali api mengembalikan response data yang berkaitan dengan waktu. Kita harus memastikan waktu ini sesuai dengan kebutuhan dan menjaga konsistensi data. Apakah data waktu ini akan di proses terlebih dahulu di Frontend atau langsung ditampilkan.
Contoh: Memeriksa apakah respons API menyertakan data danggal dan waktu yang tepat. - Validasi bahwa API mendukung pagination untuk dataset yang besar.
Pastikan API menyediakan mekanisme pagination untuk menangani data dalam jumlah besar.
Contoh: Mengirim permintaan GET ke endpoint/users?page=1&limit=10
dan memastikan bahwa hanya 10 data yang dikembalikan dalam satu respons.
Dengan menerapkan metode pengujian yang sistematis dan menggunakan alat otomatisasi, API testing dapat membantu meningkatkan kualitas aplikasi secara signifikan. Hal ini tidak hanya mengurangi risiko bug di production tetapi juga meningkatkan keamanan dan performa aplikasi.
Baca part 2 Testing Api Authentication & authorization.
Jenis-Jenis Testing API: Functional, Integration, dan E2E - Panduan QA
16 March 2025[…] 7. Perbandingan Functional, Integration, dan E2E Testing […]