DEV Community

Cover image for Postman CLI mi Newman mı: Hangi Komut Satırı Aracı Kullanılmalı?
Tobias Hoffmann
Tobias Hoffmann

Posted on • Originally published at apidog.com

Postman CLI mi Newman mı: Hangi Komut Satırı Aracı Kullanılmalı?

Yıllardır Postman koleksiyonlarını masaüstü uygulaması dışında çalıştırmanın pratik yolu Newman’dı. Postman CLI çıktıktan sonra aynı ihtiyacı karşılayan iki seçenek oluştu: Her ikisi de koleksiyonları GUI olmadan çalıştırır, CI/CD içinde kullanılabilir ve pm.test doğrulamalarını yürütür. Fark, aracı nerede konumlandırdığınızda ortaya çıkar: bağımsız bir runner mı istiyorsunuz, yoksa Postman bulutuna bağlı bir pipeline aracı mı?

Apidog'u bugün deneyin

Kısa karar özeti:

  • Newman: Açık kaynaklı, npm tabanlı, hesap gerektirmeyen koleksiyon çalıştırıcıdır.
  • Postman CLI: Postman hesabına/API anahtarına bağlıdır, çalıştırma sonuçlarını Postman platformuna raporlar.
  • Newman testleri repo içinde JSON dosyalarıyla sürümlemek isteyen ekipler için daha doğaldır.
  • Postman CLI Postman çalışma alanını doğruluk kaynağı yapan ve yönetişim/linting kontrollerini pipeline’a eklemek isteyen ekipler için daha uygundur.

Newman Nedir?

Newman, Postman koleksiyonlarını komut satırından çalıştıran orijinal runner’dır. npm paketi olarak kurulur, açık kaynaklıdır ve Postman hesabı gerektirmez.

Temel kullanım:

npm install -g newman

newman run checkout-api.postman_collection.json \
  --environment staging.postman_environment.json
Enter fullscreen mode Exit fullscreen mode

Bu komut:

  1. Koleksiyon JSON dosyasını okur.
  2. Ortam değişkenlerini yükler.
  3. İstekleri sırayla çalıştırır.
  4. pm.test bloklarını yürütür.
  5. Test hatası varsa sıfır olmayan exit code döndürür.

CI/CD açısından önemli olan son adımdır. Örneğin GitHub Actions, Jenkins veya GitLab CI’da Newman başarısız olduğunda pipeline da başarısız olur.

Newman’ın güçlü tarafı bağımsızlığıdır. Şunlara ihtiyaç duymaz:

  • Postman hesabı
  • API anahtarı
  • Postman bulutuna erişim
  • Çalışma alanı senkronizasyonu

Bu nedenle kapalı ağlarda, regülasyonlu ortamlarda veya testlerin tamamen repo içinde tutulduğu yapılarda öngörülebilir bir seçenektir.

Newman ayrıca raporlama tarafında esnektir. Yerleşik CLI ve JUnit çıktısına ek olarak topluluk raporlayıcıları kullanılabilir:

npm install -g newman-reporter-htmlextra

newman run checkout-api.postman_collection.json \
  --environment staging.postman_environment.json \
  -r cli,htmlextra \
  --reporter-htmlextra-export reports/api-test-report.html
Enter fullscreen mode Exit fullscreen mode

Daha fazla bağlam için Newman ve Postman arasındaki fark rehberine bakabilirsiniz.

Postman CLI Nedir?

Postman CLI, Postman’ın resmi komut satırı aracıdır. Newman’dan farklı olarak npm paketi değildir; kurulum betiğiyle yüklenen tek bir yürütülebilir dosya olarak gelir.

Örnek kurulum ve kullanım:

# macOS/Linux örneği
curl -o- "https://dl-cli.pstmn.io/install/osx_64.sh" | sh

# kimlik doğrulama
postman login --with-api-key YOUR_API_KEY

# koleksiyon çalıştırma
postman collection run checkout-api
Enter fullscreen mode Exit fullscreen mode

Postman CLI’ın temel farkı bulut entegrasyonudur. Koleksiyonları Postman çalışma alanınızdan kimlik bazında çekebilir ve çalıştırma sonuçlarını Postman platformuna geri gönderebilir.

