Tutorial Pengujian REST API: Contoh Kasus Uji Manual

โšก Ringkasan Cerdas

Pengujian REST API memvalidasi layanan web RESTful dengan mengirimkan permintaan HTTP seperti GET, POST, PUT, dan DELETE, kemudian memverifikasi kode status, header respons, dan payload yang dikembalikan oleh server.

  • ๐Ÿ”‘ Ide Inti: Jalankan lapisan layanan secara langsung, tanpa antarmuka pengguna di antaranya.
  • ๐Ÿ” Cakupan Metode: Lakukan operasi GET, POST, PUT, dan DELETE terhadap setiap sumber daya yang terekspos.
  • ๏ธ Pengaturan Klien: Instal Advanced Rest Client sebelum Anda mengirim permintaan pertama.
  • ๐Ÿ“‹ Permintaan Pembuatan: Berikan titik akhir URL, metode, header, parameter, dan payload JSON.
  • โœ… Pemeriksaan Respons: Konfirmasikan bahwa kode respons, pesan respons, dan isi respons semuanya sesuai dengan harapan.
  • ๐Ÿ” Kedalaman Keamanan: Putar ulang panggilan dengan token yang hilang, kedaluwarsa, dan hak akses rendah untuk memaksa balasan 401 dan 403.
  • ๐Ÿค– Dukungan AI: Pembelajaran mesin menyusun muatan kasus khusus yang secara rutin terlewatkan oleh penguji manual.

Apa itu Pengujian REST API?

Pengujian RESTAPI REST API adalah teknik pengujian otomatisasi web sumber terbuka yang digunakan untuk menguji API RESTful untuk aplikasi web. Tujuan pengujian REST API adalah untuk merekam respons REST API dengan mengirimkan berbagai permintaan HTTP/S untuk memeriksa apakah REST API berfungsi dengan baik atau tidak. Pengujian REST API dilakukan dengan metode GET, POST, PUT, dan DELETE.

ISTIRAHAT singkatan dari Representational State Transfer. Ini adalah gaya arsitektur dan pendekatan komunikasi yang digunakan dalam pengembangan Layanan WebREST telah menjadi pilihan logis untuk membangun API, karena memungkinkan pengguna untuk terhubung dan berinteraksi dengan layanan cloud secara efisien.

API, atau Application Programming Interface, adalah serangkaian instruksi pemrograman untuk mengakses aplikasi perangkat lunak berbasis web. Dengan kata lain, ini adalah serangkaian perintah yang digunakan oleh satu program untuk berkomunikasi langsung dengan program lain dan menggunakan fungsi satu sama lain untuk mendapatkan informasi.

Misalnya, Google Sebuah situs web dapat memiliki API untuk pencarian, terjemahan, dan kalender. Secara umum, API terlihat seperti contoh di bawah ini, dengan nama server, jalur, dan parameter.

http://<server name>/v1/export/Publisher/Standard_Publisher_Report?format=csv

Namun, mengapa harus menginvestasikan upaya pengujian pada lapisan ini sama sekali?

Mengapa Pengujian REST API Penting?

API REST berada di antara antarmuka pengguna dan basis data, yang menjadikannya lapisan tempat sebagian besar logika bisnis sebenarnya berada. Cacat pada aturan penetapan harga atau pemeriksaan izin akan muncul dalam respons API jauh sebelum siapa pun melihat angka yang salah di layar, sehingga pengujian di sini dapat mendeteksi masalah lebih awal dan lebih dekat dengan penyebabnya.

Kecepatan adalah alasan kedua. Sebuah permintaan selesai dalam hitungan milidetik dan tidak memerlukan browser, mesin rendering, dan pencari elemen yang rapuh. Seorang penguji dapat menjalankan puluhan endpoint dalam waktu yang dibutuhkan satu pengujian antarmuka untuk memuat halaman, dan permintaan yang sama berperilaku identik terlepas dari apakah front end-nya adalah situs web, aplikasi seluler, atau integrasi mitra.

