TL;DR
Newman, runner CLI resmi Postman, membutuhkan npm dan Node.js di pipeline CI Anda. Ini menciptakan risiko rantai pasok, menambah beban manajemen dependensi, dan di tingkatan gratis Postman kini eksekusi koleksi via API dibatasi. Berikut tiga alternatif pengujian API di CI tanpa Newman: runner CLI Apidog, k6, dan Hurl. Apidog adalah opsi paling langsung jika Anda punya koleksi Postman karena mendukung impor native dan tidak ada batasan eksekusi.
💡 Apidog adalah platform pengembangan API all-in-one gratis. Runner CLI-nya menjalankan koleksi kompatibel Postman di CI tanpa dependensi npm dan tanpa batasan jumlah eksekusi. Coba Apidog gratis, tanpa kartu kredit.
Pendahuluan
Newman adalah alat CLI populer untuk menjalankan koleksi Postman di pipeline CI, membuat pengujian API menjadi portabel dan otomatis. Terintegrasi dengan GitHub Actions, banyak tim membangun strategi otomatisasi pengujian API berdasarkan Newman.
Namun, tiga masalah utama muncul:
- Newman adalah paket npm. Setiap pipeline yang menggunakannya membutuhkan npm pada saat build. Insiden keamanan npm menunjukkan potensi risiko rantai pasok.
- Batasan eksekusi Postman. Postman membatasi jumlah eksekusi koleksi pada tingkatan gratis/dasar. Pengguna yang menjalankan koleksi via API di CI kini terhambat kuota.
- Pemeliharaan lambat. Update Newman melambat, beberapa fitur scripting Postman tidak didukung penuh.
Alternatif untuk Newman kini banyak tersedia. Berikut opsi-opsinya.
Opsi 1: Apidog CLI (Direkomendasikan untuk Pengguna Koleksi Postman)
Runner CLI Apidog adalah pengganti paling fungsional bagi Newman, khususnya jika Anda sudah menggunakan koleksi Postman.
Fitur utama:
- Dukungan format Postman Collection v2 & v2.1
- Dukungan lingkungan Postman (ekspor JSON)
- Mendukung
pm.test,pm.expect,pm.environment.set,pm.collectionVariables.set - Skrip pre-request dan post-request
- Pengujian berbasis data (CSV & JSON)
- Output JUnit XML dan JSON untuk pelaporan CI
Tanpa npm. Apidog CLI berupa biner mandiri. Cukup unduh dan tambahkan ke PATH.
Tanpa batasan eksekusi. Tidak ada limitasi jumlah eksekusi koleksi pada semua paket.
Instalasi
Unduh biner CLI untuk platform Anda dari apidog.com/cli atau gunakan perintah shell berikut:
# macOS / Linux
curl -sSf https://apidog.com/cli/install.sh | sh
# Verifikasi
apidog --version
Untuk runner CI berbasis Docker, gunakan image resmi:
FROM apidog/cli:latest
Menjalankan Koleksi Postman
- Ekspor koleksi dari Postman (File > Export > Collection v2.1).
- Ekspor environment (Manage Environments > Export).
Jalankan perintah berikut:
apidog run collection.json \
--environment environment.json \
--reporter-junit results.xml
Contoh GitHub Actions
name: API Tests
on: [push, pull_request]
jobs:
api-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Apidog CLI
run: curl -sSf https://apidog.com/cli/install.sh | sh
- name: Run API tests
run: |
apidog run ./tests/collection.json \
--environment ./tests/env.json \
--reporter-junit test-results.xml
- name: Upload test results
uses: actions/upload-artifact@v4
if: always()
with:
name: api-test-results
path: test-results.xml
Tidak perlu npm install, package.json, atau pengaturan versi Node.js.
Contoh GitLab CI
api-tests:
image: apidog/cli:latest
script:
- apidog run ./tests/collection.json
--environment ./tests/env.json
--reporter-junit test-results.xml
artifacts:
reports:
junit: test-results.xml
Opsi 2: k6
k6 adalah alat pengujian beban dari Grafana Labs yang juga mendukung pengujian API fungsional.
Fitur utama:
- Mendukung HTTP/1.1, HTTP/2, WebSocket, gRPC
- Skrip pengujian dengan JavaScript (ES6+)
- Ambang batas untuk penegasan performa
- Output ke InfluxDB, Prometheus, Datadog
Keterbatasan:
- Tidak mendukung format koleksi Postman native. Konversi koleksi Postman ke skrip k6 perlu alat tambahan (
postman-to-k6) dan penyesuaian manual. - Tidak mendukung API
pm.*Postman secara native.
Kapan memilih k6:
Jika Anda perlu menggabungkan pengujian fungsional & performa dalam satu pipeline—misal, verifikasi API di bawah beban—k6 layak dicoba.
Penggunaan dasar k6 di CI:
# Instal (Linux)
sudo apt-get install k6
# Jalankan skrip pengujian
k6 run api-tests.js
Output CI lulus/gagal tergantung ambang batas dalam skrip. Output JUnit XML tersedia via plugin k6-reporter.
Opsi 3: Hurl
Hurl adalah alat pengujian HTTP open-source berbasis Rust. Cepat, tanpa dependensi runtime, dan menggunakan DSL sederhana untuk request & assert.
Fitur utama:
- Mendukung HTTP/1.1 & HTTP/2
- Penegasan JSON, XPath, regex
- Variabel & permintaan berantai
- Output HTML, JUnit, JSON
Keterbatasan:
- Tidak mendukung format koleksi Postman. Hurl memakai file
.hurlsendiri, tanpa konverter otomatis. - Tidak mendukung skrip pengujian JavaScript.
Kapan memilih Hurl:
Jika Anda ingin menulis ulang tes dalam DSL Hurl, Anda mendapat biner kecil (10 MB) tanpa runtime. Cocok untuk proyek baru tanpa "utang" koleksi Postman.
Contoh pengujian dasar Hurl:
GET https://api.example.com/users/1
HTTP 200
[Asserts]
jsonpath "$.id" == 1
jsonpath "$.email" isString
Hurl di GitHub Actions:
- name: Install Hurl
run: |
curl -LO https://github.com/Orange-OpenSource/hurl/releases/latest/download/hurl-x86_64-unknown-linux-gnu.tar.gz
tar -xf hurl-*.tar.gz
sudo mv hurl /usr/local/bin/
- name: Run API tests
run: hurl --test tests/*.hurl
Membandingkan Ketiga Opsi
| Fitur | Apidog CLI | k6 | Hurl |
|---|---|---|---|
| Impor Postman | Native | Konverter (lossy) | Tidak |
| Dependensi npm | Tidak | Tidak | Tidak |
| Skrip JavaScript | Ya (API pm.*) | Ya (ES6) | Tidak (hanya DSL) |
| Pengujian kinerja | Tidak | Ya | Tidak |
| Ukuran biner | ~50 MB | ~30 MB | ~10 MB |
| Batasan eksekusi gratis | Tidak ada | Tidak ada | Tidak ada |
| Output JUnit | Ya | Via plugin | Ya |
Migrasi dari Newman: Langkah-langkah Praktis
Jika pipeline Anda saat ini menggunakan Newman, berikut langkah migrasi ke Apidog CLI:
Ekspor koleksi & environment.
Di Postman, klik kanan koleksi > Export as v2.1. Ekspor environment secara terpisah.Instal Apidog CLI.
Tambahkan langkah instalasi ke konfigurasi CI Anda.Ganti perintah Newman.
Contoh perintah Newman:
newman run collection.json -e environment.json --reporters junit --reporter-junit-export results.xml
Ganti dengan Apidog:
apidog run collection.json --environment environment.json --reporter-junit results.xml
Struktur flag hampir sama.
Cek kompatibilitas skrip.
Jalankan koleksi secara lokal dengan Apidog CLI sebelum push ke CI. Sebagian besar skrippm.*berjalan langsung. Jika adapm.require, sesuaikan manual.Hapus Node.js dari CI jika tidak diperlukan.
Jika Newman satu-satunya alasan Node.js ada di pipeline, hapus seluruh langkah setup Node.js dannpm install.
FAQ
Apakah Newman resmi dihentikan?
Belum, hingga awal 2026 Newman masih dikelola Postman, namun update lambat dan beberapa issue penting tetap terbuka.
Apakah Apidog CLI butuh akun Apidog?
Untuk menjalankan koleksi ekspor lokal: tidak. Untuk sinkronisasi koleksi dari workspace Apidog: ya.
Dapatkah Apidog CLI menjalankan pengujian berbasis data?
Ya, gunakan flag --iteration-data dengan file CSV/JSON. Setara flag -d di Newman.
Apa risiko rantai pasok dengan runner npm?
Setiap paket npm yang diunduh saat build berisiko disusupi. Runner biner yang diunduh via HTTPS dan dipatok ke checksum mengurangi risiko ini.
Apakah k6 mendukung pengujian gRPC?
Ya, k6 mendukung gRPC native.
Apakah Hurl mendukung header autentikasi?
Ya, Hurl mendukung header kustom dan variabel, termasuk Authorization dan token Bearer.
Era Newman sebagai default CI API testing akan segera berakhir. Risiko rantai pasok dan batasan gratis telah mengubah strategi banyak tim, dan alternatif lebih baik kini tersedia. Migrasi ke pipeline bebas Newman sangat mudah, terutama dengan Apidog CLI untuk koleksi Postman Anda.
Top comments (0)