DEV Community

Cover image for Alat CLI Gratis Open Source untuk Pengujian API
Walse
Walse

Posted on • Originally published at apidog.com

Alat CLI Gratis Open Source untuk Pengujian API

Sebagian besar tutorial pengujian API berfokus pada GUI. Namun, jika Anda bekerja dari terminal, menjalankan pipeline CI, atau ingin memakai alat dengan kode sumber yang dapat diaudit, CLI adalah pilihan yang lebih praktis. Alat sumber terbuka memberi Anda kontrol atas lisensi, biner, konfigurasi, dan eksekusi pengujian di infrastruktur sendiri.

Coba Apidog hari ini

Fokus artikel ini bukan mencari biner terkecil atau alat tercepat. Fokusnya adalah kontrol: apakah alat dapat dijalankan tanpa akun, di dalam jaringan sendiri, dan tetap berfungsi tanpa bergantung pada perubahan harga vendor? Berikut delapan alat CLI gratis dan tersedia sumber untuk REST, GraphQL, HTTP, serta pengujian beban.

Untuk opsi yang lebih luas, termasuk alat yang dihosting, lihat alat pengujian API gratis terbaik. Jika Anda ingin menguji endpoint langsung dari terminal secara interaktif, lihat alternatif curl untuk pengujian API REST.

Apa yang membuat alat CLI benar-benar sumber terbuka?

Alat yang gratis diunduh belum tentu sumber terbuka. Gunakan tiga kriteria berikut sebelum memasukkan alat ke pipeline Anda:

  • Lisensi yang jelas. Kode sumber tersedia publik dengan lisensi yang disetujui OSI, misalnya MIT, Apache-2.0, MPL-2.0, AGPL-3.0, atau BSD.
  • Dapat dijalankan sendiri tanpa akun. Alat dapat berjalan di laptop, server internal, atau runner CI tanpa pendaftaran dan tanpa ketergantungan pada layanan vendor.
  • Repositori dapat diperiksa. Riwayat commit, isu, rilis, dan status pemeliharaan terlihat sehingga Anda dapat menilai risikonya.

Semua alat di bawah memenuhi dua syarat pertama. Untuk pemeliharaan, perhatikan khususnya Dredd yang repositorinya telah diarsipkan. Lisensi juga penting: AGPL-3.0 pada k6 memiliki kewajiban copyleft lebih kuat dibanding MIT atau Apache-2.0.

1. Hurl: pengujian HTTP teks biasa dalam satu biner

Hurl menjalankan permintaan HTTP dari berkas teks dan memverifikasi responsnya. Karena kasus uji disimpan sebagai teks, perubahan mudah direview di pull request dan mudah dijalankan di CI.

Lisensi: Apache-2.0

Instalasi dan contoh

brew install hurl
# atau:
cargo install --locked hurl
Enter fullscreen mode Exit fullscreen mode

Buat berkas login.hurl:

POST https://api.example.com/login
{ "user": "acme", "pass": "s3cret" }

HTTP 200
[Asserts]
jsonpath "$.token" exists
Enter fullscreen mode Exit fullscreen mode

Jalankan pengujian:

hurl --test login.hurl
Enter fullscreen mode Exit fullscreen mode

Gunakan Hurl untuk: smoke test, validasi status respons, header, body JSON, dan pemeriksaan kontrak HTTP sederhana.

Batasan: Hurl berfokus pada HTTP. Alat ini bukan pilihan untuk gRPC atau pengujian beban besar.

2. Step CI: alur kerja API deklaratif berbasis YAML

Step CI adalah runner alur kerja berbasis YAML untuk CI. Alat ini mendukung REST, GraphQL, gRPC, tRPC, SOAP, validasi OpenAPI, dan pengujian beban.

Lisensi: MPL-2.0

Instalasi dan penggunaan

npm install -g stepci
Enter fullscreen mode Exit fullscreen mode

Simpan definisi langkah pengujian dalam workflow.yml, lalu jalankan:

stepci run workflow.yml
Enter fullscreen mode Exit fullscreen mode

Gunakan Step CI untuk: alur API multi-langkah, misalnya login → simpan token → buat data → verifikasi respons.

Batasan: Jika Anda memodifikasi kode Step CI sendiri, MPL-2.0 dapat mewajibkan distribusi perubahan pada berkas yang dimodifikasi. Menggunakannya untuk menguji aplikasi Anda tidak memunculkan kewajiban tersebut.

3. Schemathesis: fuzzing otomatis dari OpenAPI atau GraphQL

Schemathesis membaca skema OpenAPI atau GraphQL lalu menghasilkan banyak kasus uji secara otomatis. Pendekatannya berbasis property testing melalui pustaka Hypothesis Python.