Stabilitas adalah alasan ketiga. Tata letak terus berubah, tetapi konfigurasi REST yang dipublikasikan tetap stabil.tract diperkirakan akan tetap stabil. Tes yang ditulis terhadap kondisi tersebuttracAgar tetap berfungsi setelah desain ulang, mereka melindungi bagian-bagian produk yang sebenarnya dikembangkan oleh tim lain.

Jenis Metode API

Terutama ada 4 jenis Pengujian API Metode: GET, POST, DELETE, dan PUT.

  • DAPATKANโ€“ Metode GET digunakan untuk mengambil data.tracInformasi dari server yang diberikan menggunakan URI yang diberikan. Saat menggunakan permintaan GET, seharusnya hanya mengirimkan informasi dari server yang diberikan menggunakan URI yang diberikan.tracdata t dan seharusnya tidak memiliki efek lain pada data tersebut.
  • POSTโ€“ Permintaan POST digunakan untuk membuat entitas baru. Dapat juga digunakan untuk mengirim data ke server, misalnya informasi pelanggan, upload file, dll menggunakan form HTML.
  • PUTโ€“ Membuat entitas baru atau memperbarui entitas yang sudah ada.
  • DELETEโ€“ Menghapus semua representasi sumber daya target saat ini yang diberikan oleh URI.

Cara Menguji REST API

Pengujian REST API memerlukan aplikasi untuk berinteraksi dengan API sampel untuk pengujian. Untuk menguji API, Anda memerlukan dua hal:

  • Alat/Kerangka Pengujian untuk menggerakkan API
  • Tuliskan kode Anda sendiri untuk menguji contoh REST API

Kasus uji REST API dapat diuji dengan alat-alat seperti:

  • Klien Istirahat Tingkat Lanjut
  • Postman-Istirahat Klien
  • Keriting di Linux

Di sini kita akan menggunakan Advanced Rest Client. Berikut adalah langkah-langkah untuk mendapatkan Advanced Rest Client.

Bagaimana cara mendapatkan klien REST tingkat lanjut?

  • Pergi ke Google ChromeToko Web
  • Cari โ€œKlien Istirahat Tingkat Lanjutโ€ atau langsung buka di sini dan Instal ekstensinya
  • Pilih ikon โ€œKlien Istirahat Lanjutanโ€ di bawah bagian aplikasi chrome โ€“ chrome://apps/

Tampilan daftar di Toko Online seperti yang ditunjukkan di bawah ini.

Cara menginstal Klien Istirahat Lanjutan

Setelah instalasi selesai, ikuti tes di bawah ini untuk menguji a API TENANG.

Langkah-langkah Pengujian REST API

Di sini kita menggunakan ekstensi klien REST di browser Chrome. Untuk memahaminya dengan lebih jelas, kita menggunakan API dummy untuk pengujian:

http://ip.jsontest.com/

Langkah 1) Buka klien REST Lanjutan

Luncurkan aplikasi Klien REST Lanjutan (ARC), setelah berhasil diinstal.

Buka klien REST Lanjutan

Langkah 2) Masukkan URL API untuk diuji

Masukkan contoh REST API URL untuk pengujian di URL kotak teks.

URL API untuk diuji

Langkah 3) Pilih metode HTTP

Pilih metode untuk jenis metode HTTP dalam pengujian API yang akan digunakan, misalnya POST

Metode HTTP

Langkah 4) Sediakan set Header

Berikan Headers Set, di kotak teks Headers. Klik Insert header set.

Kumpulan Header

Langkah 5) Konfirmasikan set Header

Selanjutnya Klik GUNAKAN SET INI.

Kumpulan Header

Langkah 6) Sediakan konten Tubuh yang diperlukan

  1. Sekarang beralih ke Tab Tubuh.
  2. Atur tipe konten Isi dan tampilan Editor yang diperlukan, misalnya Tipe konten isi : application/json
  3. Tampilan editor : Masukan mentah.
  4. Di bagian Payload, masukkan body permintaan API demo untuk pengujian dalam bentuk pasangan kunci-nilai, misalnya {โ€œkey1โ€ณ:โ€value1โ€ณ,โ€key2โ€ณ:โ€value2โ€}. Jika itu adalah API POST, maka kita perlu memasukkan body atau parameter. Kita akan memasukkannya di bawah payload yang diberikan.
{"property" : ["Sites"], "report_type" : ["ALL"]}

