Sebagian besar alat pengujian API mengharuskan Anda membuka jendela, masuk, dan mengklik di sekitar ruang kerja sebelum dapat mengirim satu permintaan. Itu cocok untuk eksplorasi awal, tetapi tidak untuk terminal—tempat Anda ingin mengetik satu baris, membaca respons, lalu melanjutkan pekerjaan. Alat CLI ringan membalik urutan tersebut: alat menyingkir, dan permintaan menjadi seluruh interaksi.
Ringan berarti sesuatu yang spesifik: instalasi kecil, startup cepat, konfigurasi minimal untuk permintaan pertama, serta output yang mudah diproses dengan jq, grep, atau pipeline CI. Ini bukan soal alat yang memiliki fitur paling banyak atau bersifat sumber terbuka; ini soal jejak instalasi dan gesekan kerja. Untuk cakupan yang juga mencakup GUI yang di-hosting, lihat alat pengujian API gratis terbaik.
Berikut delapan alat CLI ringan untuk menguji API REST dan HTTP, dari pengiriman permintaan manual hingga menjalankan rangkaian pengujian di CI. Setiap alat mencakup instalasi, contoh penggunaan, kasus penggunaan utama, dan batasannya.
Apa yang membuat alat CLI “ringan” untuk pengujian API
Banyak alat dapat berjalan di terminal, tetapi tidak semuanya terasa ringan. Untuk daftar ini, alat dianggap ringan jika memenuhi sebagian besar kriteria berikut:
-
Jejak kecil — biner tunggal, instalasi
pip/npm, atau satu perintahnpx; idealnya tanpa daemon. - Startup cepat — dapat langsung mengirim permintaan tanpa waktu pemanasan.
- Konfigurasi minimal — permintaan pertama dapat dijalankan tanpa akun, login, atau file proyek.
- Output asli terminal — hasil mudah dibaca, dapat disalurkan ke alat lain, dan memiliki kode keluar yang berguna untuk CI.
Tiga alat pertama berfokus pada eksplorasi manual. Sisanya lebih kuat untuk pengujian yang dapat diulang dan otomatisasi pipeline. Jika Anda ingin membandingkan klien API manual, baca juga alternatif curl untuk pengujian API REST.
curl: dasar yang biasanya sudah terinstal
curl hampir pasti sudah tersedia di mesin Anda. Alat ini disertakan di macOS, sebagian besar distro Linux, dan Windows modern. Untuk banyak kasus, instalasi paling ringan adalah tidak perlu menginstal apa pun.
# Periksa versi curl
curl --version
# POST JSON dan cetak hanya status HTTP
curl -s -o /dev/null -w "%{http_code}\n" \
-X POST https://httpbin.org/post \
-H "Content-Type: application/json" \
-d '{"user":"acme","plan":"pro"}'
Terbaik untuk: permintaan sekali pakai, skrip shell, dan lingkungan yang tidak mengizinkan instalasi alat tambahan.
Batasan: header dan payload perlu ditulis manual, JSON tidak diformat secara otomatis, dan assertion harus Anda buat sendiri, misalnya dengan jq serta pemeriksaan kode keluar. curl mengirim dan menampilkan respons; bukan test runner.
HTTPie: curl untuk manusia
HTTPie menawarkan fungsi dasar yang sama dengan curl, tetapi dengan sintaks yang lebih mudah dibaca. Header dan properti JSON ditulis sebagai pasangan sederhana key=value, sementara output sudah berwarna dan terformat secara default.
python -m pip install httpie
# Alternatif macOS:
# brew install httpie
# age:=24 dikirim sebagai angka, name= dikirim sebagai string
http POST httpbin.org/post name=acme age:=24 plan=pro
Terbaik untuk: eksplorasi API manual dengan output yang mudah dibaca tanpa banyak flag.
Batasan: HTTPie membutuhkan runtime Python, sehingga startup biasanya lebih lambat daripada biner terkompilasi. Seperti curl, ini adalah klien HTTP, bukan runner pengujian berbasis assertion.
xh: kecepatan HTTPie dalam satu biner
xh mengimplementasikan sintaks ramah HTTPie menggunakan Rust. Hasilnya adalah satu biner cepat dengan ergonomi key=value, output berwarna, serta tanpa ketergantungan runtime Python.
brew install xh
# Alternatif:
# cargo install xh --locked
# Sintaks mirip HTTPie dengan startup lebih cepat
xh POST httpbin.org/post name=acme age:=24 plan=pro
xh juga mendukung HTTP/2 dan dapat mencetak perintah curl ekuivalen menggunakan --curl.
Terbaik untuk: pengembang yang menyukai pengalaman HTTPie tetapi menginginkan startup cepat dan instalasi satu biner.
Batasan: tidak semua fitur HTTPie tersedia, tidak ada sistem plugin, dan ekosistemnya lebih kecil. Ini tetap klien HTTP, bukan mesin assertion.
Hurl: pengujian teks biasa untuk CI
Hurl adalah titik peralihan dari sekadar “mengirim permintaan” menjadi “menguji respons”. Pengujian ditulis dalam file .hurl teks biasa, lalu dijalankan dengan assertion terhadap respons HTTP.
brew install hurl
# Alternatif:
# cargo install --locked hurl
cat > login.hurl <<'EOF'
POST https://httpbin.org/post
{ "user": "acme", "plan": "pro" }
HTTP 200
[Asserts]
jsonpath "$.json.user" == "acme"
EOF
# Keluar non-nol jika assertion gagal
hurl --test login.hurl
Simpan file .hurl di Git agar perubahan request dan assertion dapat ditinjau dalam pull request.
Terbaik untuk: smoke test dan pemeriksaan kontrak HTTP yang dapat disimpan sebagai teks mudah dibaca.
Batasan: fokus pada HTTP; bukan alat untuk gRPC atau load testing. Alur yang sangat kompleks dapat menghasilkan banyak file .hurl dibanding menggunakan bahasa skrip.
Step CI: satu file YAML untuk alur multi-langkah
Step CI menjalankan workflow API dari satu file YAML. Alat ini mendukung REST, GraphQL, gRPC, tRPC, dan SOAP, serta dapat memvalidasi spesifikasi OpenAPI.
npm install -g stepci
# workflow.yml berisi langkah, capture variabel, dan assertion
stepci run workflow.yml
Gunakan Step CI ketika pengujian Anda benar-benar berupa urutan: login, ambil token, kirim token ke endpoint berikutnya, lalu validasi hasil.
Terbaik untuk: tim yang membutuhkan workflow API deklaratif dan multi-langkah yang berjalan sama di laptop maupun CI.
Batasan: paket Node berarti membutuhkan runtime tambahan dan lebih berat daripada biner Rust atau Go. Periksa aktivitas terbaru repositorinya sebelum menjadikannya fondasi pipeline jangka panjang.
Untuk menyusun workflow ini ke dalam strategi yang lebih lengkap, lihat strategi pengujian API.
k6: pengujian beban dari terminal
k6 menjawab pertanyaan berbeda: bukan hanya “apakah respons ini benar?”, tetapi “apakah API tetap memenuhi target saat menerima beban?”. k6 ditulis dalam Go, dikirim sebagai biner tunggal, dan menggunakan JavaScript untuk mendefinisikan skenario.
brew install k6
# Alternatif Docker:
# docker run grafana/k6
cat > load.js <<'EOF'
import http from 'k6/http';
import { check } from 'k6';
export const options = {
vus: 10,
duration: '30s',
thresholds: {
http_req_duration: ['p(95)<500'],
},
};
export default function () {
const res = http.get('https://httpbin.org/get');
check(res, {
'status is 200': (r) => r.status === 200,
});
}
EOF
k6 run load.js
Ambang batas (thresholds) membuat pengujian beban menjadi gerbang lulus/gagal. Jika ambang batas gagal, k6 keluar dengan kode 99, sehingga CI dapat menandainya sebagai kegagalan.
Terbaik untuk: pengujian performa dan beban yang dapat dijalankan dari laptop atau CI tanpa menyiapkan klaster.
Batasan: ini bukan klien uji fungsional untuk memeriksa satu respons secara visual. Skenario yang bermakna membutuhkan pemahaman API JavaScript k6.
Newman: jalankan koleksi Postman tanpa GUI
Newman adalah runner CLI untuk koleksi Postman. Jika tim Anda sudah membangun request dan test di Postman, Newman menjalankan koleksi yang sama dari terminal tanpa membuka GUI.
npm install -g newman
# collection.json diekspor dari Postman
# -e menyediakan file environment
newman run collection.json -e staging.json
Newman mengembalikan kode keluar non-nol ketika test gagal, sehingga cocok digunakan sebagai gerbang CI.
Terbaik untuk: tim yang sudah menggunakan Postman dan ingin menjalankan koleksi yang ada di pipeline.
Batasan: Newman membutuhkan Node.js dan hanya menjalankan koleksi berformat Postman. Pembuatan skenario utama tetap dilakukan di ekosistem Postman.
Apidog CLI: jalankan skenario visual di CI
Apidog CLI adalah paket npm bernama apidog-cli yang menjalankan skenario pengujian yang Anda rancang secara visual di Apidog langsung dari terminal. GUI digunakan untuk menyusun urutan request, mengekstrak variabel, dan menulis assertion; CLI digunakan untuk menjalankan skenario tersebut tanpa kepala di terminal atau CI.
npm install -g apidog-cli
apidog login --with-token <YOUR_TOKEN>
# Salin perintah ini dari tab CI/CD pada skenario Anda
apidog run -t <scenario_id> -e <env_id> -r cli
Jangan menebak ID skenario atau environment. Buka skenario pengujian di Apidog, masuk ke tab CI/CD, lalu salin perintah apidog run yang sudah dibuat dengan ID yang sesuai.
Reporter -r cli mencetak hasil tiap langkah serta ringkasan ke terminal. Jika sistem CI Anda perlu memproses hasil pengujian, gunakan reporter tambahan:
apidog run -t <scenario_id> -e <env_id> -r cli,junit
apidog run keluar dengan kode 0 ketika semua assertion lulus dan kode non-nol ketika salah satu assertion gagal. Outputnya juga berupa JSON terstruktur dengan agentHints.nextSteps, sehingga dapat diproses oleh agen pengodean AI.
Terbaik untuk: tim yang ingin membangun skenario API multi-langkah secara visual lalu menjalankannya tanpa kepala di CI atau melalui agen.
Batasan: berbeda dari curl atau xh, Apidog CLI terikat pada skenario yang disimpan di proyek Apidog. Ini adalah opsi platform terintegrasi, bukan klien HTTP umum.
Lihat dokumentasi berikut untuk implementasi lebih lanjut:
- Panduan lengkap Apidog CLI
- Referensi perintah
apidog run - Menguji REST API dari baris perintah dengan Apidog CLI
Cara memilih
Pilih alat berdasarkan seberapa jauh kebutuhan Anda berkembang dari “kirim satu request”.
| Alat | Terbaik untuk | Instalasi | Sumber terbuka? | Catatan |
|---|---|---|---|---|
| curl | Permintaan sekali pakai, skrip | Sudah terinstal | Ya (MIT/curl) | Universal; assertion dibuat sendiri |
| HTTPie | Permintaan manual yang mudah dibaca | pip install httpie |
Ya (BSD-3) | Sintaks ramah; runtime Python |
| xh | Pengalaman HTTPie yang lebih cepat | brew install xh |
Ya (MIT) | Biner Rust tunggal |
| Hurl | Pengujian HTTP berbasis teks | brew install hurl |
Ya (Apache-2.0) |
--test cocok untuk CI |
| Step CI | Workflow YAML multi-langkah | npm i -g stepci |
Ya (MPL-2.0) | REST/GraphQL/gRPC; runtime Node |
| k6 | Beban dan performa | brew install k6 |
Ya (AGPL-3.0) | Skrip JS; ambang batas dapat menggagalkan eksekusi |
| Newman | Koleksi Postman di CI | npm i -g newman |
Ya (Apache-2.0) | Menjalankan JSON Postman tanpa GUI |
| Apidog CLI | Skenario visual yang dijalankan tanpa kepala | npm i -g apidog-cli |
Tidak (tingkat gratis) | Gerbang kode keluar; JSON untuk agen |
Mulailah dari atas untuk pekerjaan manual:
- Gunakan
curlatauxhuntuk memanggil endpoint dengan cepat. - Beralih ke Hurl ketika request perlu menjadi test yang disimpan di Git.
- Gunakan Step CI untuk workflow deklaratif dan multi-langkah.
- Gunakan k6 saat fokus berpindah ke beban dan performa.
- Gunakan Newman jika test sudah berada dalam koleksi Postman.
- Pilih Apidog CLI jika Anda ingin membangun skenario kompleks di editor visual dan menjalankannya tanpa kepala di mana saja.
Jika Anda mengevaluasi workflow tanpa GUI secara menyeluruh, baca panduan alat pengujian API tanpa kepala.
Di mana alat ringan memberikan keuntungan
Alat CLI ringan unggul ketika GUI justru memperlambat pekerjaan:
- Anda sudah bekerja di terminal.
- Pengujian perlu berjalan di CI tanpa intervensi manusia.
- Anda ingin mengubah request ad-hoc menjadi pemeriksaan yang dapat diulang.
- Agen AI perlu menjalankan dan membaca hasil pengujian secara otomatis.
curl dan xh menjaga eksplorasi manual tetap cepat. Hurl dan Step CI mengubah request menjadi pengujian yang dapat disimpan. k6 menjawab pertanyaan performa. Newman menjalankan koleksi Postman yang sudah ada.
Apidog CLI menjembatani pembuatan dan eksekusi skenario: rancang skenario sekali di Apidog, lalu jalankan dengan apidog run dari terminal, pipeline, atau agen. Kode keluar menentukan apakah build tetap hijau atau gagal.
Unduh Apidog, buat satu skenario, lalu tambahkan perintah apidog run ke konfigurasi CI Anda untuk menutup seluruh alur pengujian.
Top comments (0)