Kısaca
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ı:
-
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. - 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ı.
- 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
Docker tabanlı CI çalıştırıcıları için Apidog resmi bir görüntü sağlar:
FROM apidog/cli:latest
Bir Postman koleksiyonunu çalıştırma
- Koleksiyonunuzu Postman’dan (Dosya > Dışa Aktar > Koleksiyon v2.1) ve ortamınızı (Ortamları Yönet > Dışa Aktar) dışa aktarın.
- Komutu çalıştırın:
apidog run collection.json \
--environment environment.json \
--reporter-junit results.xml
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
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
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-k6dö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
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
.hurldosya 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
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
Üç 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:
- 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.
- Apidog CLI’ı yükleyin. CI yapılandırmanıza kurulum adımını ekleyin.
-
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.
-
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.requireile harici modül kullanan betikler ek ayar gerektirebilir. -
CI yapılandırmasından Node.js’i kaldırın. Newman kullanımı tek neden ise, Node.js ve
npm installadı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)