curl ile End-to-End İndirme Testi: Canlıya Almadan Önce Kontrol Listesi
Küçük bir video indirme servisi yönetirken öğrenilen ders: kod doğru görünüyor diye feature canlı değildir. Sayfa açılabilir, buton çalışabilir, ama indirme bozuk olabilir. Bu yüzden ramrom.io'da herhangi bir değişikliği canlıya almadan önce, terminal üzerinden curl ile ziyaretçinin göreceği akışı aynısı ile test ediliyor.
İlk adım: Sayfanın kendisini kontrol et
API'den değil, aracın ana sayfasından başla:
1curl -s -o /dev/null -w "%{http_code} %{time_total}s\n" https://ramrom.io/tiktok-downloader.html200 durum kodu ve hızlı yanıt bekleniyor. Bu adım aptalca hataları yakalar: yükleme sonrası eksik dosya, yanlış dosya adı, sadece tarayıcı cache'inde çalışan sayfa gibi sorunlar.
İkinci adım: API'yi gerçek link ile test et
İndirmenin kalbi resolve.php dosyası. Yapıştırılan linki alır, sağlayıcıyı çağırır, indirme seçeneklerini döndürür. Test yaparken sağlayıcının dokümantasyonundaki örnek URL değil, kendi hesaplardan gerçek bir link kullanılmalı.
1curl -s -X POST https://ramrom.io/api/resolve -d "url=https://www.tiktok.com/"Gerçek veriler, gerçek API yanıtlarını ortaya çıkarır. Dokümantasyon URL'leri genellikle çalışır ama canlı uygulamada başarısız olabilir.
Neden bu kadar önemli?
Browser cache, lokal geliştirme ortamı, ve test verileri üretim sorunlarını gizler. curl ile terminalden test etmek, ziyaretçinin tam olarak ne göreceğini simüle eder. HTTP durum kodları, yanıt süreleri, ve hata mesajları doğrudan görülür. Kod review'dan geçen bir feature bile deployment'ta kırılabilir, bu kontrol listesi bunu önler.
3 yorum
bu çok mantıklı, ben de böyle bir şeyle yüzleştim geçen sene.
ben de api düzeyinde kontrol ettikten sonra tarayıcıdan denedim, oradan indirme başarılı gözüktü ama sonra baktım ki dosya bozuk. curl'ün güzel tarafı bunun gibi şeyleri hemen yakalamasıdır, tarayıcı çok şeyi gizliyor.
aynen, tarayıcı compression falan uyguluyor, cache header'ları vs görmüyorsun.