Langkah-langkah Pengujian REST API

โš ๏ธ Peringatan: Content-Type berupa application/json dengan payload yang tidak valid. JSON Mengembalikan kode 400 Bad Request.

Langkah 7) Kirimkan detail untuk memulai pengujian

  1. Tekan tombol kirim.
  2. Anda dapat mengeklik tombol DETAIL untuk melihat tajuk Respons.

Langkah-langkah Pengujian REST API

Berikut rincian responsnya:

Langkah-langkah Pengujian REST API

Respons tersebut masih harus dinilai berdasarkan hasil yang diharapkan.

Memvalidasi Hasil

Pada dasarnya, untuk pengujian Web API, kita perlu memeriksa kode respons, pesan respons, dan isi respons.

Kode respons terbagi menjadi lima kelompok:

Keluarga Kategori Arti
1xx Informational Diterima, masih diproses.
2xx Keberhasilan Selesai; 200 OK, 201 Dibuat
3xx Redirection Diperlukan tindakan lebih lanjut.
4xx Kesalahan Klien Muatan, token, atau sumber daya yang buruk.
5xx Server Kesalahan Permintaan valid, server gagal.

Berikut adalah kode respons yang mungkin Anda temui.

Memvalidasi Hasil

Satu permintaan membuktikan bahwa endpoint berfungsi. Serangkaian pengujian membuktikan bahwa endpoint tersebut terus berfungsi.

Kasus Uji REST API yang Wajib Anda Cakup

Rangkaian API REST yang bermanfaat mencakup beberapa kategori, alih-alih mengulangi panggilan alur yang sama dengan data yang berbeda:

  • Jalan yang bahagia: Kirim permintaan yang valid ke setiap endpoint dan konfirmasikan kode status, skema, dan setiap nilai field.
  • Kasus negatif: Jika Anda mengirimkan JSON yang salah format, metode yang tidak didukung, dan ID sumber daya yang hilang, maka Anda akan mendapatkan kode kesalahan 400, 405, dan 404, bukan 500.
  • Nilai batas: Jika suatu kolom menerima 1 hingga 200 karakter, uji 0, 1, 200, dan 201. Aturan validasi tidak berlaku di batas-batasnya.
  • Karakter khusus: Lewatkan huruf beraksen, emoji, tanda kutip, dan teks multi-byte melalui setiap kolom untuk mengungkap kesalahan pengkodean.
  • dengantracpemeriksaan t: Bandingkan respons tersebut dengan spesifikasi OpenAPI atau Swagger yang telah dipublikasikan agar perubahan yang tidak terdokumentasi dapat terdeteksi sejak dini.
  • Pengurutan: Panggil endpoint dalam urutan yang realistis, seperti POST lalu GET lalu DELETE, karena status akan terbawa antar panggilan.
  • Kewarasan kinerja: Catat waktu respons pada setiap eksekusi dan tandai setiap titik akhir yang melampaui ambang batas yang disepakati dengan tim.

Alat Uji REST API

Berbagai alat cocok untuk berbagai tahapan pengujian.

Alat Bantu Tipe Terbaik untuk
Klien Istirahat Tingkat Lanjut Klien desktop Panggilan manual cepat
Postman Klien desktop Koleksi dan ruang kerja tim
JMeter Uji beban Waktu respons di bawah beban
SoapUI Pengujian fungsional ISTIRAHAT dan SABUN bersama-sama
Tenanglah Java perpustakaan Mengotomatiskan kasus stabil
cURL Command line Menempelkan panggilan ke dalam laporan bug

Lihat rangkuman dari Alat pengujian API.

Sebagian besar titik akhir sebenarnya menolak untuk menjawab sampai permintaan tersebut membuktikan siapa pengirimnya.

Pemeriksaan Otentikasi dan Keamanan API REST

Endpoint demo publik menjawab pertanyaan siapa pun, tetapi API REST produksi berada di balik skema otentikasi, dan kesalahan otorisasi jauh lebih merusak daripada nilai field yang salah. Pertama, identifikasi mekanismenya: kunci API statis, kredensial HTTP Basic, token bearer OAuth 2.0, atau JSON Web Token yang ditandatangani.

