DEV Community

Cover image for Postman Koleksiyonlarını Newman Olmadan CI'da Çalıştırma
Tobias Hoffmann
Tobias Hoffmann

Posted on • Originally published at apidog.com

Postman Koleksiyonlarını Newman Olmadan CI'da Çalıştırma

Kısaca

Apidog'u bugün deneyin

Postman'ın resmi CLI çalıştırıcısı olan Newman, CI pipeline’ınızda npm ve Node.js gerektirir. Bu durum tedarik zinciri riski yaratır, bağımlılık yönetimi yükü ekler ve Postman'ın ücretsiz katmanında, API aracılığıyla koleksiyon çalıştırmaları artık hız sınırlıdır. Bu kılavuz, Newman olmadan CI'da API testlerini çalıştırmak için üç alternatifi kapsar: Apidog'un CLI çalıştırıcısı, k6 ve Hurl. Mevcut Postman koleksiyonlarınız varsa, Apidog en doğrudan yoldur çünkü bunları yerel olarak içe aktarır ve çalıştırma başına bir sınırı yoktur.

💡 Apidog ücretsiz, hepsi bir arada bir API geliştirme platformudur. CLI çalıştırıcısı, npm bağımlılığı ve çalıştırma sayısı sınırı olmadan Postman uyumlu koleksiyonları CI'da çalıştırır. Apidog'u ücretsiz deneyin, kredi kartı gerekmez.

Giriş

Newman iyi bir fikirdi. Postman koleksiyonlarını CI pipeline’larında çalıştıran bir CLI aracı, API testini taşınabilir ve otomatikleştirilebilir hale getirdi. Postman'ın marka güveniyle birlikte geldi, popüler bir topluluk eylemi aracılığıyla GitHub Actions ile entegre oldu ve birçok ekibin tüm API test otomasyon stratejilerini üzerine kurduğu kadar iyi çalıştı.

Sonra üç sorun ortaya çıktı:

  1. Newman bir npm paketidir. Onu kullanan her pipeline, derleme sırasında npm deposundan çekim yapar. Tedarik zinciri saldırıları (örn. ua-parser-js, node-ipc) npm bağımlılığının güvenlik riski taşıdığını gösterdi.
  2. Koleksiyon çalıştırmaları sınırlı. Postman ücretsiz ve temel ücretli katmanlarda koleksiyon çalıştırmalarını sınırlandırmaya başladı. API aracılığıyla koleksiyon çalıştırmaya güvenen ekipler kotalara takıldı ve ya daha pahalı plana geçmek ya da pipeline’ı değiştirmek zorunda kaldı.
  3. Bakım yavaşladı. Newman’ın bakım hızı düştü. Sorunlar aylarca kapatılmıyor. Yeni Postman betik API’lerinin desteği tutarsız.

Sonuç: CI pipeline'larını Newman üzerine kuran geliştiriciler artık alternatifler arıyor. İşte mevcut seçenekler.

Seçenek 1: Apidog CLI (Postman koleksiyon kullanıcıları için önerilir)

Halihazırda Postman koleksiyonlarına yatırım yaptıysanız, Apidog'un CLI çalıştırıcısı Newman için en yakın işlevsel alternatiftir.

Desteklenenler:

  • Postman Koleksiyonu v2 ve v2.1 formatı
  • Postman ortamları (JSON dışa aktarımı)
  • pm.test, pm.expect, pm.environment.set, pm.collectionVariables.set
  • İstek öncesi ve istek sonrası betikler
  • CSV ve JSON veri dosyaları ile veri odaklı test
  • CI raporlaması için JUnit XML ve JSON çıktısı

npm gerekmez. Apidog CLI, bağımsız bir ikilidir. Bir kez indirip PATH’inize eklersiniz, hemen kullanırsınız.

Çalıştırma başına limit yok. Apidog, hiçbir planda koleksiyon çalıştırma sayısını sınırlandırmaz. Günde 500 koleksiyon çalıştıran bir pipeline ile 5 koleksiyon çalıştıran pipeline aynı şekilde çalışır.

Kurulum

