REST API Testi Eğitimi: Örnek Manuel Test Senaryoları
⚡ Akıllı Özet
REST API Testi, GET, POST, PUT ve DELETE gibi HTTP istekleri göndererek ve sunucu tarafından döndürülen durum kodunu, yanıt başlıklarını ve veri yükünü doğrulayarak RESTful web servislerini doğrular.
REST API Testi nedir?
REST API Testi REST API testi, web uygulamaları için RESTful API'ları test etmek amacıyla kullanılan açık kaynaklı bir web otomasyon test tekniğidir. REST API testinin amacı, REST API'ın düzgün çalışıp çalışmadığını kontrol etmek için çeşitli HTTP/S istekleri göndererek REST API'ın yanıtını kaydetmektir. REST API testi, GET, POST, PUT ve DELETE yöntemleri kullanılarak yapılır.
DİNLENME Temsili Durum Transferi anlamına gelir. Bu, mimari bir stildir ve iletişimin geliştirilmesinde kullanılan bir yaklaşımdır. Web HizmetleriREST, kullanıcıların bulut hizmetlerine verimli bir şekilde bağlanmasını ve etkileşimde bulunmasını sağladığı için API oluşturmak için mantıklı bir seçim haline geldi.
API veya Uygulama Programlama Arayüzü, web tabanlı bir yazılım uygulamasına erişmek için kullanılan bir dizi programlama talimatıdır. Başka bir deyişle, bir programın başka bir programla doğrudan iletişim kurmak ve bilgi almak için birbirlerinin işlevlerini kullanmak üzere kullandığı bir dizi komuttur.
Örneğin, bir Google Bir web sitesi arama, çeviri ve takvim için bir API'ye sahip olabilir. Genel olarak, API'ler aşağıdaki örnekteki gibi bir sunucu adı, yollar ve parametrelerle görünür.
http://<server name>/v1/export/Publisher/Standard_Publisher_Report?format=csv
Peki neden bu katmanda test çalışmaları yapılıyor ki?
REST API Testlerinin Önemi
REST API, kullanıcı arayüzü ile veritabanı arasında yer alır ve bu da iş mantığının büyük bir kısmının aslında burada bulunduğu anlamına gelir. Bir fiyatlandırma kuralındaki veya izin kontrolündeki bir hata, ekranda yanlış bir rakam fark edilmeden çok önce API yanıtında ortaya çıkar; bu nedenle burada yapılan testler, sorunları daha erken ve nedenine daha yakın bir şekilde yakalar.
Hız ikinci nedendir. Bir istek milisaniyeler içinde tamamlanır ve tarayıcıya, oluşturma motoruna veya kırılgan öğe konumlandırıcılarına ihtiyaç duymaz. Bir test uzmanı, bir arayüz testinin bir sayfayı yüklemesi kadar kısa bir sürede düzinelerce uç noktayı test edebilir ve aynı istek, ön uç bir web sitesi, mobil uygulama veya iş ortağı entegrasyonu olsun, aynı şekilde davranır.
Üçüncü neden ise istikrardır. Düzenler sürekli değişir, ancak yayınlanmış bir REST düzeni her zaman istikrarlı kalır.tract'nin sabit kalması bekleniyor. Buna karşı yazılan testlertracYeniden tasarımlara dayanabilmeleri için, diğer ekiplerin üzerinde geliştirme yaptığı ürün parçalarını korurlar.
API Yöntemi Türleri
Esas olarak 4 tür vardır API Testi Yöntemler: GET, POST, DELETE ve PUT.
- GET– GET yöntemi, örnek vermek için kullanılır.tracBelirtilen URI kullanılarak belirtilen sunucudan bilgi alınır. GET isteği kullanılırken, yalnızca belirtilen URI üzerinden bilgi alınmalıdır.tract verileri üzerinde başka bir etkisi olmamalıdır.
- POST– Yeni bir varlık oluşturmak için POST isteği kullanılır. Ayrıca HTML formlarını kullanarak müşteri bilgileri, dosya yükleme vb. gibi verileri sunucuya göndermek için de kullanılabilir.
- PUT– Yeni bir varlık oluşturun veya mevcut olanı güncelleyin.
- SİL– Bir URI tarafından verilen hedef kaynağın tüm geçerli temsillerini kaldırır.
REST API Nasıl Test Edilir
REST API testleri, bir uygulamanın test için örnek bir API ile etkileşim kurmasını gerektirir. Bir API'yi test etmek için iki şeye ihtiyacınız vardır:
- API'yi yönlendirmek için Test Aracı/Çerçeve
- Örnek REST API'sini test etmek için kendi kodunuzu yazma
REST API test senaryoları şu araçlarla test edilebilir:
- Gelişmiş Dinlenme İstemcisi
- Postman-Dinlenme İstemcisi
- Linux'ta Curl
Burada Advanced Rest Client'ı kullanacağız. Advanced Rest Client'ı edinmek için aşağıdaki adımları izleyin.
Gelişmiş REST İstemcisi Nasıl Edinilir?
- MyCAD'de yazılım Güncelleme ye git Google ChromeWeb Mağazası
- “Gelişmiş Dinlenme İstemcisi”ni arayın veya doğrudan gidin okuyun ve uzantıyı yükleyin
- Chrome'un uygulama bölümünün altındaki "Gelişmiş Dinlenme İstemcisi" simgesini seçin - chrome://apps/
Web mağazası listesi aşağıda gösterildiği gibidir.
Kurulum tamamlandıktan sonra, test etmek için aşağıdaki adımları izleyin. RESTful API.
REST API'yi Test Etme Adımları
Burada Chrome tarayıcısındaki REST istemci uzantısını kullanıyoruz. Daha net anlaşılması için, test amacıyla sahte bir API kullanıyoruz:
http://ip.jsontest.com/
Adım 1) Gelişmiş REST istemcisini açın
Başarılı bir şekilde yüklendikten sonra uygulamayı Advanced REST istemcisini (ARC) başlatın.
Adım 2) Girin URL API'nin test edilmesi
Örnek REST API'sini girin URL test için URL Metin kutusu.
Adım 3) HTTP yöntemini seçin
API testindeki HTTP yöntemlerinin türü için yöntemi seçin; örneğin POST
Adım 4) Başlık setini sağlayın
Başlıklar metin kutusunda Başlık Seti sağlayın. Başlık seti ekle'ye tıklayın.
Adım 5) Başlık ayarını onaylayın
Sonraki BU SETİ KULLAN'a tıklayın.
Adım 6) Gerekli Gövde içeriğini sağlayın
- Şimdi Body Sekmesine geçin.
- Gerekli Gövde içerik türünü ve Düzenleyici görünümünü ayarlayın; örneğin Gövde içerik türü: application/json
- Editör görünümü : Ham giriş.
- Payload kısmına, test amaçlı demo API'nin istek gövdesini anahtar-değer çiftleri şeklinde iletin, örneğin {"key1":"value1","key2":"value2"}. Eğer POST API ise, bir gövde veya parametre iletmemiz gerekir. Bunu verilen payload kısmına ileteceğiz.
{"property" : ["Sites"], "report_type" : ["ALL"]}
⚠️Uyarı: Geçerli olmayan bir yük içeren `application/json` içerik türü. JSON 400 Hatalı İstek hatası döndürüyor.
Adım 7) Testi başlatmak için ayrıntıları gönderin
- Gönder tuşuna basın.
- Yanıt başlıklarını görmek için DETAYLAR butonuna tıklayabilirsiniz.
İşte yanıt detayları:
Verilen yanıt, beklenen sonuçla karşılaştırılarak değerlendirilmelidir.
Sonuçların Doğrulanması
Web API testleri için temel olarak yanıt kodunu, yanıt mesajını ve yanıt gövdesini kontrol etmemiz gerekir.
Yanıt kodları beş gruba ayrılır:
| aile | Kategoriler | anlam |
|---|---|---|
| 1xx | Bilgilendirme amaçlı | Alındı, işlem devam ediyor. |
| 2xx | Başarı | Tamamlandı; 200 OK, 201 Oluşturuldu |
| 3xx | Yönlendirme | Daha fazla işlem yapılması gerekmektedir. |
| 4xx | İstemci Hatası | Geçersiz veri yükü, belirteç veya kaynak |
| 5xx | sunucu Hatası | Geçerli istek, sunucu başarısız oldu. |
Aşağıda karşılaşabileceğiniz yanıt kodları yer almaktadır.
Tek bir istek, uç noktanın çalıştığını kanıtlar. Bir dizi istek ise çalışmaya devam ettiğini kanıtlar.
REST API Test Senaryoları: Mutlaka Ele Almanız Gerekenler
Kullanışlı bir REST API paketi, aynı başarılı senaryo çağrısını farklı verilerle tekrarlamak yerine, çeşitli kategorilere yayılır:
- Mutlu yol: Her bir uç noktaya geçerli bir istek gönderin ve durum kodunu, şemayı ve her alan değerini doğrulayın.
- Olumsuz vakalar: Hatalı biçimlendirilmiş JSON, desteklenmeyen bir yöntem ve eksik bir kaynak kimliği gönderirseniz, 500 yerine 400, 405 ve 404 yanıtlarını bekleyin.
- Sınır değerleri: Bir alan 1 ila 200 karakter kabul ediyorsa, 0, 1, 200 ve 201 değerlerini test edin. Doğrulama kuralları uç noktalarda bozulur.
- Özel karakterler: Kodlama hatalarını ortaya çıkarmak için aksanlı harfleri, emojileri, alıntıları ve çok baytlı metinleri her alandan geçirin.
- iletract kontrolleri: Yanıtı yayınlanmış OpenAPI veya Swagger spesifikasyonuyla karşılaştırarak, belgelenmemiş değişikliklerin erken aşamada tespit edilmesini sağlayın.
- Sıralama: Uç noktalara gerçekçi bir sırayla, örneğin önce POST, sonra GET, sonra DELETE şeklinde çağrı yapın, çünkü çağrılar arasında durum korunur.
- Performans akıl sağlığı: Her çalıştırmada yanıt sürelerini kaydedin ve ekiple kararlaştırılan eşiği aşan tüm uç noktaları işaretleyin.
REST API Test Aracı
Test aşamalarının farklı aşamalarına farklı araçlar uygundur.
| araç | Menşei | İçin en iyisi |
|---|---|---|
| Gelişmiş Dinlenme İstemcisi | Masaüstü istemcisi | Hızlı manuel aramalar |
| Postman | Masaüstü istemcisi | Koleksiyonlar ve ekip çalışma alanları |
| JMeter | Yük testi | Yük altında tepki süreleri |
| SoapUI | Fonksiyonel test | Dinlenme ve sabun bir arada |
| Emin olabilirsiniz | Java kütüphane | Kararlı vakaların otomasyonu |
| cURL | Komut satırı | Çağrıları hata raporlarına yapıştırma |
Özet bilgileri inceleyin. API test araçları.
Çoğu gerçek uç nokta, isteği kimin gönderdiğini kanıtlayana kadar yanıt vermeyi reddeder.
REST API Kimlik Doğrulama ve Güvenlik Kontrolleri
Herkese açık demo uç noktaları herkese cevap verirken, üretim ortamındaki bir REST API'si bir kimlik doğrulama şemasının arkasında yer alır ve yetkilendirme hatası, yanlış bir alan değerinden çok daha zararlıdır. Öncelikle mekanizmayı belirleyin: statik bir API anahtarı, HTTP Temel kimlik bilgileri, bir OAuth 2.0 taşıyıcı belirteci veya imzalı bir JSON Web Belirteci.
Kimlik doğrulama işlemi başarılı olduktan sonra, başarısızlık durumlarını dikkatlice inceleyin:
- Kimlik bilgisi gerekmiyor: Authorization başlığını kaldırın. 401 Yetkisiz yanıtı ve gövdede kayıt verisi olmaması beklenir.
- Hatalı kimlik bilgileri: Jetonun bir karakteri bozuldu. Bunun nedenini açıklamayan bir mesajla birlikte yine 401 hatası bekleyin.
- Süresi dolmuş kimlik bilgileri: Süresi dolmuş bir belirteci yeniden kullanın. Onaylanmak yerine reddedildiğini doğrulayın; bu, sık görülen bir saat sapması hatasıdır.
- Yanlış ayrıcalık düzeyi: Düşük yetkili bir kullanıcı olarak kimlik doğrulaması yapın ve yalnızca yöneticilere açık bir uç noktayı çağırın. 200 yerine 403 Yasak hatası bekleyin.
- Başka bir kullanıcının kaydı: Kullanıcı A'nın kullanıcı B'nin verilerini talep etmesini sağlayacak şekilde kimliği değiştirin. Burada başarı, ciddi bir erişim kontrolü açığıdır.
Son olarak, her çağrının HTTPS üzerinden gerçekleştiğinden ve başarısız yanıtların hata ayıklama bilgisini sızdırmadığından emin olun. traces veya sürüm banner'ları ve hızlı tekrarların 429 Çok Fazla İstek hatasına neden olduğu.
REST API testleri, arayüz testlerinde olmayan zorlukları da beraberinde getirir.
API Testinin Zorlukları
REST API testleri sırasında test uzmanlarının karşılaştığı ilginç sorunlar şunlardır:
- Test ortamının, API çağrılarının parametrelerini hem işlevselliği doğrulayacak hem de hataları ortaya çıkaracak şekilde değiştirmesini sağlamak. Bu, sınır koşullarını incelemeyi ve ortak parametreler atamayı içerir.
- İki veya daha fazla parametreli çağrılar için ilginç parametre değeri kombinasyonları oluşturma
- API çağrılarının hangi koşullar altında yapılması gerektiğini belirlemek. Bu, harici ortam koşullarının (çevre birimleri, dosyalar vb.) yanı sıra API'yi etkileyen dahili olarak depolanan verileri de içerebilir.
- API çağrılarının işlevin yürütüleceği sıraya göre sıralanması
- API'nin ardışık çağrılardan yararlı sonuçlar üretmesini sağlamak.











