DEV Community

Cover image for Apidog Otomatik API Testlerini Zamanlama: Bulut, Runner ve CLI
Tobias Hoffmann
Tobias Hoffmann

Posted on • Originally published at apidog.com

Apidog Otomatik API Testlerini Zamanlama: Bulut, Runner ve CLI

Geçen bir test paketi, yalnızca geçmeye devam ederse işe yarar. Ödeme akışınız bugün çalışıyor olabilir; ancak bir bağımlılık sabah 2'de önemli bir değişiklik yapabilir, bir sertifika hafta sonunda sona erebilir veya yapılandırma kayması Pazar günü ödeme uç noktasını devre dışı bırakabilir. Sorunu bir test çalıştırmasından değil, sinirli bir müşteriden öğrenirsiniz. Çözüm basit ve güvenilirdir: API testlerini belirli bir programda, insan müdahalesi olmadan çalıştırın ve bir şey bozulduğunda bildirim alın.

Apidog'u bugün deneyin

Apidog, bunun için yerleşik Zamanlanmış Görevler özelliği sunar. Mevcut test senaryolarınızı seçer, çalışma periyodunu belirlersiniz, görevi çalıştıracak makineyi seçer ve bildirimleri yapılandırırsınız.

Canlı uç noktalara karşı gözetimsiz kontroller çalıştırmaya yeni başlıyorsanız, API izleme başlangıç yazısı daha geniş bağlam sunar. Arayüz ayrıntıları için Apidog Zamanlanmış Görevler dokümantasyonunu kullanın.

Not: Zamanlanmış Görevler özelliği şu anda Beta olarak etiketlenmiştir. Kullanabileceğiniz zamanlanmış çalıştırma sayısı planınıza bağlıdır.

Zamanlanmış görevler ne işe yarar?

Apidog'da zamanlanmış görev, bir veya daha fazla kaydedilmiş Test Senaryosunu tekrar eden bir programda çalıştırır. Örnek kullanım alanları:

  • Temel API için gece regresyon testi
  • Staging ortamında birkaç saatte bir smoke test
  • Hafta sonu sağlık taraması
  • Ödeme, kimlik doğrulama veya sipariş akışları için üretim kontrolleri

Görev şu bilgileri saklar:

  • Çalıştırılacak test senaryoları
  • Hedef ortam
  • Çalışma sıklığı
  • Testleri çalıştıracak Runner
  • Başarısızlık durumunda bildirim kanalları

Bu özellik web kazıma veya veri toplama için kullanılan zamanlayıcılardan farklıdır. Sayfa tarama kuralları ya da seçiciler yazmazsınız. Bunun yerine mevcut API test senaryolarınızı çalıştırırsınız:

  • İddialar
  • Zincirlenmiş istekler
  • Çıkarılmış değişkenler
  • Test verileri
  • İstek ve yanıt kayıtları

Çıktı, kazınmış bir veri kümesi değil; API sözleşmenizin geçme/kalma raporudur.

Başlamadan önce: kendi barındırdığınız bir Runner yapılandırın

Zamanlanmış görevleri çalıştırmadan önce kendi barındırdığınız bir Runner yapılandırmanız gerekir.

Runner, test paketinizi çalıştıran makinedir. Zamanlanmış görev tetiklendiğinde Apidog istekleri masaüstü istemcinizde çalıştırmaz; işi seçtiğiniz Runner'a devreder. Paketteki tüm API istekleri bu makineden gönderilir.

Runner için şunları kullanabilirsiniz:

  • CI sunucusu
  • Sürekli açık küçük bir sunucu
  • Özel sanal makine
  • API'nizle aynı ağda çalışan bir makine

Runner'ın belirlediğiniz zamanlarda açık, erişilebilir ve API hedeflerinize ağ üzerinden ulaşabilir olması gerekir.

Runner hedef alanında iki seçenek görebilirsiniz:

  1. Apidog Cloud — “yakında gelecek” olarak listelenir.
  2. Kendi barındırdığınız Runner — bugün kullanılabilen seçenek.