Alat ini dapat menemukan respons 500, input edge case, pelanggaran skema, dan respons API yang tidak sesuai dokumentasi.

Lisensi: MIT

Instalasi dan penggunaan

uv pip install schemathesis
# atau:
pip install schemathesis
Enter fullscreen mode Exit fullscreen mode

Jalankan terhadap spesifikasi OpenAPI:

schemathesis run https://api.example.com/openapi.json
Enter fullscreen mode Exit fullscreen mode

Gunakan Schemathesis untuk: menemukan bug yang tidak tercakup oleh test case manual, terutama sebelum rilis.

Batasan: Anda membutuhkan skema yang akurat. Untuk API besar, jumlah temuan dapat banyak sehingga perlu disaring melalui hooks dan opsi konfigurasi.

4. Dredd: menguji kontrak antara dokumentasi dan implementasi

Dredd memutar ulang permintaan yang didefinisikan dalam OpenAPI atau API Blueprint terhadap backend yang sedang berjalan. Respons aktual kemudian dibandingkan dengan spesifikasi.

Lisensi: MIT

Instalasi dan penggunaan

npm install -g dredd
Enter fullscreen mode Exit fullscreen mode

Contoh untuk API Blueprint:

dredd apiary.apib http://127.0.0.1:3000
Enter fullscreen mode Exit fullscreen mode

Gunakan Dredd untuk: memastikan dokumentasi API tidak menyimpang dari implementasi.

Batasan penting: repositori Dredd diarsipkan pada November 2024 dan bersifat hanya-baca. Alat ini masih dapat digunakan, tetapi jangan mengandalkannya untuk perbaikan atau fitur baru. Untuk pemeriksaan berbasis skema yang masih aktif dikembangkan, Schemathesis adalah pilihan yang lebih aman.

5. k6: pengujian beban dengan JavaScript

k6 adalah alat pengujian beban dan kinerja dari Grafana. Anda menulis skenario dalam JavaScript atau TypeScript, lalu engine Go menjalankannya pada banyak virtual user.

Lisensi: AGPL-3.0

Instalasi dan penggunaan

brew install k6
Enter fullscreen mode Exit fullscreen mode

Buat template skrip:

k6 new script.js
Enter fullscreen mode Exit fullscreen mode

Jalankan pengujian:

k6 run script.js
Enter fullscreen mode Exit fullscreen mode

Gunakan k6 untuk: load test, stress test, dan soak test saat Anda perlu mengukur perilaku API di bawah ratusan atau ribuan pengguna virtual.

Batasan: k6 berfokus pada beban, bukan assertion kontrak yang sangat detail. Perhatikan juga implikasi AGPL-3.0 jika Anda membangun dan mendistribusikan layanan di sekitar kode k6.

6. Newman: menjalankan koleksi Postman tanpa GUI

Newman adalah runner CLI untuk koleksi Postman. Jika tim Anda sudah menyimpan request dan test dalam koleksi Postman, Newman dapat menjalankannya langsung di terminal atau CI.

Lisensi: Apache-2.0

Instalasi dan penggunaan

npm install -g newman
Enter fullscreen mode Exit fullscreen mode

Jalankan koleksi dengan environment staging:

newman run my-collection.json -e staging-environment.json
Enter fullscreen mode Exit fullscreen mode

Gunakan Newman untuk: membawa koleksi Postman yang sudah ada ke GitHub Actions, GitLab CI, Jenkins, atau runner CI lain.

Batasan: Newman bergantung pada format koleksi Postman. Anda menjalankan koleksi yang sudah dibuat; alat ini tidak dirancang untuk mendesain atau memalsukan API.

7. Tavern: pengujian API berbasis pytest dan YAML

Tavern adalah pustaka Python, CLI, dan plugin pytest untuk menulis pengujian API dalam YAML. Karena terintegrasi dengan pytest, Anda dapat memakai fixtures, laporan, paralelisme, dan integrasi CI dari ekosistem Python.

Tavern mendukung REST, MQTT, dan gRPC.

Lisensi: MIT

Instalasi dan penggunaan

pip install tavern
Enter fullscreen mode Exit fullscreen mode

Simpan test di dekat test Python lain, misalnya test_login.tavern.yaml:

pytest test_login.tavern.yaml
Enter fullscreen mode Exit fullscreen mode

Gunakan Tavern untuk: proyek Python yang sudah menggunakan pytest dan ingin API test berada dalam suite yang sama dengan unit test.

Batasan: Tavern paling cocok jika tim Anda nyaman dengan Python dan pytest. Untuk stack non-Python, ketergantungan ini dapat menjadi hambatan.

8. Venom: suite integrasi multi-eksekutor

