Status Code & API Testing Tools
Sebelum membahas tentang API Testing Tools, ada satu hal lagi yang perlu kita pelajari sebelum melakukan pengujian API.
HTTP Response Status Code
Bagi Developer dan Quality Assurance, memahami HTTP status code itu sangatlah penting karena HTTP status code bisa menjadi kunci utama yang akan membantu mendeteksi dan memperbaiki berbagai error di aplikasi.
HTTP sendiri merupakan singkatan dari Hypertext Transfer Protocol. Secara gamblang dapat kita artikan bahwa HTTP status code merupakan jawaban atau respon dari server website atas permintaan data oleh browser. Respons ini berbentuk kode tiga digit, yakni:
- 100-199 informational response
Respon ini menandakan bahwa permintaan telah diterima dan masih dalam proses.
- 200-299 successful
Permintaan telah berhasil diterima, dipahami, dan diproses oleh server.
- 300-399 redirection
Redirect merupakan kondisi dimana data lama telah dipindahkan ke lokasi yang baru.
- 400-499 client error
Kode pada kategori ini menunjukan adanya error dari sisi web browser.
- 500-599 server error
Kode pada kategori ini menunjukkan adanya error dari server.
Ada banyak sekali status code jika harus disebutkan satu persatu, namun sebagai seorang Quality Assurance, setidaknya kita mengetahui beberapa status code yang sering muncul ketika melakukan pengujian. Hal ini diperlukan guna mempermudah proses kerja dalam menganalisa kondisi dari aplikasi yang sedang diuji. Jika ditemukan bug dan tertera status code nya, maka QA dapat memberikan keterangan lebih detail dalam bug report nya.
Berikut beberapa status code yang sering muncul dan perlu kita pelajari
- 100 – Continue
Maksudnya adalah server sudah menerima permintaan “header” dari browser dan sudah siap untuk menerima permintaan “body”
- 101 – Switching Protocols
Browser meminta server untuk mengganti atau berpindah protokol dan server telah memenuhi permintaan tersebut.
- 103 – Early Hints
Server mengirimkan “header” terlebih dahulu ke browser sebelum data dari server sepenuhnya terbuka.
- 200 – OK
Respon standar dari permintaan yang sukses. Kode yang diharapkan semua orang karena ini berarti halaman website atau data sudah bekerja sebagaimana mestinya.
- 201 – Created
Server telah memenuhi permintaan dan server telah sukses membuat data baru.
- 202 – Accepted
Server sudah menerima permintaan browser, tapi masih diproses.
- 203 – Non-Authoritative Information
Kode respons ini berarti data yang dikembalikan tidak persis sama dengan yang tersedia dari server asal, tetapi dikumpulkan dari salinan lokal atau pihak ketiga.
- 204 – No Content
Server sudah berhasil memproses permintaan, tapi tidak menghasilkan konten apapun.
- 300 – Multiple Choices
Ada beberapa kemungkinan resource yang bisa server kirimkan untuk memenuhi permintaan browser. jadi browser harus memilih salah satu di antara resource tersebut.
- 301 – The requested resource has been moved permanently
Halaman website atau data telah diganti secara permanen dengan data yang baru.
- 302 – The requested resource has moved, but was found
Data yang diminta itu ditemukan, tapi tidak berada di lokasi yang dituju.
- 307 – Temporary Redirect
Data telah dipindah sementara di URL yang berbeda.
- 308 – Permanent Redirect
Data yang diminta telah dipindah secara permanen di URL baru.
- 400 – Bad Request
Server tak bisa memenuhi permintaan karena adanya error dari browser.
- 401 – Unauthorized
Browser tak bisa memberikan bukti kewenangan yang sah saat diminta server.
- 403 – Access to that resource is forbidden
Kode ini muncul saat pengguna berusaha mengakses sesuatu yang tak diizinkan. Misalnya, mengakses konten yang dikunci tanpa login terlebih dahulu.
- 404 – The requested resource was not found
Kode ini menunjukkan bahwa data yang diminta browser itu tidak ada di server.=
- 405 – Method not allowed
Kode ini menunjukkan bahwa server hosting telah menerima dan mengenali permintaan dari browser. Namun, ia menolak metode HTTP yang digunakan. Sehingga browser tak bisa menampilkan halaman yang diminta.
- 408 – The server timed out waiting for the rest of the requests from the browser
Kode ini muncul saat server kehabisan waktu (time out) karena menunggu browser menyelesaikan permintaannya. Dengan kata lain, server tidak menerima seluruh permintaan yang dikirim browser. Mungkin saja karena koneksi pengguna sehingga komunikasi dengan server terputus.
- 415 – Unsupported Media Type
HTTP status code 415 muncul saat browser Anda meminta jenis media yang tak didukung oleh server.
- 429 – Too many requests
Muncul karena browser mengirim terlalu banyak permintaan di rentang waktu tertentu. Ini kadang terjadi karena bot atau script yang berusaha membajak website tersebut.
- 500 – There was an error on the server and the request could not be completed
Ini adalah kode generik yang muncul karena adanya kesalahan di server atau “internal server error”.
- 501 – Not Implemented
Error ini muncul karena fungsi server tidak mendukung permintaan dari browser. Error ini hampir selalu karena kesalahan server dan harus diperbaiki oleh penyedia hosting.
- 502 – Bad Gateway
Umumnya, HTTP status code ini muncul karena salah satu server menerima respons yang tak beres dari server lainnya. Misalnya, saat penggunaan proxy server.
- 503 – The server is unavailable to handle this request right now
Kode HTTP status ini terjadi karena server tak bisa memenuhi permintaan Anda saat ini. Mungkin karena server kepenuhan atau yang lainnya.
- 504 – The server, acting as a gateway, timed out waiting for another server to respond
Error 504 ini biasanya muncul saat server tidak bisa terkoneksi dengan server pusat untuk menyelesaikan permintaan.
- 521 – Web server is down
Error ini akan muncul saat browser Anda berhasil nyambung ke Cloudflare, tapi Cloudflare tak bisa menyambungkannya lagi ke server pusat. Dengan kata lain, error ini hanya khusus untuk Cloudflare saja.
Sekian sedikit penjelasan tentang HTTP status code, sekarang kita akan mempelajari beberapa tools yang biasa digunakan untuk melakukan pengujian API.
API Testing Tools
Ada banyak sekali tools yang dapat digunakan untuk melakukan pengujian API, berikut beberapa yang cukup popular di kalangan QA
1. Postman
Ini adalah API development environment. Postman API Development Environment dibagi menjadi tiga bagian, Collections, Workspaces, dan Built-in Tools. Postman collections akan memungkinkan anda menjalankan permintaan, menguji dan men-debug, membuat pengujian dan tiruan otomatis, mendokumentasikan, dan memantau API.
Postman workspace akan memberi Anda fitur kolaborasi. Ini akan memungkinkan Anda untuk berbagi koleksi, mengatur izin, dan mengelola partisipasi di beberapa ruang kerja untuk ukuran tim apa pun. Built-in tools akan menyediakan fitur yang akan dibutuhkan oleh pengembang untuk bekerja dengan API.
Fitur :
- REST client yang mudah digunakan
- Menawarkan antarmuka yang kaya
- Tersedia untuk pengujian otomatis dan eksplorasi
- Dapat dijalankan di Mac, Linux, Windows
- Menyediakan banyak integrasi seperti dukungan untuk format Swagger & RAML
- Menjalankan, menguji, mendokumentasikan, dan memantau fitur Harga : Gratis – $12/pengguna/bulan
2. Katalon Studio
Katalon Studio adalah alat otomatisasi yang kuat dan komprehensif untuk API, Web, pengujian Desktop, dan pengujian Seluler.
Katalon Studio menyediakan penerapan yang mudah dengan menyertakan semua kerangka kerja, integrasi ALM, dan plugin dalam satu paket. Kemampuan menggabungkan layanan UI dan API/Web untuk berbagai lingkungan (Windows, Mac OS, dan Linux) juga merupakan keunggulan unik Katalon Studio di antara alat API teratas. Selain menjadi solusi gratis, Katalon Studio juga menawarkan layanan dukungan berbayar untuk tim kecil, bisnis, dan perusahaan.
Fitur :
- UI yang mudah digunakan dan fitur yang berfokus pada produktivitas untuk proyek dari semua ukuran
- Mendukung REST, permintaan SOAP, dan SSL client certificate
- Aktifkan impor uji dari Swagger (2.0 & 3.0), Postman, WSDL, dan WADL
- Integrasi CI/CD asli (Jenkins, Azure DevOps, CircleCI, Dockers, dll.)
- Metode pengujian berbasis data, cakupan dan keandalan pengujian yang lebih baik
- Dukungan AssertJ untuk membuat pernyataan yang lancar dalam gaya BDD
- Mendukung penyiapan data pengujian API menggunakan pengujian UI
- Platform pelaporan bawaan untuk memusatkan laporan dan aktivitas di seluruh tumpukan alat: sistem kontrol versi, CI/CD, alat otomatisasi pengujian, dan ALM
- Kursus pengujian API gratis dan tutorial alat di Katalon Academy Harga : Gratis — $76/lisensi/bulan
3. Apigee
Apigee adalah platform manajemen API lintas cloud. Ini memberikan kebijakan keamanan dan tata kelola untuk semua API. Menggunakan spesifikasi API terbuka, alat ini memungkinkan Anda membuat proxy API dengan mudah. Dengan alat ini, Anda dapat mendesain, mengamankan, menganalisis, dan menskalakan API di mana saja.
Fitur :
- Ini menyediakan portal pengembang yang dapat disesuaikan.
- Ini mendukung Node.js.
- Dengan paket Enterprise, Anda akan mendapatkan fitur lanjutan seperti keamanan tingkat lanjut Apigee Sense, jaringan terdistribusi untuk latensi rendah, Monetisasi untuk model bisnis baru, dan isolasi lalu lintas.
- Dengan paket Bisnis, ia menyediakan fitur daftar putih IP, pemanggilan Java & Python, manajemen lalu lintas terdistribusi.
- Untuk paket Tim, ini menyediakan analitik API, pemanggilan layanan Web, dan beberapa kebijakan lanjutan seperti keamanan, mediasi, dan protokol.
- Harga : Apigee menyediakan empat paket harga, Evaluation (Gratis), Team ($500 per bulan), Business ($2500 per bulan), Enterprise. Uji coba gratis juga tersedia untuk alat ini.
4. JMeter
Ini adalah perangkat lunak sumber terbuka untuk pengujian beban dan kinerja aplikasi. Ini mendukung lintas platform. Jmeter bekerja pada lapisan protokol.
Pengembang dapat menggunakan alat ini sebagai alat uji unit untuk pengujian koneksi database JDBC. Ini memiliki arsitektur berbasis plugin. Jmeter dapat menghasilkan data uji. Ini mendukung mode baris perintah, yang akan membantu untuk OS yang kompatibel dengan Java.
Fitur :
- Ini akan memungkinkan Anda untuk menggunakan berbagai bahasa pemrograman.
- Beban dan pengujian kinerja berbagai aplikasi, server, dan protokol.
- Ini memungkinkan Anda untuk memutar ulang hasil tes.
- Ini memberikan dukungan untuk parameterisasi variabel dan pernyataan.
- Ini mendukung cookie per-utas.
- Variabel konfigurasi dan berbagai laporan juga didukung oleh Jmeter. Harga: Gratis
5. Rest-assured
REST-Assured membuat pengujian layanan REST di domain Java menjadi mudah. Ini adalah alat sumber terbuka. Permintaan/Respons XML dan JSON didukung oleh REST- Assured.
Fitur :
- Integrasi yang mulus dengan kerangka kerja otomatisasi Serenity.
- Ini menyediakan beberapa fungsi yang dipanggang.
- Ini mendukung sintaks BDD Diberikan/Kapan/Kemudian.
- Untuk menggunakan alat ini, tidak perlu menjadi ahli HTTP. Harga: Gratis
6. Soap UI
Alat pengujian fungsional tanpa kepala ini didedikasikan untuk pengujian API. Ini memungkinkan pengguna untuk menguji REST dan SOAP API dan Layanan Web tanpa kerepotan.
Untuk paket Gratis, pengguna dapat:
- Dapatkan kode sumber lengkap dan bangun fitur pilihan mereka di tangan
- Buat tes dengan mudah dengan Drag and drop, Point-and-click
- Gunakan kembali tes beban dan pemindaian keamanan untuk kasus uji fungsional hanya dalam beberapa langkah dengan fitur Reusability of Scripts
Untuk paket Pro, pengguna dapat:
- Pengujian berbasis data yang andal – yang berarti pengguna dapat mensimulasikan bagaimana konsumen berinteraksi dengan API berkat data yang dimuat dari file, database, dan Excel
- Mendukung integrasi CI/CD asli dan pengujian asinkron
Versi terbaru SoapUI 5.6 telah memperbarui perpustakaan pihak ketiga (komponen org.apache.HTTP, commons-logging, commons-codec, dan JUnit) dan menghapus perpustakaan pihak ketiga yang tidak digunakan seperti Jackson, KeenIO.
Pembaruan : SoapUI sekarang menonaktifkan skrip proyek Muat dan Simpan secara default untuk meningkatkan keamanan pengujian.
Harga : Gratis – $749/tahun
7. Karate DSL
Alat pengujian API ini membantu pengguna dalam membuat skenario untuk pengujian BDD berbasis API tanpa perlu menulis langkah-langkah definisi. Memang, KarateDSL membuat definisi itu sendiri, sehingga pengguna dapat dengan cepat memulai pengujian API.
Fitur :
- Eksekusi paralel multi-utas didukung.
- Ini memungkinkan pengalihan konfigurasi.
- Pembuatan laporan.
- Ini mendukung penggunaan kembali Payload-data untuk pengujian API.
Materi QA:
Komentar
Posting Komentar