Apidog CLI testlerini Harness'ta, apidog-cli'yi kuran, apidog run komutunu çalıştıran ve JUnit sonuçlarını yayınlayan tek bir Çalıştır adımı içeren bir CI aşaması ekleyerek çalıştırırsınız. Apidog erişim jetonunuzu bir Harness sırrı olarak saklayın, <+secrets.getValue("...")> ifadesiyle referans verin ve bir JUnit rapor bloğunu CLI'ın XML çıktısına yönlendirin. Bu kılavuz size hem Harness Cloud hem de kendi kendine barındırılan bir temsilci için kopyala-yapıştır boru hattı YAML'ı sunar.
Harness CI/CD nedir?
Harness CI, Harness platformunun sürekli entegrasyon modülüdür. Kodunuzu yönetilen veya kendi kendine barındırılan derleme altyapısında oluşturur, test eder ve doğrular, ardından dağıtım için Harness CD'ye yapıtları teslim eder.
Her şeyi YAML olarak tanımlarsınız. Bir boru hattı bir veya daha fazla aşama içerir. Her aşamanın bir türü vardır ve bir CI aşaması derleme altyapısında çalışır. Aşamanın içinde, bir yürütme bloğu komutlarınızı çalıştıran sıralı bir adımlar listesi barındırır.
Model, API testine sorunsuz bir şekilde eşleşir. Bir CI aşaması eklersiniz, test komutunuzu çalıştıran bir adım koyarsınız ve Harness'ın derlemeyi sonuca göre kilitlemesini sağlarsınız. Testler başarısız olursa, adım başarısız olur ve boru hattı durur.
Harness, test raporlaması için JUnit XML'ini okur. Apidog CLI, JUnit üretebildiği için, her derlemede geçiş ve başarısızlık sayılarıyla birlikte yerel bir Testler sekmesine sahip olursunuz. Herhangi bir yapıştırma kodu gerekmez.
Harness CI nasıl çalışır
YAML hiyerarşisi katıdır, bu yüzden bir şey yazmadan önce iç içe geçmeyi görmek faydalıdır. Bir CI boru hattı yukarıdan aşağıya doğru şöyle görünür:
pipelinemeta verileri ve birstageslistesini tutar.- Her
stage'in birtype: CI'ı ve birspec'i vardır. stagespec'i derleme altyapısını ve birexecutionbloğunu tanımlar.executionbirstepslistesini tutar.- Her
step'in birtype,name,identifier'ı ve kendispec'i vardır.
Bir kabuk komutu çalıştırmak için adım tipi Run'dır. Çalıştır adımının spec'i bir shell alanı (Bash, Sh, PowerShell, Pwsh veya Python) ve betiğinizi içeren bir command alanı taşır. Çok satırlı komutları YAML blok skaler |- ile yazarsınız.
Apidog CLI'yi kurmak ve çalıştırmak için bu tek Çalıştır adımı yeterlidir. Bu kılavuzdaki diğer her şey, bu adımı çevreleyen yapılandırmadır.
Bir dakikada Apidog CLI
Apidog CLI, Apidog'da görsel olarak oluşturduğunuz test senaryoları için bir komut satırı çalıştırıcısıdır. Testleri uygulamada tasarlar, ardından Newman'ın Postman koleksiyonlarını çalıştırmasına benzer şekilde herhangi bir boru hattında başsız olarak yürütürsünüz. Karşılaştırmayı görmek isterseniz, Apidog CLI ve Newman'ı inceleyin.

npm'den kurar ve tek bir komut çalıştırırsınız:
npm install -g apidog-cli
apidog run --access-token <ACCESS_TOKEN> -t <TEST_SCENARIO_ID> -e <ENVIRONMENT_ID> -r cli,junit --out-dir ./apidog-reports
CI için birkaç işaret önemlidir. --access-token işareti bulut yürütmesini doğrular ve kısa formu yoktur. -e işareti ortamı ayarlar ve gereklidir. -t işareti bir test senaryosunu kimliğe göre seçer. -r işareti raporlayıcıları seçer ve junit desteklenen değerlerden biridir (cli, html, json, junit). --out-dir işareti raporların nereye kaydedileceğini kontrol eder, varsayılan olarak ./apidog-reports'tur.
Bu -r cli,junit seçeneği Harness'a köprü görevi görür. CLI, JUnit XML'ini çıktı dizinine yazar ve Harness bunu doğrudan okur. CLI'nin ne ürettiği hakkında daha fazla bilgi için Apidog CLI test raporları kılavuzuna bakın.
Apidog erişim jetonunuzu bir Harness sırrı olarak saklama
Jetonu asla YAML'ye doğrudan kodlamayın. Önce Harness sır yöneticisine ekleyin, sonra referans verin.
Harness kullanıcı arayüzünde, projenizin (veya organizasyon/hesabınızın) ayarlarına gidin, Sırlar'ı açın ve yeni bir Metin sırrı oluşturun. Buna apidog_token tanımlayıcısını verin. Tanımlayıcı, YAML'de referans verdiğiniz şeydir ve görünen adından farklıdır.
Sırrı şu ifadeyle referans verirsiniz:
<+secrets.getValue("apidog_token")>
Tırnakların içine görünen adı değil, tanımlayıcıyı kullanın. Organizasyon kapsamlı bir sır için, org. gibi <+secrets.getValue("org.apidog_token")> şeklinde önekleyin. Hesap kapsamlı bir sır için ise account. kullanın.
Kabuk komutunun içinde ifadeyi tek tırnak içine alın. Jeton bir $ karakteri içerebilir ve tek tırnaklar kabuğun bunu genişletmesini engeller. Jeton kurulumu hakkında daha fazla bilgiyi Apidog CLI kimlik doğrulama notlarında okuyabilirsiniz.
Harness Cloud boru hattı (önerilen başlangıç noktası)
Harness Cloud, size Node.js ve npm önceden yüklenmiş, Harness tarafından yönetilen derleme makineleri sunar. Bakımını yapacak altyapı yoktur ve Linux kutudan çıktığı gibi çalışır. Çalışan bir boru hattı elde etmenin en hızlı yolu budur.
Harness Cloud'da, aşama spec'i bir platform bloğu ve type: Cloud türünde bir runtime bloğu kullanır. Yönetilen makine zaten araçlara sahip olduğundan, burada Çalıştır adımında bir image belirtmezsiniz.
pipeline:
name: Apidog API Tests
identifier: apidog_api_tests
projectIdentifier: YOUR_PROJECT
orgIdentifier: YOUR_ORG
stages:
- stage:
name: API Tests
identifier: api_tests
type: CI
spec:
cloneCodebase: false
platform:
os: Linux
arch: Amd64
runtime:
type: Cloud
spec: {}
execution:
steps:
- step:
type: Run
name: Run Apidog CLI Tests
identifier: run_apidog_cli_tests
spec:
shell: Sh
command: |-
npm install -g apidog-cli
apidog run \
--access-token '<+secrets.getValue("apidog_token")>' \
-t 605067 \
-e 1629989 \
-n 1 \
-r cli,junit \
--out-dir ./apidog-reports
reports:
type: JUnit
spec:
paths:
- apidog-reports/*.xml
605067'yi test senaryo kimliğinizle ve 1629989'u ortam kimliğinizle değiştirin. -n 1 işareti bir yineleme çalıştırır. Testler Apidog'un bulutunda yaşadığı için cloneCodebase: false olarak ayarlayın, böylece boru hattının deponuza ihtiyacı olmaz.
Test sonuçlarını yayınlama
Çalıştır adımındaki reports bloğu, Harness'ta sonuçları gösteren şeydir. type olarak JUnit'i ve XML dosyalarınıza işaret eden bir paths listesi içeren bir spec'i alır.
reports:
type: JUnit
spec:
paths:
- apidog-reports/*.xml
Harness, yerel raporlama için yalnızca JUnit XML'ini ayrıştırır. Derlemeden sonra, her senaryo, durumu ve zamanlamasıyla birlikte bir Testler sekmesi görürsünüz. apidog-reports/*.xml glob'u, CLI'nin -r cli,junit ile varsayılan çıktı dizinine yazdığı dosyalarla eşleşir.
Harness ayrıca, kod değişikliğinden etkilenen testleri çalıştırmak için ayrı bir Test adım türü kullanan Test Zekası sunar. Bu optimizasyon, başsız API senaryolarını değil, dil düzeyindeki birim testlerini hedefler. Apidog CLI çıktısını almak için, JUnit reports bloğu olan basit bir Çalıştır adımı doğru yoldur.
Raporlayıcıları değiştirirseniz, -r listesinde en az junit'i tutun. Onsuz, CLI hiçbir XML yazmaz ve adımın kendisi başarılı olsa bile Testler sekmesi boş kalır.
Kendi kendine barındırılan temsilci alternatifi
Özel ağ erişimine, özel veya eski bir çalışma zamanına ihtiyacınız olduğunda veya Harness Cloud derleme kredilerinden kaçınmak istediğinizde temsilci destekli bir derleme kullanın. Bir Kubernetes temsilcisi, her aşamayı bir pod olarak çalıştırır.
Yapı iki şekilde değişir. Aşama spec'i platform ve runtime yerine bir infrastructure bloğu kullanır. Ve Kubernetes altyapısında, her Çalıştır adımı bir connectorRef ve bir image bildirmelidir, çünkü adım sizin belirttiğiniz bir kapsayıcının içinde çalışır.
spec:
cloneCodebase: false
infrastructure:
type: KubernetesDirect
spec:
connectorRef: YOUR_K8S_CONNECTOR
namespace: harness-ci
execution:
steps:
- step:
type: Run
name: Run Apidog CLI Tests
identifier: run_apidog_cli_tests
spec:
connectorRef: YOUR_DOCKER_CONNECTOR
image: node:20
shell: Sh
command: |-
npm install -g apidog-cli
apidog run \
--access-token '<+secrets.getValue("apidog_token")>' \
-t 605067 -e 1629989 -r cli,junit --out-dir ./apidog-reports
reports:
type: JUnit
spec:
paths:
- apidog-reports/*.xml
image: node:20 satırı size pod içinde Node.js ve npm sağlar. connectorRef değerleri, kayıtlı Kubernetes ve Docker bağlantılarınıza işaret eder. İki altyapı stilini tek bir aşamada karıştırmayın. Bir aşama ya Harness Cloud (platform artı runtime) ya da temsilci destekli (infrastructure)'dır, ikisi birden asla değildir.
Harness Cloud ve temsilci seçimi
API'lerinizin nerede yaşadığına ve derleme makinelerinin kime ait olduğuna göre seçin.
| Faktör | Harness Cloud | Kendi kendine barındırılan temsilci |
|---|---|---|
| Kurulum | Sıfır altyapı, npm önceden yüklü | Kümeyi veya VM'leri siz yönetirsiniz |
| Ağ erişimi | Genel uç noktalar | Özel ve dahili uç noktalar |
| Çalıştır adımı görüntü gerektirir | Hayır | Evet, Kubernetes altyapısında |
| Maliyet modeli | Derleme kredileri kullanır | Kendi işlem gücünüz |
| İçin en iyi | Bulut API'leri, hızlı başlangıç | Dahili API'ler, özel çalışma zamanları |
Apidog ortamınız genel uç noktalara ulaşıyorsa Harness Cloud ile başlayın. Test ortamınız bir VPN'in arkasında yer alıyorsa veya kontrol ettiğiniz bir çalışma zamanına ihtiyaç duyuyorsa bir temsilciye geçin. Çalıştır adımı ve Apidog komutu ikisi arasında neredeyse aynı kalır.
Veri odaklı çalıştırmalar
Parametreli testler için bir CSV veya JSON dosyasını çalıştırmaya besleyebilirsiniz. -d işareti (uzun adı --iteration-data) veri dosya yolunu alır ve -n yineleme sayısını ayarlar.
apidog run --access-token <ACCESS_TOKEN> -t <TEST_SCENARIO_ID> -e <ENVIRONMENT_ID> -d ./data.csv -n 5 -r cli,junit --out-dir ./apidog-reports
Bu, senaryoyu her veri satırı başına bir kez çalıştırır. Bir Harness Çalıştır adımında, önce git clone yapardınız veya veri dosyasını başka bir şekilde hazırlardınız, ardından -d'yi yoluna işaret ederdiniz. Tam deseni görmek için, Apidog CLI veri odaklı test ve daha geniş kapsamlı otomatik API testi kılavuzuna bakın.
Neden önce Apidog'da test tasarlamalısınız?
CLI yalnızca Apidog projenizde zaten var olan senaryoları çalıştırır. Önemli olan budur. Apidog, tasarım, hata ayıklama, test etme, taklit etme ve dokümantasyon için hepsi bir arada bir API platformudur, bu nedenle test paketinizi bir kez oluşturur ve her yerde yeniden kullanırsınız.

Testleri görsel bir oluşturucu ile tasarlarsınız, betikleme gerekmez. İstekleri zincirlersiniz, bir yanıttaki değerleri bir sonrakine çıkarır ve bir kullanıcı arayüzü aracılığıyla iddialar eklersiniz. CLI daha sonra bu tam paketi Harness'ta başsız olarak yürütür, böylece yerel olarak hata ayıkladığınız şey boru hattında çalışan şeydir.
Apidog, dal desteği ve takım çalışma alanları ile OpenAPI-yerel olduğu için, QA mühendisleriniz ve arka uç geliştiricileriniz tek bir doğru kaynağını paylaşır. Bir daldaki onaylanmış bir senaryo, apidog run komutunuzun yürüttüğü senaryo haline gelir. Daha geniş boru hattı desenleri için, CI/CD nedir başlangıç kılavuzu ve GitHub Actions iş akışı kılavuzu diğer sistemlerde aynı CLI'yi kapsar. Apidog testlerini Jenkins ile entegre etme kılavuzundaki Jenkins anlatımı aynı komut şeklini kullanır.
İlk test senaryonuzu oluşturmak için Apidog'u ücretsiz indirin, ardından yukarıdaki YAML ile Harness'a bağlayın.
Sıkça Sorulan Sorular
Harness CI/CD nedir?
Harness CI/CD, yazılım oluşturmak, test etmek ve dağıtmak için bir boru hattı platformudur. Boru hatlarını aşamalardan ve adımlardan oluşan YAML olarak tanımlarsınız. Bir CI aşaması derleme altyapısında, yani Harness tarafından yönetilen Bulut makinelerinde veya kendi kendine barındırılan bir temsilcide çalışır ve bir CD aşaması dağıtımı yönetir.
Harness CI nasıl çalışır?
Bir boru hattı bir aşamalar listesini tutar. Her CI aşamasının derleme altyapısını ve bir yürütme bloğunu bildiren bir spec'i vardır. Yürütme bloğu sıralı bir adımlar listesini çalıştırır. Bir Çalıştır adımı, Apidog CLI'yi kurup çalıştırdığınız bir kabuk komutunu yürütür.
Harness'ta sırları nasıl saklar ve kullanırsınız?
Harness sır yöneticisinde bir Metin sırrı oluşturun ve tanımlayıcısını not edin. YAML'de <+secrets.getValue("identifier")> ile referans verin, görünen adı yerine tanımlayıcıyı kullanın. Bu kapsamlar için org. veya account. ile önekleyin ve kabuk komutlarının içinde ifadeyi tek tırnak içine alın.
Harness'ta test sonuçlarını nasıl yayınlarsınız?
Çalıştır adımınıza type: JUnit ve XML dosyalarınıza işaret eden bir paths listesi içeren bir reports bloğu ekleyin. Harness, JUnit XML'ini ayrıştırır ve derlemenin Testler sekmesinde sonuçları gösterir. Apidog CLI, -r junit veya -r cli,junit komutunu geçtiğinizde bu XML'i yayar.
Harness CI ücretsiz mi?
Harness, CI için ücretsiz bir katman sunar ve Harness Cloud derlemeleri, planınıza dahil olan derleme kredilerini tüketir. Fiyatlandırma ve kredi limitleri zamanla değişir, bu nedenle bir katmana taahhüt vermeden önce kesin rakamlar için mevcut Harness fiyatlandırma sayfasını kontrol edin.
Depomu klonlamadan Apidog CLI testlerini çalıştırabilir miyim?
Evet. Testleriniz Apidog'un bulutunda yaşadığında aşamada cloneCodebase: false olarak ayarlayın. CLI, erişim jetonunuzla kimlik doğrulaması yapar ve senaryoyu ve ortamı kimliğe göre çeker, böylece boru hattının test çalıştırması için kaynak kodunuza asla ihtiyacı olmaz.