Bu modelde tipik akış şöyledir:

  1. Koleksiyon Postman workspace içinde tutulur.
  2. CI ortamında Postman API key secret olarak saklanır.
  3. Pipeline postman login ile kimlik doğrular.
  4. Koleksiyon Postman’dan çekilir.
  5. Sonuçlar Postman platformuna raporlanır.

Postman CLI yalnızca bir koleksiyon runner’ı değildir. Postman platformuna bağlı bir pipeline aracısı gibi çalışır. Özellikle API yönetişimi, linting ve merkezi çalıştırma geçmişi isteyen ekipler için anlamlıdır.

Newman ve Postman CLI Karşılaştırması

Yön Postman CLI Newman
Kaynak Kapalı kaynak, resmi Postman aracı Açık kaynak
Kurulum Kurulum betiği, tek executable npm paketi
Postman hesabı Gerekli Gerekli değil
Kimlik doğrulama API anahtarı ile Yok
Koleksiyon kaynağı Postman bulutu veya yerel dosya Yerel JSON dosyası
Sonuç raporlama Postman platformuna Terminal, JUnit, HTML vb.
API yönetişimi/linting Dahili Dahil değil
Raporlayıcılar Daha sınırlı, Postman odaklı CLI, JUnit, topluluk HTML raporlayıcıları
Çevrimdışı kullanım Sınırlı Yerel dosyalarla tamamen mümkün
Olgunluk Daha yeni Uzun süredir kullanılan topluluk standardı
Maliyet Ücretsiz kullanılabilir, Postman plan limitlerine bağlıdır Ücretsiz, hesap gerektirmez

Kararı belirleyen ana fark şudur:

  • Newman, “elimde bir koleksiyon dosyası var, bunu çalıştır ve sonucu pipeline’a bildir” yaklaşımını izler.
  • Postman CLI, “Postman workspace içindeki koleksiyonu çalıştır, sonucu Postman platformuna geri gönder” yaklaşımını izler.

CI/CD İçinde Nasıl Kullanılır?

Her iki araç da Jenkins, GitHub Actions, GitLab CI, CircleCI ve benzeri CI sağlayıcılarında çalışır. Ancak pipeline tasarımı farklıdır.

Newman ile CI/CD Akışı

Newman kullandığınızda koleksiyon ve environment dosyalarını genellikle repo’ya koyarsınız:

.
├── .github/
│   └── workflows/
│       └── api-tests.yml
├── tests/
│   ├── checkout-api.postman_collection.json
│   └── staging.postman_environment.json
└── package.json
Enter fullscreen mode Exit fullscreen mode

GitHub Actions örneği:

name: API Tests

on:
  push:
    branches: [main]
  pull_request:

jobs:
  newman:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repo
        uses: actions/checkout@v4

      - name: Install Newman
        run: npm install -g newman

      - name: Run API tests
        run: |
          newman run tests/checkout-api.postman_collection.json \
            --environment tests/staging.postman_environment.json
Enter fullscreen mode Exit fullscreen mode

JUnit çıktısı üretmek isterseniz:

      - name: Run API tests with JUnit report
        run: |
          newman run tests/checkout-api.postman_collection.json \
            --environment tests/staging.postman_environment.json \
            -r cli,junit \
            --reporter-junit-export reports/newman-results.xml
Enter fullscreen mode Exit fullscreen mode

Bu modelin avantajı:

  • Testler kodla birlikte sürümlenir.
  • Pull request içinde test değişiklikleri incelenebilir.
  • Postman hesabı veya bulut erişimi gerekmez.
  • Pipeline daha az dış bağımlılığa sahiptir.

Bu yaklaşım hakkında daha fazla örnek için CI/CD’de API testlerini otomatikleştirme ve GitHub Actions ile API test otomasyonu rehberlerine bakabilirsiniz.

Postman CLI ile CI/CD Akışı

Postman CLI kullandığınızda genellikle koleksiyon Postman workspace içinde tutulur. CI tarafında API anahtarını secret olarak saklarsınız.

Örnek GitHub Actions akışı:

name: API Tests

on:
  push:
    branches: [main]
  pull_request:

jobs:
  postman-cli:
    runs-on: ubuntu-latest

    steps:
      - name: Install Postman CLI
        run: |
          curl -o- "https://dl-cli.pstmn.io/install/linux64.sh" | sh

      - name: Login to Postman
        run: postman login --with-api-key ${{ secrets.POSTMAN_API_KEY }}

      - name: Run collection
        run: postman collection run checkout-api
