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ı?
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
Bu komut:
- Koleksiyon JSON dosyasını okur.
- Ortam değişkenlerini yükler.
- İstekleri sırayla çalıştırır.
-
pm.testbloklarını yürütür. - 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
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
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:
- Koleksiyon Postman workspace içinde tutulur.
- CI ortamında Postman API key secret olarak saklanır.
- Pipeline
postman loginile kimlik doğrular. - Koleksiyon Postman’dan çekilir.
- 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
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
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
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
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
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:
- API tanımı güncellenir.
- CI çalışır.
- Postman CLI linting/governance kontrolünü yürütür.
- 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ış:
- API endpoint’lerini tasarlayın.
- İstekleri Apidog içinde test edin.
- Görsel doğrulamalarla test senaryoları oluşturun.
- Senaryoları CI/CD içinde CLI runner ile çalıştırın.
- 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)