Apidog Cloud henüz mevcut olmadığından, zamanlanmış görevler için kendi barındırdığınız Runner'ı seçin.

Runner ağını doğru seçin

İstekler Runner makinesinden gönderildiği için ağ ortamı sonuçları doğrudan etkiler. Örneğin Runner:

  • Kurumsal VPN arkasında olabilir.
  • Farklı bir bölgede çalışıyor olabilir.
  • Güvenlik duvarı bulunan bir alt ağda olabilir.
  • API'nize dizüstü bilgisayarınızdan farklı şekilde erişiyor olabilir.

Bu fark genellikle istenen bir durumdur: kullanıcılarınızın veya üretim altyapınızın gördüğü koşulları daha gerçekçi biçimde test edersiniz.

Adım adım zamanlanmış görev oluşturma

Aşağıdaki örnek, kullanıcı kaydı, ürün listeleme, sepet ve Stripe ile ödeme içeren bir e-ticaret API'si için gece regresyon paketi oluşturur.

1. Testler modülünde Zamanlanmış Görevleri açın

Apidog istemcisinde Testler modülünü açın.

Testler klasör ağacında Zamanlanmış Görevler bölümüne tıklayın. Bu ekran, projedeki tüm görevleri görüntüleyip yönetebileceğiniz merkezi alandır.

Buradan şunları takip edebilirsiniz:

  • Hangi görevlerin etkin olduğu
  • Hangi görevlerin ne zaman çalışacağı
  • Hangi ortamların hedeflendiği
  • Geçmiş çalıştırma sonuçları

2. Yeni görev oluşturun

Yeni bir zamanlanmış görev oluşturmak için + Yeni seçeneğine tıklayın.

İsterseniz görevleri gruplamak için klasör de oluşturabilirsiniz. Örneğin:

Zamanlanmış Görevler
├── Production
│   ├── Gece regresyonu
│   └── Saatlik sağlık kontrolü
└── Staging
    ├── 6 saatlik smoke test
    └── Sürüm öncesi doğrulama
Enter fullscreen mode Exit fullscreen mode

Göreve anlaşılır bir ad ve açıklama verin:

Görev adı: Gece regresyonu - Production
Açıklama: Kimlik doğrulama, katalog, sepet ve ödeme kritik akışları
Enter fullscreen mode Exit fullscreen mode

Her görevi daha sonra silmeden etkinleştirebilir veya devre dışı bırakabilirsiniz.

3. Çalıştırılacak test senaryolarını seçin

Test Senaryosu alanında göreve dahil edeceğiniz bir veya daha fazla senaryoyu seçin.

E-ticaret örneği için aşağıdaki senaryoları tek görev altında toplayabilirsiniz:

  • Kaydol ve giriş yap
  • Ürünleri listele ve sepete ekle
  • Stripe test kartı ile ödeme yap

Bu yaklaşım kritik kullanıcı yolunu tek bir zamanlanmış çalıştırmada doğrulamanızı sağlar.

Her senaryoda ayrı yürütme ayarları tanımlayabilirsiniz:

  • Ortam
  • Test verileri
  • Yineleme sayısı
  • Gecikme
  • İstek ve yanıtların kaydedilmesi

Tüm senaryolara aynı ayarları uygulamak istiyorsanız aynı yürütme yapılandırmasını kullan seçeneğini etkinleştirin. Bu seçenek özellikle büyük regresyon paketlerini hızlı ve tutarlı biçimde hazırlamak için kullanışlıdır.

4. Ortamı seçin

Ortam seçimi, zamanlanmış testlerde en kritik yapılandırmalardan biridir.

Örnek kullanım:

Görev Ortam
Gece üretim monitörü Production
Sürüm öncesi smoke test Staging
Geliştirme doğrulaması Development

Tek bir görev içinde farklı senaryolar için farklı ortamlar seçebilirsiniz. Ancak bakım kolaylığı için bir görevi mümkün olduğunca tek bir ortamla sınırlandırmak daha temiz bir yapıdır.