Enter fullscreen mode Exit fullscreen mode

Bu modelin avantajı:

  • Koleksiyon Postman workspace içinde merkezi kalır.
  • Çalıştırma geçmişi Postman platformunda görülebilir.
  • Dashboard ve ekip görünürlüğü Postman üzerinden yönetilebilir.
  • API yönetişimi/linting kontrolleri pipeline’a eklenebilir.

Ancak şu bağımlılıkları kabul etmiş olursunuz:

  • CI ortamı Postman’a erişebilmelidir.
  • API anahtarı secret olarak yönetilmelidir.
  • Doğruluk kaynağı repo yerine Postman workspace olabilir.
  • Sonuç raporlama Postman platformuna bağlı hale gelir.

Doğruluk Kaynağı: Repo mu, Postman Workspace mi?

Seçim yapmadan önce şu soruyu netleştirin:

API testlerinin doğruluk kaynağı nerede olmalı?

Eğer cevap Git repo ise Newman daha uygun olur. Koleksiyon dosyaları, environment dosyaları ve test değişiklikleri kodla birlikte sürümlenir.

Eğer cevap Postman workspace ise Postman CLI daha uygun olur. Koleksiyonlar Postman’da yönetilir, pipeline da bunları oradan çalıştırır.

Pratik fark şudur:

Newman modeli:
Repo → CI → Newman → rapor dosyaları / exit code

Postman CLI modeli:
Postman Workspace → CI → Postman CLI → Postman platformu
Enter fullscreen mode Exit fullscreen mode

Bu fark küçük görünür, ancak ekip süreçlerini doğrudan etkiler.

API Yönetişimi ve Linting

Newman ve Postman CLI arasındaki en belirgin farklardan biri API yönetişimidir.

Postman CLI, Postman workspace içindeki API tanımları üzerinde linting ve governance kontrolleri çalıştırabilir. Bu kontroller adlandırma, güvenlik, şema tutarlılığı ve organizasyon kuralları gibi alanlarda kullanılabilir.

Pipeline içinde bu şu anlama gelir:

  1. API tanımı güncellenir.
  2. CI çalışır.
  3. Postman CLI linting/governance kontrolünü yürütür.
  4. Kural ihlali varsa build başarısız olur.

Newman’da bunun doğrudan karşılığı yoktur. Newman koleksiyonları çalıştırır, test sonuçlarını raporlar ve exit code döndürür. API tasarım standartlarını denetlemek Newman’ın kapsamı dışındadır.

Bu nedenle:

  • Sadece endpoint testleri çalıştıracaksanız Newman yeterlidir.
  • API tasarım kurallarını pipeline’da zorunlu kılacaksanız Postman CLI daha uygundur.

Geçiş Yapmalı mısınız?

Newman kullanıyorsanız ve mevcut pipeline sorunsuz çalışıyorsa Postman CLI’a geçmek zorunda değilsiniz.

Geçiş şu değişiklikleri gerektirir:

  • CI ortamına Postman API key eklemek
  • Koleksiyonların kaynaklandığı yeri değiştirmek
  • Postman bulutuna bağımlılığı kabul etmek
  • Raporlama akışını yeniden düzenlemek
  • Ekipte workspace izinlerini ve erişimleri yönetmek

Aşağıdaki ihtiyaçlardan biri yoksa geçişin getirisi sınırlı olabilir:

  • Postman platformunda merkezi çalıştırma geçmişi
  • Postman dashboard’larında sonuç görünürlüğü
  • API governance/linting kontrolleri
  • Postman workspace’i doğruluk kaynağı yapma isteği

Yeni başlayan ekipler için karar daha açık şekilde iş akışına bağlıdır.

Postman zaten ana API platformunuzsa ve ekip koleksiyonları orada yönetiyorsa Postman CLI mantıklıdır. Testleri repo içinde tutmak, bağımsız çalışmak ve vendor bağımlılığını azaltmak istiyorsanız Newman daha doğal bir başlangıçtır.

Hangi Aracı Seçmelisiniz?

Newman’ı seçin, eğer:

  • Postman hesabı olmadan çalışmak istiyorsanız
  • Koleksiyonları repo içinde sürümlemek istiyorsanız
  • CI ortamınızın Postman bulutuna erişmesini istemiyorsanız
  • JUnit veya HTML gibi dosya tabanlı raporlara ihtiyacınız varsa
  • Açık kaynaklı ve olgun bir runner tercih ediyorsanız
  • Kapalı veya kısıtlı ağlarda test çalıştırıyorsanız

