Jika Anda menjalankan Insomnia di CI, Anda pasti tahu inso. Ini adalah pendamping baris perintah untuk klien API Insomnia open-source dari Kong, dan melakukan tiga hal berguna dari terminal: menjalankan suite pengujian, menjalankan koleksi permintaan, dan melinting spesifikasi OpenAPI dengan Spectral. Bagi banyak tim, itu sudah cukup. Bagi yang lain, masalahnya cepat muncul.
Panduan ini menjelaskan apa sebenarnya inso itu, mengapa tim mulai mencari alternatif inso, dan alat mana yang menggantikannya tergantung pada pekerjaan yang perlu Anda lakukan. Beberapa adalah platform API lengkap. Beberapa adalah *runner* kecil dengan satu tujuan. Tidak ada yang merupakan pengganti yang sempurna, jadi jawaban jujur untuk "apa alternatif insomnia cli terbaik" adalah "itu tergantung untuk apa Anda menjalankan inso hari ini."
tombol
Apa yang dilakukan inso, dan di mana masalahnya dimulai
inso membaca dari direktori .insomnia di direktori kerja Anda (dibuat oleh Git Sync Insomnia) atau dari direktori data aplikasi Insomnia jika aplikasi desktop terinstal. Anda mereferensikan spesifikasi dan suite berdasarkan nama, bukan berdasarkan jalur file:
inso run test "My API Test Suite" --env "Staging"
inso run collection "Smoke Tests" --env "Staging"
inso lint spec "Petstore Design Doc"
inso export spec "Petstore Design Doc" --output openapi.yaml
Instalasinya mudah. Homebrew (brew install inso), gambar Docker (docker pull kong/inso:latest), atau unduhan zip langsung untuk Windows, Linux, dan macOS. Spectral, linter OpenAPI Stoplight, mendukung inso lint spec. Linting tersebut adalah kekuatan yang nyata, dan patut diingat sebelum Anda beralih.
Jadi mengapa mencari alternatif untuk inso? Beberapa alasan yang sering muncul:
- Keterkaitan dengan basis data aplikasi Insomnia. Sumber kebenaran pengujian Anda berada di dalam direktori
.insomniaatau folder data aplikasi. Jika Anda tidak menggunakan aplikasi desktop, modelnya terasa terbalik. - Referensi berbasis nama. Suite dan spesifikasi direferensikan berdasarkan nama tampilan. Mengganti nama suite di GUI dan perintah CI Anda akan rusak secara diam-diam. Nama bukanlah pengidentifikasi yang stabil.
- Episode akun cloud. Insomnia 8 (2023) memperkenalkan akun login cloud yang diwajibkan, yang menimbulkan reaksi keras. Ada juga insiden kehilangan data dan migrasi di sekitar periode itu. Tim yang terlanjur "terbakar" mulai mencari alat yang tidak mengikat data permintaan mereka ke akun vendor.
- Pemisahan Linting vs. pengujian.
insomenggabungkan linting spesifikasi dan pengujian permintaan. Jika Anda hanya membutuhkan salah satunya, Anda mungkin ingin alat yang melakukannya tanpa yang lain.
Jika linting OpenAPI adalah alasan utama Anda menjalankan inso, beralih alat mungkin akan memakan biaya lebih banyak daripada yang dihemat. Sebagian besar *runner* di bawah ini berfokus pada eksekusi permintaan dan *assertion*, bukan pemeriksaan *style-guide* gaya Spectral. Ingatlah perbedaan itu saat Anda membaca.
Alternatif-alternatif secara sekilas
| Alat | Tipe | Format sumber | Berbasis data | Reporter | Sumber terbuka | Terbaik untuk |
|---|---|---|---|---|---|---|
| Apidog CLI | *Runner* platform lengkap | Proyek Apidog / Impor OpenAPI | Ya (-d CSV/JSON) |
CLI, HTML, JSON | Tidak (tingkat gratis) | Satu platform: desain, *mock*, dokumen, uji |
| Newman | *Runner* koleksi Postman | JSON koleksi Postman | Ya (-d CSV/JSON) |
CLI, HTML, JSON | Ya | Koleksi Postman yang sudah ada |
| Hoppscotch CLI | *Runner* koleksi OSS | JSON koleksi Hoppscotch / ID cloud | Ya (data iterasi CSV) | CLI, JUnit XML | Ya | Pipeline OSS gratis, dapat di-*host* sendiri |
| Step CI | Penguji API Deklaratif | File *workflow* YAML / JSON | Terbatas | CLI, JUnit | Ya | Pengujian berbasis spesifikasi, *config-as-code* |
| Hurl | *Runner* HTTP teks biasa | File teks .hurl |
Melalui variabel | CLI, JUnit, HTML | Ya | *Assertion* HTTP ringan |
1. Apidog CLI (opsi all-in-one)
Apidog adalah platform API all-in-one yang mencakup desain, *debugging*, pengujian, *mocking*, dan dokumentasi. Apidog CLI membawa sisi pengujian ke terminal dan CI/CD Anda, dan di situlah ia bersaing langsung dengan inso.
apidog run mengeksekusi skenario pengujian dan koleksi dari baris perintah. Ini mendukung pengujian berbasis data dengan -d (dataset CSV atau JSON), *environment* dengan -e, dan *reporter* dalam format CLI, HTML, dan JSON. Ini juga dapat mengunggah laporan pengujian cloud dengan --upload-report, sehingga hasilnya tidak hanya hilang di log CI.
apidog run --access-token <token> -t <scenario-id> -e <env-id>
apidog run -t <scenario-id> -d ./users.csv -r html,cli
apidog run -t <scenario-id> --upload-report
Selain menjalankan pengujian, Apidog CLI mengelola sumber daya API sebagai kode: mengimpor OpenAPI, dan bekerja dengan *endpoint*, skema, *environment*, cabang, dan permintaan *merge* dari terminal. Model *branch-and-resource-as-code* itu lebih dekat ke *workflow* asli Git daripada pola direktori .insomnia, dan itulah alasan tim memilih Apidog ketika mereka menginginkan satu alat daripada tumpukan yang disambung-sambung.
Catatan Jujur: Apidog CLI tidak memiliki linter OpenAPI, *style-guide*, *split*, *join*, atau perintah *bundle* yang berdiri sendiri. Ini memvalidasi spesifikasi saat impor, tetapi tidak melintingnya seperti yang dilakukan inso dengan Spectral. Jika linting terminal adalah kebutuhan inti Anda, itu adalah celah yang nyata, dan inso (atau Redocly CLI) mempertahankan keunggulannya di sana. Di mana Apidog menang adalah integrasi: desain, *mock*, dokumen, dan pengujian hidup di satu tempat, dengan *run* berbasis data dan *reporter* multi-format yang terpasang.
Kelebihan
- Satu platform untuk desain, *mock*, dokumen, dan pengujian, bukan alat terpisah yang direkatkan
- *Run* berbasis data (
-d), tiga format *reporter*, *environment*, laporan cloud - Sumber daya dan cabang dikelola sebagai kode dari CLI
Kekurangan
- Tidak ada linter spesifikasi yang berdiri sendiri (memvalidasi saat impor, tidak melinting seperti Spectral)
- Tingkat gratis daripada sepenuhnya sumber terbuka
Jika Anda membandingkan *runner* terminal secara langsung, panduan lengkap Apidog CLI membahas penyiapan, dan ada perincian langsung seperti Apidog CLI vs Newman dan Apidog CLI vs Postman CLI. Untuk menghubungkannya ke otomatisasi, lihat panduan GitHub Actions.
2. Newman (*runner* CLI Postman)
Newman adalah *runner* koleksi baris perintah open-source Postman. Jika tim Anda sudah menggunakan Postman, ini adalah alternatif inso cli yang jelas, karena ia menjalankan koleksi persis yang sudah Anda buat.
newman run collection.json -e staging.json -d data.csv -r cli,html,json
Newman mendukung iterasi berbasis data dengan -d, file *environment* dengan -e, dan *reporter* dalam format CLI, HTML, dan JSON. Ini matang, terdokumentasi dengan baik, dan umum dalam contoh CI.
Kelebihan
- Menjalankan koleksi Postman yang ada tanpa pengerjaan ulang
- Sumber terbuka, komunitas besar, banyak resep CI
- Ekosistem *reporter* yang solid
Kekurangan
- Terikat pada format koleksi Postman dan model sinkronisasinya
- Tidak ada linting OpenAPI sama sekali
- Anda mengelola koleksi di aplikasi Postman, bukan sebagai file spesifikasi biasa
Untuk perbandingan *side-by-side* di mana Newman berakhir dan *runner* platform dimulai, perbandingan Apidog CLI vs Newman mencakup *reporter*, *run* berbasis data, dan pelaporan cloud.
3. Hoppscotch CLI (*runner* sumber terbuka)
Hoppscotch adalah ekosistem API sumber terbuka (web, desktop, CLI, dan dapat di-*host* sendiri) yang diposisikan sebagai alternatif Postman dan Insomnia. CLI-nya, @hoppscotch/cli, menjalankan koleksi di CI.
Instalasi membutuhkan Node.js v22 atau yang lebih baru (pengguna Node 20 tetap menggunakan CLI v0.26.0):
npm i -g @hoppscotch/cli
hopp test ./collection.json -e ./env.json -d 100
hopp test <collection-id> --token <pat> --server https://hoppscotch.example.com
hopp test ./collection.json --reporter-junit ./report.xml
hopp test secara rekursif menjalankan setiap permintaan dalam koleksi, mengeksekusi skrip *pre-request* dan pengujian (*suite* pw.test(), kasus pw.expect()), dan memvalidasi respons. Ini keluar dengan status *non-zero* jika ada *assertion* yang gagal. *Flag* mencakup *environment* (-e), *delay* (-d), *personal access tokens* (--token), server yang di-*host* sendiri (--server), output JUnit XML (--reporter-junit), dan iterasi berbasis data (--iteration-count, --iteration-data).
Kelebihan
- Sepenuhnya sumber terbuka dan dapat di-*host* sendiri, tidak ada akun vendor yang wajib
- *Runner* OSS gratis asli dengan pelaporan JUnit dan iterasi berbasis data
- Referensi koleksi cloud atau yang di-*host* sendiri
Kekurangan
- Persyaratan Node v22+ dapat menjadi masalah bagi *image* CI yang lebih lama
- Ekosistem lebih kecil daripada Newman
- Tidak ada linting OpenAPI
Jika Anda mempertimbangkan jalur sumber terbuka, alternatif Hoppscotch dan Postman vs Hoppscotch memberikan konteks yang berguna, dan ada perincian langsung Apidog CLI vs Hoppscotch CLI.
4. Step CI (opsi deklaratif)
Step CI memiliki bentuk yang berbeda. Alih-alih menunjuk ke koleksi yang dibuat di GUI, Anda menulis pengujian API sebagai file *workflow* YAML atau JSON deklaratif yang berada di *repo* Anda. Pengujian adalah *config*, ditinjau dalam *pull request* seperti kode lainnya.
version: "1.1"
name: Status check
tests:
health:
steps:
- name: GET health
http:
url: https://api.example.com/health
method: GET
check:
status: 200
Ini menarik jika Anda menganggap referensi berbasis nama inso rapuh. Di sini, definisi pengujian adalah file, dan jalur file adalah pengidentifikasi. Step CI berjalan secara lokal dan di CI serta mengeluarkan output JUnit.
Kelebihan
- Pengujian adalah file deklaratif di *repo* Anda, dapat ditinjau di PR
- Tidak ada basis data aplikasi, tidak ada ketergantungan GUI
- Sangat cocok untuk tim berbasis spesifikasi
Kekurangan
- Kurang interaktif daripada *runner* berbasis GUI untuk *debugging* ad-hoc
- Komunitas lebih kecil; Anda menulis lebih banyak secara manual
- Dukungan berbasis data lebih terbatas daripada Newman atau Apidog
Step CI adalah pengganti insomnia cli yang bersih khusus untuk tim yang ingin definisi pengujian berada di samping kode aplikasi mereka daripada di dalam basis data alat.
5. Hurl (opsi teks biasa)
Hurl adalah entri paling minimal di sini. Anda menulis permintaan HTTP dan *assertion* dalam file teks .hurl biasa, dan Hurl menjalankannya. Tidak ada GUI, tidak ada basis data, tidak ada akun, hanya teks.
GET https://api.example.com/users/1
HTTP 200
[Asserts]
jsonpath "$.id" == 1
jsonpath "$.name" exists
Jalankan dengan hurl --test users.hurl. Ini merangkai permintaan, menangkap variabel di antara mereka, dan mendukung laporan JUnit dan HTML. Untuk *smoke test* dan pemeriksaan kontrak, ini cepat dan hampir tanpa konfigurasi.
Kelebihan
- Format teks biasa yang sangat sederhana, terkontrol versi dengan bersih
- Tidak ada aplikasi, tidak ada akun, jejak kecil di CI
- Permintaan berantai dengan variabel yang ditangkap
Kekurangan
- Bukan kerangka pengujian lengkap; skenario kompleks menjadi bertele-tele
- Tidak ada GUI koleksi, jadi kurang mudah didekati untuk pengguna non-CLI
- Tidak ada linting OpenAPI
Cara memilih
Pilih berdasarkan pekerjaan, bukan berdasarkan merek:
- Anda menginginkan satu alat untuk desain, *mock*, dokumen, dan pengujian. Gunakan Apidog CLI. Ini adalah pengganti terluas dan satu-satunya di sini yang memperlakukan sumber daya dan cabang sebagai kode.
- Anda sudah memiliki koleksi Postman. Gunakan Newman. Jangan membangun ulang apa yang sudah Anda miliki.
- Anda menginginkan sumber terbuka dan dapat di-*host* sendiri sepenuhnya. Gunakan Hoppscotch CLI, atau Hurl jika Anda menginginkan sesuatu yang lebih ringan.
- Anda menginginkan pengujian sebagai file deklaratif di *repo* Anda. Gunakan Step CI.
- Anda terutama menjalankan
inso lint spec. Berpikir dua kali sebelum beralih. Linting Spectral adalah kekuatan nyatainso, dan sebagian besar *runner* di sini tidak menggantikannya. Pasangkan *runner* dengan Spectral secara langsung, atau cari CLI linting khusus.
Jika Anda bermigrasi dari ekosistem Insomnia yang lebih luas, bukan hanya inso, ini layak dibaca: Apidog vs Insomnia, alternatif aplikasi Insomnia terbaik, dan panduan pemulihan untuk kehilangan data dan migrasi Insomnia. Untuk perpindahan khusus CLI-ke-CLI, lihat migrasi dari inso ke Apidog CLI.