5. Çalışma döngüsünü ayarlayın

Çalıştırma zamanlaması alanında görevin tekrar periyodunu ayarlayın.

Arayüzde bu alan bazı ekranlarda Çalışma Döngüsü veya Çalışma Modu olarak görünebilir. İkisi de aynı ayarı ifade eder.

Belgelenen örnekler şunlardır:

  • Her Pazar 23:00
  • Her 6 saatte bir
  • Her 8 saatte bir

Örnek planlama yaklaşımı:

Gece regresyonu: Her gün 02:00
Staging smoke testi: Her 6 saatte bir
Hafta sonu sağlık taraması: Her Pazar 23:00
Enter fullscreen mode Exit fullscreen mode

Gece regresyonu, mesai başlamadan önce sorunları yakalamanıza yardımcı olur. Staging için daha sık yapılan smoke testleri ise ortamı gereksiz yere yormadan daha hızlı geri bildirim sağlar.

6. Runner'ı seçin

Runner alanında kendi barındırdığınız Runner'ı seçin.

Bu alan bazı ekranlarda tutarsız biçimde Çalıştıran, Çalışır veya Çalışan olarak etiketlenebilir. Hepsi test paketini yürüten makineyi ifade eder.

Birden fazla Runner kaydettiyseniz, API'nize en uygun ağ konumundaki Runner'ı seçin. Örneğin API'niz özel bir VPC içindeyse, aynı VPC içindeki Runner daha gerçekçi sonuç verir.

Test paketindeki tüm istekler burada seçilen makineden gönderilir. Runner'ın API'nize gerçek trafiğe benzer koşullarda erişebildiğinden emin olun.

7. Bildirimleri yapılandırın

Gözetimsiz test çalıştırmalarının amacı, bir şey bozulduğunda sizi hızlıca haberdar etmektir. Bu nedenle Bildirim seçeneğini etkinleştirin.

Apidog şu kanalları destekler:

  • Slack
  • Teams
  • Webhook
  • Jenkins
  • E-posta

E-posta bildirimlerinde proje üyelerinin adresleri otomatik tamamlanır. Nöbetçi rotasyonu veya ortak ekip gelen kutusu için üye olmayan adresleri de manuel olarak ekleyebilirsiniz.

Bildirim zamanını da seçebilirsiniz:

  • Her çalıştırmadan sonra
  • Yalnızca başarısızlık olduğunda

Pratik öneri:

Senaryo Bildirim tercihi
Stabil gece regresyon paketi Yalnızca başarısızlık
Sorunlu dağıtım sonrası izleme Her çalıştırmadan sonra
Kritik ödeme veya giriş akışı Yalnızca başarısızlık + hızlı bildirim kanalı

Yalnızca başarısızlık bildirimleri, sağlıklı çalıştırmalarda kanallarınızı sessiz tutar. Her çalıştırma bildirimi ise geçici olarak test işinin gerçekten çalıştığını doğrulamak için yararlı olabilir.

8. Kaydedin ve etkinleştirin

Görevi kaydedin ve etkinleştirme düğmesini açın.

Görev artık belirlediğiniz periyotta çalışır. Planlı bakım, geçici geçiş penceresi veya beklenen gürültülü dönemlerde görevi silmeden devre dışı bırakabilirsiniz.

9. Çalıştırma geçmişini inceleyin

Her çalıştırmadan sonra sonuçlar Runner'dan sunucuya otomatik olarak yüklenir.

Sonuçları görmek için:

Zamanlanmış Görevler → Çalıştırma Geçmişi
Enter fullscreen mode Exit fullscreen mode

Bu bölümde şunları inceleyebilirsiniz:

  • Hangi çalıştırmanın geçtiği veya başarısız olduğu
  • Hangi iddianın bozulduğu
  • Çalıştırmanın zamanı
  • Hata ayrıntıları