Postman CLI’ı seçin, eğer:

  • Ekibiniz Postman workspace içinde çalışıyorsa
  • Çalıştırma geçmişini Postman platformunda görmek istiyorsanız
  • API governance/linting kontrollerini pipeline’a eklemek istiyorsanız
  • Koleksiyonların merkezi olarak Postman’da yönetilmesini tercih ediyorsanız
  • Postman dashboard ve ekip görünürlüğü sizin için önemliyse

Postman ekosistemine bağlı kalmadan alternatif yaklaşımları da değerlendirmek istiyorsanız Newman olmadan CI’da Postman koleksiyonlarını çalıştırma ve Postman olmadan API testi yazılarına göz atabilirsiniz.

Tek Araç Alternatifi: Apidog

Hem Newman hem de Postman CLI, testlerinizi Postman koleksiyonları etrafında kurguladığınızı varsayar. Apidog farklı bir yaklaşım sunar: API tasarımı, istek hata ayıklama, otomatik test senaryoları ve CI/CD çalıştırma akışı aynı ürün içinde yer alır.

Bu modelde ayrı bir dışa aktarma veya ayrı runner paketi kullanmanız gerekmez. Test tanımları ve yürütme motoru aynı platformun parçasıdır.

Tipik akış:

  1. API endpoint’lerini tasarlayın.
  2. İstekleri Apidog içinde test edin.
  3. Görsel doğrulamalarla test senaryoları oluşturun.
  4. Senaryoları CI/CD içinde CLI runner ile çalıştırın.
  5. API tasarımı, mock server ve performans testlerini aynı akışta yönetin.

Apidog ayrıca API tasarımı, mock server’lar ve performans testlerini de kapsar. Böylece ekipler API yaşam döngüsünü birden fazla aracı birleştirmeden yönetebilir. Apidog’u indirebilir ve pipeline’lar için CLI runner dahil test özelliklerini kullanabilirsiniz.

Sıkça Sorulan Sorular

Postman CLI, Newman’ın yerini mi alıyor?

Postman, Postman CLI’ı resmi komut satırı aracı olarak konumlandırıyor. Ancak Newman hâlâ kullanılan ve bakımı devam eden bir araçtır. Hesap gerektirmeyen, repo içinde sürümlenen ve bağımsız çalışan bir runner istiyorsanız Newman hâlâ güçlü bir seçenektir.

Postman CLI Postman hesabı gerektiriyor mu?

Evet. Postman CLI, Postman API anahtarı ile kimlik doğrulaması yapar ve çalıştırmaları Postman workspace’inize bağlamak üzere tasarlanmıştır. Newman ise hesap gerektirmez; yerel koleksiyon JSON dosyasıyla çalışabilir.

Hangi araç daha iyi raporlama sunar?

İhtiyaca göre değişir.

Newman, dosya tabanlı raporlama açısından daha esnektir. JUnit XML, CLI çıktısı ve newman-reporter-htmlextra gibi HTML raporlayıcıları kullanabilirsiniz.

Postman CLI ise sonuçları Postman platformuna raporlar. Ekibiniz sonuçları Postman dashboard’larında görmek istiyorsa bu avantajdır; bağımsız rapor dosyaları istiyorsanız Newman daha pratiktir.

Postman CLI yerel koleksiyon dosyası çalıştırabilir mi?

Evet, Postman CLI yerel koleksiyon dosyalarını çalıştırabilir. Ancak tasarım olarak Postman workspace ile entegre çalışmaya ve sonuçları platforma raporlamaya odaklanır. Yerel JSON dosyalarını ana doğruluk kaynağı yapmak istiyorsanız Newman bu modele daha doğal uyar.

CI’da hangisi daha hızlıdır?

Saf koleksiyon yürütmesinde fark genellikle büyük değildir. Newman daha küçük bir ayak izine sahiptir ve bulut senkronizasyonu gerektirmez. Postman CLI ise kimlik doğrulama ve sonuçları Postman platformuna gönderme gibi ek adımlar içerir.

Çoğu ekip için ham hızdan çok iş akışı uyumu daha önemlidir:

  • Repo merkezli testler için Newman
  • Postman workspace merkezli testler için Postman CLI

Top comments (0)