Insomnia adalah klien API dari Kong untuk mengirim request dan memeriksa response. Tool ini mendukung HTTP, REST, GraphQL, gRPC, SOAP, dan WebSocket dalam satu aplikasi, dengan antarmuka yang ringan untuk debugging dan pengujian API sehari-hari.
Panduan ini menunjukkan alur praktis menguji API di Insomnia: membuat koleksi request, mengirim request, membaca response, memakai environment variable, menulis assertion, lalu menjalankan test suite dari CLI.
Instal Insomnia dan buat request pertama
Unduh Insomnia dari situs resmi Kong, lalu instal sesuai platform Anda.
Saat pertama dibuka, Insomnia akan menanyakan apakah Anda ingin login. Anda bisa memilih bekerja secara lokal tanpa akun. Sinkronisasi cloud bersifat opsional, dan perubahan terkait cloud pada Insomnia 8 dibahas di bagian akhir.
Langkah awal:
- Buka dashboard Insomnia.
- Klik Create.
- Pilih Request Collection.
- Beri nama, misalnya
Pengujian API Pengguna. - Di dalam koleksi, klik tombol +.
- Pilih HTTP Request.
Buat request pertama:
GET https://jsonplaceholder.typicode.com/users/1
Klik Send.
Di panel response, periksa:
- status code
- response body
- response time
- response size
- hasil JSON yang sudah diformat otomatis
Untuk response besar, gunakan filter JSONPath atau XPath agar lebih mudah menemukan field tertentu.
Konfigurasi method, query parameter, body, header, dan auth
Untuk request selain GET, Anda biasanya perlu mengatur body, query parameter, header, atau autentikasi.
Mengirim JSON dengan POST
Buat request baru dengan method POST, lalu buka tab Body dan pilih JSON.
Contoh payload:
{
"name": "Daniel Okafor",
"email": "daniel.okafor@example.com"
}
Saat Anda memilih body JSON, Insomnia otomatis menambahkan header:
Content-Type: application/json
Menambahkan query parameter
Gunakan tab Query untuk menambahkan query string tanpa mengedit URL secara manual.
Contoh:
GET https://api.example.com/users?page=1&limit=10
Di Insomnia, masukkan sebagai parameter:
| Key | Value |
|---|---|
page |
1 |
limit |
10 |
Keuntungannya: setiap parameter bisa diaktifkan atau dinonaktifkan satu per satu.
Menambahkan header
Gunakan tab Headers untuk nilai seperti:
Accept: application/json
X-Request-Id: test-123
Header ini berguna untuk content negotiation, tracing, atau kebutuhan khusus API internal.
Mengatur autentikasi
Buka tab Auth, lalu pilih skema yang sesuai. Insomnia mendukung beberapa jenis auth, termasuk:
- Bearer Token
- Basic Auth
- API Key
- OAuth 1.0
- OAuth 2.0
- AWS IAM
Untuk API berbasis token:
- Buka tab Auth.
- Pilih Bearer Token.
- Masukkan token secara langsung, atau lebih baik gunakan environment variable.
Contoh header yang akan dikirim:
Authorization: Bearer <token>
Jika Anda sedang menentukan status code yang tepat untuk endpoint REST, referensi tentang kode status HTTP yang harus digunakan oleh API REST bisa membantu.
Siapkan environment dan variable
Environment membantu Anda menghindari hardcode seperti base URL, token, atau ID resource.
Di Insomnia, environment adalah objek JSON yang melekat pada koleksi.
Langkahnya:
- Klik dropdown environment di sidebar.
- Pilih Manage Environments.
- Tambahkan variable pada Base Environment atau buat sub-environment.
Contoh environment untuk development:
{
"base_url": "https://jsonplaceholder.typicode.com",
"auth_token": "your-token-here"
}
Gunakan variable di request dengan sintaks:
{{ _.base_url }}
Contoh request:
GET {{ _.base_url }}/users/1
Untuk autentikasi:
Authorization: Bearer {{ _.auth_token }}
Buat sub-environment lain untuk production:
{
"base_url": "https://api.example.com",
"auth_token": "production-token"
}
Saat environment aktif diganti, semua request yang memakai variable akan otomatis menggunakan nilai baru.
Gunakan template tag untuk chaining request
Insomnia mendukung template tag, yaitu fungsi kecil yang bisa dimasukkan ke field request.
Template tag dapat digunakan untuk:
- membuat timestamp
- membuat UUID
- mengambil nilai dari response sebelumnya
- menggunakan token login secara otomatis di request berikutnya
Contoh skenario:
- Request
POST /loginmengembalikan token. - Request lain membutuhkan token tersebut di header
Authorization. - Insomnia mengambil token dari response login menggunakan JSONPath.
- Token dimasukkan otomatis ke request berikutnya.
Contoh response login:
{
"token": "abc123"
}
JSONPath untuk mengambil token:
$.token
Dengan pendekatan ini, dependensi antar-request tetap deklaratif. Anda tidak perlu menulis glue code hanya untuk mengambil token dan memasukkannya ke request lain.
Untuk ide pengelompokan test yang lebih luas, lihat panduan contoh kasus uji API.
Tulis test suite dengan assertion
Mengirim request hanya menunjukkan response. Untuk memverifikasi response secara otomatis, gunakan fitur test suite Insomnia, yang juga dapat muncul sebagai tab Unit Tests pada koleksi.
Langkah dasar:
- Buka koleksi.
- Masuk ke tampilan Tests.
- Buat test suite.
- Tambahkan test individual.
- Pilih request target dari dropdown.
- Tulis assertion.
- Klik Run Tests.
Insomnia menggunakan JavaScript dan assertion bergaya Chai.
Contoh test sederhana:
const response = await insomnia.send();
expect(response.status).to.equal(200);
Contoh test dengan parsing JSON body:
const response = await insomnia.send();
const body = JSON.parse(response.data);
expect(response.status).to.equal(200);
expect(body.email).to.equal("daniel.okafor@example.com");
expect(body).to.have.property("id");
Contoh assertion lain yang umum:
expect(response.headers["content-type"]).to.include("application/json");
expect(body.name).to.be.a("string");
expect(body.id).to.equal(1);
Test suite akan menampilkan hasil setiap test sebagai passed atau failed beserta durasinya.
Strukturkan test suite agar mudah dirawat
Saat jumlah test bertambah, struktur test suite menjadi penting.
Pola yang umum:
- satu suite per resource
- satu test untuk satu perilaku
- nama test harus menjelaskan skenario
- pisahkan happy path, not found, dan validation error
Contoh struktur:
User API tests
├── GET /users/1 returns user detail
├── GET /users/999 returns 404
├── POST /users creates user
└── POST /users rejects invalid email
Contoh assertion untuk kasus 404:
const response = await insomnia.send();
const body = JSON.parse(response.data);
expect(response.status).to.equal(404);
expect(body).to.have.property("message");
Dengan cakupan test yang kecil, failure lebih mudah dipahami tanpa membaca seluruh kode assertion.
Untuk praktik assertion yang lebih detail, baca panduan pernyataan API. Untuk struktur suite yang berkembang, lihat artikel tentang rangkaian uji untuk otomatisasi pengujian API.
Jalankan test dari command line dengan Inso
GUI cocok untuk debugging manual. Untuk CI/CD, gunakan CLI bernama Inso.
Setelah koleksi diekspor atau disinkronkan, jalankan test suite dari terminal:
inso run test "User API tests"
Jika ada test gagal, Inso mengembalikan exit code non-zero. Ini cocok untuk pipeline CI karena build bisa otomatis gagal saat test API rusak.
Contoh penggunaan di pipeline:
inso run test "User API tests"
Alur umumnya:
- Developer push perubahan.
- CI menjalankan test Insomnia via Inso.
- Jika assertion gagal, pipeline gagal.
- Endpoint bermasalah ditemukan sebelum masuk production.
Inso juga dapat digunakan untuk melint spesifikasi API dan membuat laporan test dalam format standar. Untuk pola lebih umum, artikel tentang mengotomatiskan tes API di CI/CD membahas pendekatan yang relevan untuk Inso.
Perubahan cloud di Insomnia 8 dan alternatifnya
Insomnia 8 bergerak ke model cloud-first. Secara default, pengguna didorong untuk membuat akun Kong dan menyimpan project di cloud.
Sebagian komunitas tidak menyukai perubahan ini karena versi sebelumnya lebih lokal dan ramah offline. Rilis berikutnya menghadirkan opsi lokal-saja atau Scratch Pad yang lebih jelas, tetapi perubahan tersebut membuat beberapa tim mengevaluasi alternatif, terutama untuk lingkungan yang membatasi data keluar dari infrastruktur internal.
Jika Anda membutuhkan alternatif, Apidog bisa dicoba. Apidog adalah platform API all-in-one untuk desain, debugging, mocking, pengujian, dan dokumentasi API. Apidog juga dapat mengimpor ekspor Insomnia, sehingga Anda tidak perlu memulai ulang dari nol.
Apidog memungkinkan Anda membuat assertion secara visual tanpa menulis JavaScript, tetapi tetap mendukung scripting jika dibutuhkan. Karena spesifikasi API, data test, dan mock server berada dalam satu project, test lebih mudah dijaga agar tetap selaras dengan kontrak API.
Anda dapat mengunduh Apidog dan mengimpor koleksi Insomnia untuk membandingkan alurnya secara langsung. Untuk opsi lain, daftar alat pengujian API online gratis mencakup beberapa alternatif.
Insomnia tetap kuat untuk developer individu dan tim kecil yang menginginkan klien API minimalis, cepat, dan fokus. Pilihan terbaik bergantung pada kebutuhan tim: cukup debugging request, atau ingin mengelola desain, mock, test, dan dokumentasi API dalam satu tempat.
Pertanyaan yang sering diajukan
Apakah Insomnia gratis untuk digunakan?
Ya. Insomnia memiliki tier gratis untuk penggunaan individu, termasuk mengirim request dan menjalankan test suite secara lokal. Paket berbayar menambahkan fitur kolaborasi tim dan batas sinkronisasi cloud yang lebih besar. Versi terbaru juga memungkinkan penggunaan lokal jika Anda tidak ingin memakai cloud sync.
Protokol apa saja yang didukung Insomnia?
Insomnia mendukung HTTP, REST, GraphQL, gRPC, SOAP, dan WebSocket. Setup request berbeda per protokol, tetapi pemeriksaan response dan assertion untuk request berbasis HTTP dapat digunakan secara konsisten.
Bagaimana cara menulis assertion di Insomnia?
Gunakan fitur test suite. Buka tampilan Tests pada koleksi, buat suite, lalu tambahkan test. Setiap test menggunakan JavaScript, memanggil insomnia.send(), lalu menjalankan assertion expect pada status, header, atau body.
Contoh:
const response = await insomnia.send();
const body = JSON.parse(response.data);
expect(response.status).to.equal(200);
expect(body).to.have.property("id");
Apa yang berubah di Insomnia 8?
Insomnia 8 beralih ke default cloud-first, mendorong pengguna untuk login dengan akun Kong dan menyinkronkan project ke cloud. Beberapa pengguna tidak menyukai perubahan dari aplikasi lokal ke alur berbasis akun. Pembaruan berikutnya menambahkan opsi lokal-saja yang lebih jelas.
Bisakah saya menjalankan test Insomnia di pipeline CI?
Ya. Gunakan Inso, CLI pendamping Insomnia. Ekspor atau sinkronkan koleksi, lalu jalankan:
inso run test "<nama rangkaian>"
Jika ada test gagal, Inso mengembalikan exit code non-zero sehingga CI dapat menggagalkan build secara otomatis.
Top comments (0)