Autor del tema
#1
curl ile HTTP Testleri
[codes]
1) Temel GET isteği
curl https://ornek-api.local/v1/ping
2) Yanıt başlıklarını görmek
curl -I https://ornek-api.local/v1/ping
3) JSON yanıtını temiz biçimde görmek
curl -s https://ornek-api.local/v1/items | jq .
4) Sıkıştırılmış yanıtları desteklemek
curl -H "Accept-Encoding: gzip" -sSL https://ornek-api.local/v1/items | gunzip
5) Zamanlayıcılar ve performans ölçümü
curl -w "time_namelookup: %{time_namelookup}\ttime_connect: %{time_connect}\ttime_starttransfer: %{time_starttransfer}\ttime_total: %{time_total}\n" -o /dev/null -sI https://ornek-api.local/v1/items
6) HTTP durum kodlarını ayrıştırmak
curl -s -o /dev/null -w "%{http_code}\n" https://ornek-api.local/v1/items
7) POST ile veri gönderimi (JSON)
curl -X POST https://ornek-api.local/v1/items \
-H "Content-Type: application/json" \
-d '{"baslik":"örnek","aciklama":"test verisi"}'
8) Temel yetkilendirme ile test
curl -u kullanici:parola -s https://ornek-api.local/v1/secure
9) JSON yanıtını ayrıştırmak için hata durumu kontrolü
curl -s -o response.json -w "%{http_code}\n" https://ornek-api.local/v1/items && tail -n +1 response.json | jq .
10) Tekrarlanabilir load testi için basit seri istek
for i in {1..100}; do curl -s https://ornek-api.local/v1/items > /dev/null; done
[/codes]
[cite]Notlar ve dikkat edilmesi gereken noktalar:[/cite]
Bu temel ve ileri düzey curl kullanımları sizin için netleşti mi, yoksa belirli bir API ya da test senaryosu için özel bir akış mı kurmak istersiniz?
Günlük ağ diagnostikleri ve API güvenlik/performans kontrolleri için curl, komut satırında esnek ve tekrarlanabilir bir araç olarak öne çıkar. Bu yazıda, temel isteklerden ileri düzey testlere kadar bir yol haritası sunuluyor; özellikle tekrarlanabilirlik, hata ayıklama ve raporlama odaklı pratikler paylaşılacak.
[codes]
1) Temel GET isteği
curl https://ornek-api.local/v1/ping
2) Yanıt başlıklarını görmek
curl -I https://ornek-api.local/v1/ping
3) JSON yanıtını temiz biçimde görmek
curl -s https://ornek-api.local/v1/items | jq .
4) Sıkıştırılmış yanıtları desteklemek
curl -H "Accept-Encoding: gzip" -sSL https://ornek-api.local/v1/items | gunzip
5) Zamanlayıcılar ve performans ölçümü
curl -w "time_namelookup: %{time_namelookup}\ttime_connect: %{time_connect}\ttime_starttransfer: %{time_starttransfer}\ttime_total: %{time_total}\n" -o /dev/null -sI https://ornek-api.local/v1/items
6) HTTP durum kodlarını ayrıştırmak
curl -s -o /dev/null -w "%{http_code}\n" https://ornek-api.local/v1/items
7) POST ile veri gönderimi (JSON)
curl -X POST https://ornek-api.local/v1/items \
-H "Content-Type: application/json" \
-d '{"baslik":"örnek","aciklama":"test verisi"}'
8) Temel yetkilendirme ile test
curl -u kullanici:parola -s https://ornek-api.local/v1/secure
9) JSON yanıtını ayrıştırmak için hata durumu kontrolü
curl -s -o response.json -w "%{http_code}\n" https://ornek-api.local/v1/items && tail -n +1 response.json | jq .
10) Tekrarlanabilir load testi için basit seri istek
for i in {1..100}; do curl -s https://ornek-api.local/v1/items > /dev/null; done
[/codes]
[cite]Notlar ve dikkat edilmesi gereken noktalar:[/cite]
- -s ve -S kombinasyonu ile sessiz modu kullanırken hataları kaçırmamak için -S ile birlikte hatayı da yakalayabilirsiniz.
- JSON işleyicisi olarak; jq temel becerileriniz yoksa veriyi işlemek için basit grep veya awk kullanımı işe yarayabilir; ancak jq, JSON için güvenilir bir çözümdür.
- Güvenlik açısından auth bilgilerini komut geçmişinde bırakmamak için çevresel değişkenler veya ya da read -s ile alınan değerleri kullanmayı düşünün.
- Hata durumunda zaman aşımı ve ağ hataları için -m veya --max-time ile hedeflenen süreyi sınırlayın; bu sayede betikleriniz kilitlenmez.
- RAPORLAMA: curl -w ile topladığınız metrikleri bir dosyaya yazabilir, günlük raporlar için otomatik olarak parse edebilirsiniz.
Bu temel ve ileri düzey curl kullanımları sizin için netleşti mi, yoksa belirli bir API ya da test senaryosu için özel bir akış mı kurmak istersiniz?