Venom dari OVHcloud menjalankan pengujian integrasi dengan berbagai eksekutor: HTTP, shell script, IMAP, web, database, dan lainnya. Suite ditulis dalam YAML dan hasil dapat dikeluarkan sebagai xUnit untuk CI.

Lisensi: BSD yang dimodifikasi

Instalasi dan penggunaan

Unduh biner dari GitHub Releases, lalu jalankan:

venom run testsuite.yml
Enter fullscreen mode Exit fullscreen mode

Gunakan Venom untuk: alur end-to-end yang menggabungkan panggilan API, query database, pemeriksaan email, atau langkah shell dalam satu suite.

Batasan: Banyaknya eksekutor membuat YAML dapat menjadi panjang. Dokumentasi juga mengasumsikan Anda akan merangkai konfigurasi dari contoh-contoh di repositori.

Di mana Apidog cocok?

Apidog bukan alat sumber terbuka, jadi tidak termasuk dalam delapan alat di atas. Namun, ini relevan jika Anda ingin mengurangi jumlah alat yang harus dipelihara dalam workflow API.

Apidog menggabungkan desain, pengujian, mocking, dan dokumentasi dalam satu platform. Untuk terminal dan CI, apidog-cli dapat menjalankan skenario pengujian yang telah dibuat.

npm install -g apidog-cli

apidog login --with-token <YOUR_TOKEN>
apidog run --access-token <TOKEN>
Enter fullscreen mode Exit fullscreen mode

Perintah akan keluar dengan kode 0 jika semua pengujian berhasil dan kode selain nol jika ada kegagalan. Output JSON terstruktur juga menyertakan agentHints.nextSteps, sehingga dapat diproses oleh skrip atau agen AI.

Lihat panduan apidog-cli lengkap untuk detail perintah yang tersedia.

Jika lisensi yang dapat diaudit adalah persyaratan utama, gunakan salah satu alat sumber terbuka di atas. Jika workflow desain hingga pengujian yang terintegrasi lebih penting, Apidog adalah alternatif yang perlu dipertimbangkan.

Cara memilih

Alat Terbaik untuk Instalasi Sumber terbuka? Lisensi
Hurl Assertion HTTP teks biasa di Git brew install hurl Ya Apache-2.0
Step CI Alur kerja CI deklaratif npm i -g stepci Ya MPL-2.0
Schemathesis Fuzzing berbasis properti dari skema pip install schemathesis Ya MIT
Dredd Pengujian kontrak dokumentasi vs implementasi npm i -g dredd Ya, diarsipkan MIT
k6 Pengujian beban dan kinerja brew install k6 Ya AGPL-3.0
Newman Menjalankan koleksi Postman di CI npm i -g newman Ya Apache-2.0
Tavern Pengujian API dalam pytest pip install tavern Ya MIT
Venom Suite integrasi multi-eksekutor GitHub Releases Ya BSD
apidog-cli Workflow desain hingga pengujian terintegrasi npm i -g apidog-cli Tidak, ada tingkatan gratis Komersial

Pilih berdasarkan pekerjaan yang ingin diselesaikan:

  • Gunakan Hurl atau Newman untuk pemeriksaan request yang cepat dan mudah dibaca.
  • Gunakan Schemathesis jika Anda memiliki skema dan ingin menemukan edge case secara otomatis.
  • Gunakan k6 jika pertanyaan utama Anda adalah kapasitas dan performa.
  • Gunakan Tavern atau Venom jika pengujian API perlu menjadi bagian dari suite integrasi yang lebih besar.
  • Gunakan Step CI jika Anda ingin mendeskripsikan alur API multi-langkah dalam satu berkas YAML.

Untuk konteks strategi yang lebih luas, lihat strategi pengujian API dan alat pengujian API headless.

Kesimpulan

Alat CLI sumber terbuka memberi Anda pengujian API yang dapat dibaca, di-fork, diaudit, dan dijalankan di infrastruktur sendiri. Hurl dan Newman cocok untuk pemeriksaan request sehari-hari, Schemathesis dan Dredd untuk kontrak, k6 untuk performa, serta Tavern dan Venom untuk integrasi suite yang lebih luas.

Tidak ada keharusan memilih satu alat saja. Kombinasikan alat berdasarkan kebutuhan pipeline Anda, sambil mengevaluasi lisensi dan status pemeliharaan setiap proyek.

Jika Anda lebih memilih desain, pengujian, mocking, dan dokumentasi dalam satu workflow, Apidog menyediakan platform terpadu dengan apidog-cli untuk CI. Unduh Apidog untuk membandingkan workflow-nya dengan alat CLI yang sudah Anda gunakan.

Top comments (0)