API testlerini sürekli entegrasyonda otomatikleştirme
Arayüzde kurulan bir senaryo, hattınızda olduğu gibi çalışır. Bu rehber ölçeğe geçişi ele alır.
Ön koşullar
Section titled “Ön koşullar”- Bir Pro ya da Enterprise planı.
- CI’nızın gizli değer kasasına konacak bir kuruluş token’ı (
rstk_…). (Bu token’ın kontrol panelinden self servis olarak oluşturulması yakında geliyor.)
Temel ilke
Section titled “Temel ilke”RESTORM_TOKEN=$RESTORM_TOKEN restorm \ --open ./api.restorm \ --run "Tests de fumée" \ --headless \ --all-logs \ --out run.log \ --param baseUrl=$BASE_URLÇıkış kodu 0 = başarı, 1 = senaryonun başarısız olması, 2 = çağrı hatası,
3 = yetki reddi.
Sanal bir görüntü sunucusu gerekir
Section titled “Sanal bir görüntü sunucusu gerekir”Restorm bir masaüstü uygulamasıdır: penceresi olmasa bile bir görüntü sunucusuna
ihtiyaç duyar. Bir Linux runner’ında komutun önüne xvfb-run -a ekleyin.
xvfb-run -a restorm --open ./api.restorm --run "Tests de fumée" --headlessGizli değerler
Section titled “Gizli değerler”Bir gizli değeri asla projenin içine yazmayın. Hassas değişkenlerinizi ortam değişkeni gizli değer kaynağıyla bildirin; CI’nızın kasası bunları enjekte eder, Restorm okur. Bkz. Gizli değerler.
env: API_TOKEN: ${{ secrets.API_TOKEN }}Ortama göre parametreleme
Section titled “Ortama göre parametreleme”Birbirini tamamlayan iki yaklaşım vardır:
environmenttüründe bir senaryo parametresi:--param Env=staging. Aynı senaryo herhangi bir hedefe karşı çalışır.- Basit parametreler:
--param baseUrl=…,--param tenant=….
Dönüştürme, parametrenin bildirilen türünü izler; olanaksız bir dönüştürme, yanlış bir değerle çalıştırmak yerine başlatmayı anında başarısız kılar. Bkz. Senaryoda değişkenler ve veriler.
Günlüğü yayımlamak
Section titled “Günlüğü yayımlamak”--out run.log günlüğü akış hâlinde yazar. Bunu, iş başarısız olduğunda da
dâhil olmak üzere bir artefakt olarak yayımlayın — asıl işe yaradığı yer tam
orasıdır.
- uses: actions/upload-artifact@v4 if: always() with: name: journal-restorm path: run.logCI’da okunabilir senaryolar yazmak
Section titled “CI’da okunabilir senaryolar yazmak”Sabahın üçünde kırmızı bir iş göründüğünde her şeyi değiştiren birkaç alışkanlık:
- Açık doğrulama mesajları.
Assert eyleminin
messagealanı günlükte görünecek olan şeydir: oraya neyin beklendiğini yazın. - Kilit adımlarda günlük.
--all-logsolmadan yalnızca Log eyleminin girdileri yayılır: anlatı ipiniz budur. - Alan alan doğrulama yerine şema doğrulaması.
Şema doğrulama eyleminin
errorsçıkışını bir Log’a bağlayın: ihlallerin tam listesini elde edersiniz. - Çıkış kodunun başarısızlığı yansıtması için kritik
elseçıkışlarına Throw. - Aralıklı başarısız olan testleri kabullenmek yerine kararsız ağ çağrılarının çevresine Retry. Bkz. Kontrol.
Temizlik
Section titled “Temizlik”Temizliği ana senaryonun done portuna zincirleyin: done, alt grafiğin
tamamının bitmesini bekler. Bkz.
Portlar ve bağlantılar.
Bilinmesi gereken tuzaklar
Section titled “Bilinmesi gereken tuzaklar”| Tuzak | Çözüm |
|---|---|
| İş bir girdi bekliyor | Tüm parametreleri --param ile verin; headless modda hiçbir şey sorulamaz |
| Bir Toast eylemi görünmüyor | Bu normaldir: headless modda etkisizdir. Log kullanın |
| MCP sunucusu görünmüyor | Bu bilinçlidir: gerçek bir görüntü olmadan hiç başlamaz |
3 çıkışı | Token ya da plan — mesaj dört durumdan hangisi olduğunu belirtir |
| Proje dosyası yer değiştirdi | --open depoya göreli bir yol kabul eder: yolu göreli tutun |
Eksiksiz örnekler
Section titled “Eksiksiz örnekler”GitHub Actions ve GitLab CI hatları Headless çalıştırma ve sürekli entegrasyon sayfasındadır.