Slack veya e-posta üzerinden bir uyarı aldığınızda, kök neden analizi için Çalıştırma Geçmişi'ne gidin.

Gelişmiş ayarlar ve varyasyonlar

Değişken kapsamını doğru seçin

Senaryolarınız çalıştırma sırasında veri paylaşıyorsa, Apidog üç paylaşım düzeyi sunar:

  1. Yalnızca mevcut test senaryosunda paylaş

    Değişken yalnızca ilgili senaryoda kullanılabilir.

  2. Geçerli zamanlanmış görevdeki tüm test senaryolarında paylaş

    Aynı görevdeki senaryolar birbirlerinin değerlerini okuyabilir.

  3. Geçerli zamanlanmış görev klasöründeki tüm zamanlanmış görevlerde paylaş

    En geniş değişken kapsamıdır.

Örneğin giriş senaryosunda alınan erişim belirtecini ödeme senaryosunda kullanmanız gerekiyorsa ikinci seçenek uygun olabilir.

Mümkün olan en dar kapsamı seçin. Böylece bir senaryodaki kimlik doğrulama belirteci veya sipariş kimliği ilgisiz senaryolara sızmaz.

Değişken değerlerini çalıştırmalar arasında saklayın

Değişkenlerin bir çalıştırmadan diğerine taşınması için test senaryosu tasarım sayfasında Değişken değerlerini sakla seçeneğini etkinleştirin.

Bu ayar şu durumlarda gereklidir:

  • Önceki çalıştırmadan yakalanan sipariş kimliği kullanılacaksa
  • Yenilenmiş belirteç sonraki çalıştırmada gerekiyorsa
  • Test akışınız çalıştırmalar arası duruma bağlıysa

Bu seçenek kapalıysa her zamanlanmış çalıştırma temiz başlar.

Klasörlerle görevleri gruplandırın

Paket büyüdükçe Zamanlanmış Görevler altında klasör oluşturun.

Örnek yapı:

Zamanlanmış Görevler
├── Production Monitors
├── Staging Checks
├── Payment Tests
└── Authentication Tests
Enter fullscreen mode Exit fullscreen mode

Klasör düzeyindeki değişken kapsamı, ilişkili görevlerin ortak yapılandırmaları daha düzenli biçimde paylaşmasına yardımcı olur.

Plan limitlerini kontrol edin

Kullanabileceğiniz zamanlanmış çalıştırma sayısı aboneliğinize bağlıdır. Saatlik veya daha sık bir plan oluşturmadan önce plan limitinizi kontrol edin.

Daha ayrıntılı yapılandırmalar için şu kaynaklara bakın:

İş akışını Apidog CLI ile otomatikleştirin

Zamanlanmış Görevler arayüzü tek seçenek değildir. Apidog CLI ile kaydedilmiş bir senaryoyu headless olarak çalıştırabilir, zamanlamayı ise cron veya CI sağlayıcınıza bırakabilirsiniz.

CLI içinde yerel bir zamanlama komutu yoktur. Zamanlama, Apidog dışında; örneğin cron veya GitHub Actions gibi zaten kullandığınız araçta yönetilir.

Önce CLI'ı kurun ve kimlik doğrulamasını tamamlayın. Belirli bir senaryoyu seçilmiş ortama karşı çalıştırmak için aşağıdaki komutları kullanın. Belirteç yapılandırması için Apidog CLI kurulum kılavuzuna bakın.

npm install -g apidog-cli
apidog login --with-token <YOUR_TOKEN>
apidog run --access-token $APIDOG_ACCESS_TOKEN -t <SCENARIO_ID> -e <ENV_ID> -r cli,junit
Enter fullscreen mode Exit fullscreen mode

Parametreler:

  • -t: Test senaryosu kimliği
  • -e: Ortam kimliği
  • -r: Rapor formatı

Rapor formatı olarak cli, html veya junit kullanabilirsiniz. Birden fazla formatı virgülle ayırın.

Cron ile gece çalıştırması