Setelah permintaan terautentikasi berhasil, telusuri jalur kegagalan secara cermat:

  1. Tidak ada kredensial: Hapus header Otorisasi. Harapkan kode kesalahan 401 Unauthorized dan tidak ada data rekaman di bagian isi.
  2. Kredensial salah format: Merusak satu karakter token. Harapkan kode kesalahan 401 lagi, dengan pesan yang tidak menjelaskan alasannya.
  3. Kredensial kedaluwarsa: Gunakan kembali token setelah masa berlakunya habis. Konfirmasikan bahwa token tersebut ditolak dan bukan diterima, yang merupakan cacat umum akibat perbedaan waktu.
  4. Tingkat hak akses salah: Lakukan autentikasi sebagai pengguna dengan hak akses rendah dan panggil titik akhir yang hanya dapat diakses administrator. Harapkan kode kesalahan 403 Forbidden, bukan 200.
  5. Rekor pengguna lain: Ubah ID sehingga pengguna A meminta data pengguna B. Keberhasilan di sini merupakan cacat kontrol akses yang serius.

Terakhir, pastikan setiap panggilan berjalan melalui HTTPS, dan respons yang gagal tidak membocorkan informasi pada stack trace. traces atau banner versi, dan pengulangan yang cepat memicu kesalahan 429 Too Many Requests.

Pengujian REST API juga menghadirkan kesulitan yang tidak dimiliki oleh pengujian antarmuka.

Tantangan untuk Pengujian API

Permasalahan menarik bagi penguji saat melakukan pengujian REST API adalah:

  1. Untuk memastikan bahwa kerangka pengujian memvariasikan parameter panggilan API sedemikian rupa sehingga memverifikasi fungsionalitas sekaligus mengungkap kegagalan. Ini termasuk mengeksplorasi kondisi batas dan menetapkan parameter umum.
  2. Membuat kombinasi nilai parameter yang menarik untuk panggilan dengan dua parameter atau lebih
  3. Mengidentifikasi konten di mana panggilan API harus dilakukan. Ini mungkin termasuk menetapkan kondisi lingkungan eksternal (perangkat periferal, file, dll.) serta data yang tersimpan secara internal yang memengaruhi API.
  4. Mengurutkan panggilan API sesuai urutan eksekusi fungsi
  5. Untuk membuat API menghasilkan hasil yang berguna dari panggilan yang berurutan.

Pertanyaan Umum Demo Slot

Pengujian REST bekerja dengan JSON atau XML ringan melalui kata kerja HTTP biasa. Pengujian SOAP memvalidasi amplop XML yang ketat terhadap konteks WSDL.tract, jadi dibutuhkan klien yang memahami skema seperti SoapUI alih-alih klien REST sederhana.

Tidak. Klien seperti Advanced Rest Client dan Postman Memungkinkan Anda membuat permintaan melalui formulir. Pemrograman hanya diperlukan ketika Anda mengotomatiskan kasus yang sama dengan menggunakan pustaka seperti... Tenanglah.

Sebagian besar tim menganggap waktu di bawah 300 milidetik sebagai waktu yang baik dan di bawah satu detik sebagai waktu yang dapat diterima untuk satu kali pembacaan. Waktu lebih dari beberapa detik akan membahayakan aplikasi yang memanggilnya, jadi catat waktu setiap kali dijalankan dan laporkan cacat jika terjadi penyimpangan.

AI membaca spesifikasi OpenAPI dan menghasilkan muatan permintaan, termasuk varian batas dan varian yang salah format yang sering terlewatkan oleh penguji. AI juga mengelompokkan kegagalan serupa dan menyoroti titik akhir yang perubahan terbarunya membuatnya cenderung mengalami kerusakan.

Tidak. AI tidak mengetahui apa yang dianggap benar oleh bisnis, aturan akses mana yang penting, atau data mana yang sensitif. AI hanya meningkatkan skala pembuatan kasus, sementara penguji tetap menentukan apa arti sebenarnya dari respons yang valid.

Ringkaslah postingan ini dengan: