İşbirliğine dayalı yazılım geliştirmede, her kod kaydından sonra API testlerini manuel olarak çalıştırmak hızla sıkıcı hale gelebilir. Yeni kod her gönderildiğinde bu testlerin otomatik olarak çalışması daha iyi olmaz mıydı?
İyi haber şu ki, bu tamamen mümkün. Çoğu ekip, kod derlemelerini ve dağıtımlarını yönetmek için zaten CI/CD platformlarını kullanıyor ve bu platformlar Git commit olaylarını dinlemek üzere tasarlanmıştır. Kod gönderdiğinizde, derleme, paketleme veya dağıtma gibi önceden tanımlanmış görevleri otomatik olarak yürütürler.
Otomatik API testlerini çalıştırmak da farklı değildir. Apidog, tek bir komutla otomatik testleri tetiklemenize olanak tanıyan bir CLI aracı sağlar. Bu komutu CI/CD hattınıza ekleyerek, her kod gönderiminden sonra testlerin otomatik olarak çalışmasını sağlayabilirsiniz.
Kurulum süreci basittir. Anlaşılması gereken ana şey, tetikleme mekanizmasının nasıl çalıştığı ve ardından ekibinizin kullandığı platforma göre doğru entegrasyon yaklaşımını seçmektir.
Otomatik Test Tetikleyicileri Nasıl Çalışır? (Prensipler)
Tüm sürecin özü "Olay Dinleme + Komut Yürütme"dir.
Kodu bir Git deposuna gönderdiğinizde, CI/CD platformu bu Git olayını dinler ve önceden ayarlanmış yapılandırmanıza (örneğin pipeline betikleri veya yapılandırma dosyaları) göre Apidog test komutunu otomatik olarak yürütür.
Bu prensip şu şekilde gösterilebilir:

CI/CD platformlarının Git olaylarını dinlemesinin başlıca iki yolu vardır:
Birincisi, platformun yerleşik olay mekanizmasıdır. Örneğin, GitHub Actions yapılandırma dosyasında doğrudan belirtilebilir: on: [push, pull_request]
. Kod gönderdiğinizde veya bir PR oluşturduğunuzda, platform bu Git olaylarını otomatik olarak dinler ve test etmeye başlar.

İkincisi, Webhook aracılığıyla, Jenkins gibi platformlar arası iletişimin gerektiği senaryolar için uygundur. Bir tetikleme URL'sini manuel olarak yapılandırmanız gerekir.
Yöntem ne olursa olsun, son adım her zaman aynıdır: otomatik testi başlatmak için apidog run
komutunu yürütün.
Popüler Platformlar İçin Entegrasyon Çözümleri
GitHub veya GitLab gibi kod barındırma platformlarını kullanıyorsanız, testleri tetiklemek özellikle basittir. Bu platformlar, Git olaylarını doğrudan dinleyebilen ve görevleri yürütebilen yerleşik CI/CD hizmetlerine (GitHub Actions, GitLab CI gibi) sahiptir. Hızlı bir başlangıç yapmak için bu belgelere başvurabilirsiniz:
Ancak, birçok ekibin daha karmaşık kurulumları vardır. Örneğin, kod GitHub veya GitLab'da barındırılıyor, ancak CI/CD hattı Jenkins'te çalışıyor. Bu durumda, GitHub/GitLab ve Jenkins iki bağımsız sistemdir — ilki doğrudan ikincisini tetikleyemez.
Platformlar arası senaryolar için Webhook'lar basit ve etkili bir çözümdür. Bir Webhook, bir geri arama mekanizması gibi çalışır — belirli bir olay (Git push gibi) GitHub'da gerçekleştiğinde, harici bir sistemi uyarmak için önceden tanımlanmış bir Webhook URL'sine aktif olarak bir istek gönderir. Bir Webhook uç noktası sunarak, Jenkins bu bildirimleri alabilir ve test görevlerini otomatik olarak tetikleyebilir.
Belirli bir yapılandırmaya bakalım: kod GitHub'da barındırılıyor, ancak test hattı Jenkins'te çalışıyor.
Apidog Otomatik Testlerini Çalıştırmak İçin GitHub + Jenkins Entegrasyonu
Ekibiniz kodu GitHub'da depoluyor ancak derleme görevlerini çalıştırmak için Jenkins kullanıyorsa, işte nasıl kurabileceğiniz:
Adım 1: Jenkins'i Yapılandırın ve Webhook URL'sini Alın
Öncelikle, Jenkins'te test görevini hazırlayın. Bir proje oluşturmak, derleme komutunu yapılandırmak ve CLI komutunun düzgün çalışabildiğinden emin olmak için Jenkins ile Entegrasyon belgelerini takip edin.

Ardından, Jenkins'ten Webhook URL'sini alın. Bu URL, harici sistemlerin Jenkins'i çağırması için bir giriş noktası görevi görür ve GitHub, test görevlerini tetiklemek için bunu kullanacaktır.
En basit yol, "Generic Webhook Trigger" eklentisini kurmaktır. Jenkins'in eklenti yönetim sayfasında arayın ve kurun, ardından Jenkins'i yeniden başlatın.

Ardından projenizin yapılandırma sayfasına gidin ve bu eklentiyi etkinleştirin. Webhook adresi şöyle olacaktır:
http://<Jenkins sunucu adresiniz>/generic-webhook-trigger/invoke`

Güvenlik için özel bir Token ayarlamanız önerilir, böylece adres şöyle olur:
http://<Jenkins sunucu adresiniz>/generic-webhook-trigger/invoke?token=<xxxxxx>
Bu URL'ye sahip olduğunuzda, GitHub'da Webhook'u yapılandırabilirsiniz.
Adım 2: GitHub Webhook'unu Yapılandırın
"GitHub deponuz → Ayarlar → Webhook'lar" bölümüne gidin, yeni bir Webhook ekleyin, önceki adımdaki adresi girin, İçerik türünü application/json
olarak ayarlayın, testi tetiklemek istediğiniz push veya diğer olayları seçin ve yapılandırmayı kaydedin.

Yapılandırmadan sonra, her kod gönderimi otomatik olarak Jenkins'i test görevini yürütmeye tetikleyecektir. Test etmek için biraz kod gönderebilir ve Jenkins derleme günlüklerini ve test sonuçlarını kontrol edebilirsiniz.
Adım 3: Tüm Süreci Doğrulayın
Kodu GitHub'a gönderdiğinizde, yapılandırılmış Webhook Jenkins'e bir bildirim gönderecektir. Jenkins isteği alacak ve derleme görevini otomatik olarak başlatacaktır. Test yürütme günlüklerini Jenkins projesinin "Konsol"unda ve nihai test raporunu görebilirsiniz.

Diğer Platformlar İçin Webhook Yapılandırması
GitHub dışında, diğer kod barındırma platformları da Webhook'ları destekler, örneğin:
Yapılandırma yöntemleri benzerdir. Anahtar, tetikleme mekanizmasını anlamaktır: bir Git commit'i bir olay oluşturur, bu olay daha sonra olay dinleme veya Webhook aracılığıyla CI/CD platformunu bilgilendirmek için kullanılır ve nihayetinde test komutunun otomatik yürütülmesini tetikler.
Daha fazla CI/CD platformu entegrasyon yöntemi için, Apidog resmi belgelerinin CI/CD Entegrasyonu bölümüne bakın.