Platformunuz için CLI ikilisini apidog.com/cli?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation adresinden indirin veya kabuk yükleyiciyi kullanın:

# macOS / Linux
curl -sSf https://apidog.com/cli/install.sh?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation | sh

# Doğrulama
apidog --version
Enter fullscreen mode Exit fullscreen mode

Docker tabanlı CI çalıştırıcıları için Apidog resmi bir görüntü sağlar:

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

Bir Postman koleksiyonunu çalıştırma

  1. Koleksiyonunuzu Postman’dan (Dosya > Dışa Aktar > Koleksiyon v2.1) ve ortamınızı (Ortamları Yönet > Dışa Aktar) dışa aktarın.
  2. Komutu çalıştırın:
apidog run collection.json \
  --environment environment.json \
  --reporter-junit results.xml
Enter fullscreen mode Exit fullscreen mode

GitHub Actions örneği

name: API Testleri

on: [push, pull_request]

jobs:
  api-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Apidog CLI Kurulumu
        run: curl -sSf https://apidog.com/cli/install.sh?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation | sh

      - name: API testlerini çalıştır
        run: |
          apidog run ./tests/collection.json \
            --environment ./tests/env.json \
            --reporter-junit test-results.xml

      - name: Test sonuçlarını yükle
        uses: actions/upload-artifact@v4
        if: always()
        with:
          name: api-test-results
          path: test-results.xml
Enter fullscreen mode Exit fullscreen mode

Ekstra bağımlılık yok: npm install, package.json, Node.js sürüm matrisi gerekmez. İş daha hızlı çalışır ve bağımlılık yüzeyi küçülür.

GitLab CI örneği

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

Seçenek 2: k6

k6, Grafana Labs'tan gelen ve işlevsel API testini de destekleyen bir yük testi aracıdır. Özellikle performans testiyle API fonksiyonelliğini birleştirmek istiyorsanız güçlüdür.

Desteklenenler:

  • HTTP/1.1, HTTP/2, WebSocket, gRPC
  • JavaScript test betikleri (ES6+)
  • Performans iddiaları için eşikler
  • InfluxDB, Prometheus, Datadog entegrasyonu

Desteklenmeyenler:

  • Yerel Postman koleksiyon formatı. postman-to-k6 dönüştürücüsü ile k6 betiği oluşturabilirsiniz ancak karmaşık betikler için manuel düzenleme gerekebilir.
  • Postman’ın pm.* API’sini doğrudan desteklemez.

Ne zaman k6? Fonksiyonel testleri performans testleriyle aynı pipeline'da çalıştırmak istiyorsanız k6 mantıklı. Sadece API fonksiyon testi için Apidog kurulumu daha hızlıdır.

CI’da temel k6 kullanımı:

# Kurulum (Linux)
sudo apt-get install k6

# Test betiğini çalıştır
k6 run api-tests.js
Enter fullscreen mode Exit fullscreen mode

JUnit XML çıktısı için k6-reporter paketini kullanabilirsiniz.

Seçenek 3: Hurl

Hurl, Rust ile yazılmış açık kaynaklı bir HTTP test aracıdır. Sıfır çalışma zamanı bağımlılığı ile hızlıdır; düz metin DSL ile test tanımlar.

Desteklenenler:

  • HTTP/1.1 ve HTTP/2
  • JSON, XPath ve regex iddiaları
  • Değişkenler ve zincirleme istekler
  • HTML, JUnit ve JSON çıktısı

Desteklenmeyenler:

  • Postman koleksiyon formatı. Hurl kendi .hurl dosya formatını kullanır, dönüştürücü yok.
  • JavaScript test betikleri. Tüm iddialar bildirimseldir.

Ne zaman Hurl? Testlerinizi Hurl DSL’de yeniden yazmaya açıksanız ve küçük, bağımsız bir ikili istiyorsanız Hurl mantıklıdır. Özellikle yeni projeler için uygundur.

Temel Hurl test örneği:

GET https://api.example.com/users/1
HTTP 200
[Asserts]
jsonpath "$.id" == 1
jsonpath "$.email" isString
Enter fullscreen mode Exit fullscreen mode

GitHub Actions’da Hurl:

