DEV Community

Cover image for Cara Menjalankan Postman Collections di CI Tanpa Newman
Walse
Walse

Posted on • Originally published at apidog.com

Cara Menjalankan Postman Collections di CI Tanpa Newman

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.

Coba Apidog sekarang

💡 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:

  1. Newman adalah paket npm. Setiap pipeline yang menggunakannya membutuhkan npm pada saat build. Insiden keamanan npm menunjukkan potensi risiko rantai pasok.
  2. Batasan eksekusi Postman. Postman membatasi jumlah eksekusi koleksi pada tingkatan gratis/dasar. Pengguna yang menjalankan koleksi via API di CI kini terhambat kuota.
  3. 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
Enter fullscreen mode Exit fullscreen mode

Untuk runner CI berbasis Docker, gunakan image resmi:

FROM apidog/cli:latest
Enter fullscreen mode Exit fullscreen mode

Menjalankan Koleksi Postman

  1. Ekspor koleksi dari Postman (File > Export > Collection v2.1).
  2. Ekspor environment (Manage Environments > Export).

Jalankan perintah berikut:

apidog run collection.json \
  --environment environment.json \
  --reporter-junit results.xml
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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 .hurl sendiri, 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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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:

  1. Ekspor koleksi & environment.

    Di Postman, klik kanan koleksi > Export as v2.1. Ekspor environment secara terpisah.

  2. Instal Apidog CLI.

    Tambahkan langkah instalasi ke konfigurasi CI Anda.

  3. Ganti perintah Newman.

    Contoh perintah Newman:

   newman run collection.json -e environment.json --reporters junit --reporter-junit-export results.xml
Enter fullscreen mode Exit fullscreen mode

Ganti dengan Apidog:

   apidog run collection.json --environment environment.json --reporter-junit results.xml
Enter fullscreen mode Exit fullscreen mode

Struktur flag hampir sama.

  1. Cek kompatibilitas skrip.

    Jalankan koleksi secara lokal dengan Apidog CLI sebelum push ke CI. Sebagian besar skrip pm.* berjalan langsung. Jika ada pm.require, sesuaikan manual.

  2. Hapus Node.js dari CI jika tidak diperlukan.

    Jika Newman satu-satunya alasan Node.js ada di pipeline, hapus seluruh langkah setup Node.js dan npm 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)