Sebelum pergi ke tutorial Pengujian API, mari kita pahami terlebih dahulu
Apa itu API?
API (Application Programming Interface) adalah antarmuka komputasi yang memungkinkan komunikasi dan pertukaran data antara dua sistem perangkat lunak terpisah. Sistem perangkat lunak yang menjalankan API mencakup beberapa fungsi / subrutin yang dapat dilakukan oleh sistem perangkat lunak lain. API mendefinisikan permintaan yang dapat dibuat, cara membuat permintaan, format data yang dapat digunakan, dll antara dua sistem perangkat lunak.
Apa itu Pengujian API?
API TESTING adalah jenis pengujian perangkat lunak yang memvalidasi Antarmuka Pemrograman Aplikasi (API). Tujuan Pengujian API adalah untuk memeriksa fungsionalitas, keandalan, kinerja, dan keamanan antarmuka pemrograman. Dalam Pengujian API, alih-alih menggunakan input pengguna standar (keyboard) dan output, Anda menggunakan software untuk mengirim panggilan ke API, mendapatkan output, dan mencatat respons sistem. Tes API sangat berbeda dari Tes GUI dan tidak akan berkonsentrasi pada tampilan dan nuansa aplikasi. Ini terutama berkonsentrasi pada lapisan logika bisnis dari arsitektur perangkat lunak.
Pengujian otomasi API membutuhkan aplikasi yang dapat berinteraksi melalui API. Untuk menguji API, Anda perlu
- Gunakan Alat Pengujian untuk menjalankan API
- Tulis kode Anda sendiri untuk menguji API
Dalam tutorial pengujian API ini, Anda akan mempelajari lebih lanjut tentang-
- Penyiapan lingkungan Uji API
- Jenis Keluaran API
- Uji Kasus untuk Pengujian API
- Pendekatan Pengujian API
- Perbedaan antara pengujian API dan pengujian Unit
- Cara Menguji API
- Praktik Terbaik Pengujian API
- Jenis Bug yang terdeteksi oleh Pengujian API
- Bagaimana melakukan Otomasi Tes API
- Tantangan Pengujian API
Penyiapan lingkungan Uji API
- Pengujian API berbeda dari jenis pengujian perangkat lunak lainnya karena GUI tidak tersedia, namun Anda diminta untuk menyiapkan lingkungan awal yang memanggil API dengan sekumpulan parameter yang diperlukan dan akhirnya memeriksa hasil pengujian.
- Oleh karena itu, Menyiapkan lingkungan pengujian untuk pengujian otomatisasi API tampaknya agak rumit.
- Database dan server harus dikonfigurasi sesuai kebutuhan aplikasi.
- Setelah penginstalan selesai, Fungsi API harus dipanggil untuk memeriksa apakah API tersebut berfungsi.
Jenis Keluaran API
Keluaran dari API bisa jadi
- Jenis data apa pun
- Status (katakan Lulus atau Gagal)
- Panggil fungsi API lain.
Mari kita lihat contoh dari masing-masing Jenis di atas dalam tutorial pengujian api ini
Semua Jenis Data
Contoh: Ada fungsi API yang harus menambahkan dua bilangan bulat.
Tambah panjang (int a, int b)
Angka harus diberikan sebagai parameter masukan. Outputnya harus berupa penjumlahan dari dua bilangan bulat. Keluaran ini perlu diverifikasi dengan hasil yang diharapkan.
Menelepon perlu dilakukan seperti
tambahkan (1234, 5656)
Pengecualian harus ditangani jika jumlahnya melebihi batas integer.
Status (katakan Lulus atau Gagal)
Pertimbangkan fungsi API di bawah ini -
- Mengunci()
- Membuka kunci()
- Menghapus()
Mereka mengembalikan nilai apa pun seperti True (jika berhasil) atau salah (Jika terjadi kesalahan) sebagai output.
Kasus Uji yang lebih akurat adalah, dapat memanggil fungsi di salah satu skrip dan kemudian memeriksa perubahan baik dalam database atau GUI Aplikasi.
Memanggil API / Acara lain
Dalam hal ini, kami memanggil salah satu fungsi API yang pada gilirannya akan memanggil fungsi lain.
Misalnya - First API function dapat digunakan untuk menghapus record yang ditentukan dalam tabel dan fungsi ini, pada gilirannya, memanggil fungsi lain untuk MENYEGARKAN database.
Kasus Uji untuk Pengujian API:
Kasus uji pengujian API didasarkan pada
- Nilai kembali berdasarkan kondisi masukan: relatif mudah untuk diuji, karena masukan dapat ditentukan dan hasil dapat diautentikasi
- Tidak mengembalikan apa pun: Ketika tidak ada nilai kembali, perilaku API pada sistem yang akan diperiksa
- Trigger beberapa API / event / interrupt: Jika output API memicu beberapa event atau interupsi, event dan listener interupsi tersebut harus dilacak
- Perbarui struktur data: Memperbarui struktur data akan memiliki beberapa hasil atau efek pada sistem, dan itu harus diautentikasi
- Ubah sumber daya tertentu: Jika panggilan API mengubah beberapa sumber daya maka itu harus divalidasi dengan mengakses sumber daya masing-masing
Pendekatan Pengujian API
Pendekatan Pengujian API adalah strategi yang telah ditentukan sebelumnya atau metode yang akan dilakukan oleh tim QA untuk melakukan pengujian API setelah build siap. Pengujian ini tidak menyertakan kode sumber. Pendekatan pengujian API membantu untuk lebih memahami fungsi, teknik pengujian, parameter masukan, dan pelaksanaan kasus pengujian.
Poin-poin berikut membantu pengguna untuk melakukan pendekatan Pengujian API:
- Memahami fungsionalitas program API dan mendefinisikan ruang lingkup program dengan jelas
- Menerapkan teknik pengujian seperti kelas kesetaraan, analisis nilai batas, dan menebak kesalahan serta menulis kasus uji untuk API
- Parameter Input untuk API perlu direncanakan dan ditentukan dengan tepat
- Jalankan kasus uji dan bandingkan hasil yang diharapkan dan yang sebenarnya.
Perbedaan antara pengujian API dan pengujian Unit
Pengujian unit | Pengujian API |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Cara Menguji API
Pengujian otomasi API harus mencakup setidaknya metode pengujian berikut selain dari proses SDLC biasa
- Pengujian penemuan: Grup pengujian harus secara manual menjalankan serangkaian panggilan yang didokumentasikan dalam API seperti memverifikasi bahwa sumber daya tertentu yang diekspos oleh API dapat dicantumkan, dibuat dan dihapus sebagaimana mestinya
- Pengujian kegunaan : Pengujian ini memverifikasi apakah API berfungsi dan ramah pengguna. Dan apakah API terintegrasi dengan baik dengan platform lain juga
- Pengujian keamanan: Pengujian ini mencakup jenis otentikasi yang diperlukan dan apakah data sensitif dienkripsi melalui HTTP atau keduanya
- Pengujian otomatis: Pengujian API harus berujung pada pembuatan sekumpulan skrip atau alat yang dapat digunakan untuk menjalankan API secara teratur
- Dokumentasi: Tim penguji harus memastikan bahwa dokumentasinya memadai dan memberikan informasi yang cukup untuk berinteraksi dengan API. Dokumentasi harus menjadi bagian dari penyampaian akhir
Praktik Terbaik Pengujian API:
- Kasus Uji API harus dikelompokkan berdasarkan kategori uji
- Di atas setiap pengujian, Anda harus menyertakan deklarasi API yang dipanggil.
- Pemilihan parameter harus disebutkan secara eksplisit dalam kasus pengujian itu sendiri
- Prioritaskan panggilan fungsi API agar mudah bagi penguji untuk menguji
- Setiap kasus uji harus berdiri sendiri dan independen dari dependensi sebanyak mungkin
- Hindari "uji rantai" dalam perkembangan Anda
- Perhatian khusus harus diberikan saat menangani fungsi panggilan satu kali seperti - Hapus, CloseWindow, dll…
- Pengurutan panggilan harus dilakukan dan direncanakan dengan baik
- Untuk memastikan cakupan pengujian yang lengkap, buat kasus pengujian API untuk semua kemungkinan kombinasi input API.
Jenis Bug yang terdeteksi oleh pengujian API
- Gagal menangani kondisi kesalahan dengan baik
- Bendera yang tidak digunakan
- Fungsionalitas tidak ada atau duplikat
- Masalah Keandalan. Kesulitan dalam menghubungkan dan mendapatkan respon dari API.
- Masalah Keamanan
- Masalah multi-threading
- Masalah perfoma. Waktu respons API sangat tinggi.
- Kesalahan / peringatan yang tidak tepat untuk penelepon
- Penanganan yang salah dari nilai argumen yang valid
- Data Respons tidak terstruktur dengan benar (JSON atau XML)
Bagaimana melakukan Otomasi Tes API
Tutorial berikut memberikan panduan mendetail untuk mengotomatiskan pengujian API.
Cara menguji API dengan REST Assured
Cara menguji API dengan Postman
Cara menguji API dengan UFT
Selain itu ada alat lain untuk pengujian API. Lihat di sini
Tantangan Pengujian API
Tantangan pengujian API meliputi:
- Tantangan utama dalam pengujian API Web adalah Kombinasi Parameter, Pemilihan Parameter, dan Pengurutan Panggilan
- Tidak ada GUI yang tersedia untuk menguji aplikasi sehingga sulit untuk memberikan nilai masukan
- Memvalidasi dan Memverifikasi keluaran dalam sistem yang berbeda agak sulit bagi penguji
- Pemilihan parameter dan kategorisasi diperlukan untuk diketahui penguji
- Fungsi penanganan pengecualian perlu diuji
- Pengetahuan pengkodean diperlukan untuk penguji
Kesimpulan:
API terdiri dari sekumpulan kelas / fungsi / prosedur yang mewakili lapisan logika bisnis. Jika API tidak diuji dengan benar, ini dapat menyebabkan masalah tidak hanya pada aplikasi API tetapi juga pada aplikasi pemanggil. Ini adalah tes yang sangat diperlukan dalam rekayasa perangkat lunak.