- name: Hurl Kurulumu
  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: API testlerini çalıştır
  run: hurl --test tests/*.hurl
Enter fullscreen mode Exit fullscreen mode

Üç seçeneği karşılaştırma

Özellik Apidog CLI k6 Hurl
Postman içe aktarma Yerel Dönüştürücü (kayıplı) Hayır
npm bağımlılığı Hayır Hayır Hayır
JavaScript betikleme Evet (pm.* API) Evet (ES6) Hayır (yalnızca DSL)
Performans testi Hayır Evet Hayır
İkili boyutu ~50 MB ~30 MB ~10 MB
Ücretsiz çalıştırma sınırları Yok Yok Yok
JUnit çıktısı Evet Eklenti aracılığıyla Evet

Newman'dan geçiş: pratik adımlar

Mevcut Newman tabanlı bir pipeline’ınız varsa, Apidog CLI’a geçiş için aşağıdaki yol haritasını izleyin:

  1. Koleksiyonlarınızı dışa aktarın. Postman’da her koleksiyonu sağ tıklayın ve v2.1 olarak dışa aktarın. Ortamlarınızı da ayrı ayrı dışa aktarın.
  2. Apidog CLI’ı yükleyin. CI yapılandırmanıza kurulum adımını ekleyin.
  3. Newman komutunu değiştirin.

    • Eski:
     newman run collection.json -e environment.json --reporters junit --reporter-junit-export results.xml
    
  • Yeni:

     apidog run collection.json --environment environment.json --reporter-junit results.xml
    

Bayraklar benzer şekilde çalışır.

  1. Betik uyumluluğunu kontrol edin. CI’a commit etmeden önce koleksiyonunuzu Apidog CLI ile yerelde çalıştırın. Çoğu pm.* betiği doğrudan çalışır. pm.require ile harici modül kullanan betikler ek ayar gerektirebilir.
  2. CI yapılandırmasından Node.js’i kaldırın. Newman kullanımı tek neden ise, Node.js ve npm install adımlarını tamamen kaldırabilirsiniz.

Sıkça Sorulan Sorular

Newman resmi olarak kullanımdan kaldırıldı mı?

Hayır, 2026 başı itibarıyla Newman hala Postman tarafından bakımı yapılmaktadır. Ancak bakım yavaş ve bazı açık sorunlar mevcut. Yeni pipeline kurmak için riski artıyor.

Apidog CLI bir Apidog hesabı gerektiriyor mu?

Yerel olarak dışa aktarılan koleksiyonları çalıştırmak için gerekmez. Sadece Apidog çalışma alanından koleksiyonları senkronize etmek için gereklidir.

Apidog CLI veri odaklı testleri çalıştırabilir mi?

Evet. --iteration-data bayrağı ile CSV veya JSON veri dosyası geçebilirsiniz. Bu, Newman’ın -d bayrağı ile aynıdır.

npm tabanlı çalıştırıcılarla tedarik zinciri riski nedir?

CI sırasında npm’den çekilen paketler potansiyel saldırı yüzeyidir. Güvenliği ihlal edilmiş paketler ortam değişkenlerini ve API anahtarlarını sızdırabilir. Sabitlenmiş bir ikili ile bu risk ortadan kalkar.

k6 gRPC testini destekliyor mu?

Evet. k6, yerel gRPC desteğine sahiptir ve aynı test paketinde hem REST hem de gRPC test edebilirsiniz.

Hurl kimlik doğrulama başlıklarını destekliyor mu?

Evet. Authorization, Bearer ve çerez tabanlı oturum dahil tüm özel başlıkları destekler. Değişkenlerle ortamdan sır enjekte edebilirsiniz.


Newman'ın API testleri için varsayılan CI seçimi olma dönemi sona eriyor. Tedarik zinciri riskleri gerçek, ücretsiz katman sınırlamaları birçok ekip için dengeyi değiştirdi ve artık daha iyi alternatifler mevcut. Newman'sız bir pipeline'a geçiş kolaydır, özellikle mevcut Postman koleksiyonlarınızla Apidog CLI'a geçiyorsanız.

Top comments (0)