Her gece saat 02:00'de çalıştırmak için cron girdisi ekleyin:

0 2 * * * cd /srv/api-tests && apidog run --access-token $APIDOG_ACCESS_TOKEN -t 4471 -e 88 -r junit >> run.log 2>&1
Enter fullscreen mode Exit fullscreen mode

Bu komut:

  1. /srv/api-tests dizinine geçer.
  2. Belirtilen senaryoyu ve ortamı çalıştırır.
  3. JUnit raporu üretir.
  4. Standart çıktı ve hata kayıtlarını run.log dosyasına ekler.

GitHub Actions ile zamanlama

Aynı komutu zamanlanmış bir GitHub Actions işinde de kullanabilirsiniz. Bu durumda JUnit raporu mevcut CI panolarınıza dahil edilebilir.

Cron ve GitHub Actions zamanlama tetikleyicileri dahil tam kurulum için CI/CD işlem hattınızda Apidog CLI rehberine bakın.

SSS

Zamanlanmış testleri bugün Apidog Cloud'da çalıştırabilir miyim?

Henüz değil. Runner hedefinde Apidog Cloud “yakında gelecek” olarak listelenir. Şimdilik çalışan seçenek kendi barındırdığınız Runner'dır.

Önce Runner'ı kaydedin, ardından zamanlanmış görevde bu Runner'ı seçin.

Zamanlanmış görevler ne sıklıkta çalışabilir?

Planınızın izin verdiği sıklıkta çalışabilir. Belgelenen örnekler arasında her 6 saatte bir veya her Pazar 23:00 bulunur.

Ancak toplam zamanlanmış çalıştırma sayısı aboneliğinizle sınırlıdır. Kesin limit için plan bilgilerinizi kontrol edin.

Yalnızca bir test başarısız olduğunda nasıl bildirim alırım?

Görevin Bildirim ayarlarında her çalıştırma yerine yalnızca başarısızlıklar seçeneğini belirleyin. Ardından Slack, Teams, Webhook, Jenkins veya E-posta kanallarından birini ekleyin.

Daha derin regresyon paketinin yanında hızlı bir canlılık sinyali için hafif bir API sağlık kontrolü de çalıştırabilirsiniz.

Zamanlanmış sonuçlarım neden yerel test çalıştırmalarımdan farklı?

İstekler dizüstü bilgisayarınızdan değil, Runner makinesinden gönderilir. Runner'ın ağı, bölgesi, VPN bağlantısı ve güvenlik duvarı kuralları yanıtları etkileyebilir.

Bu beklenen bir durumdur ve çoğu zaman gerçek kullanıcı koşullarına daha yakın sonuç verir.

Değişkenlerim her çalıştırmada sıfırlanıyor. Neyi kaçırdım?

Test senaryosu tasarım sayfasındaki Değişken değerlerini sakla seçeneğini etkinleştirin.

Bu ayar kapalıysa her zamanlanmış çalıştırma yeni başlar. Çalıştırmalar arası değişken bağımlılıkları bu nedenle başarısız olabilir.

Özet

Zamanlanmış testler, “API'nin çalıştığını düşünüyoruz” yaklaşımını “çalıştığını biliyoruz; çalışmasaydı bildirim alırdık” yaklaşımına dönüştürür.

Başlamak için:

  1. Test senaryolarınızı oluşturun.
  2. Kendi barındırdığınız bir Runner kaydedin.
  3. Çalışma döngüsünü ayarlayın.
  4. Başarısızlık bildirimleri için Slack veya e-posta bağlayın.
  5. Çalıştırma geçmişini düzenli olarak inceleyin.

Aynı kontrolleri CI/CD işlem hattında çalıştırmak istediğinizde CLI ve cron, ek bir zamanlama aracı olmadan alternatif yol sunar.

İlk zamanlanmış regresyon paketinizi oluşturmak için Apidog'u indirin. Başlamak ücretsizdir; kredi kartı gerekmez.

Top comments (0)