Web uygulama açıklıklarından faydalanarak sistem ele geçirme
SoapUI ile Rest Api Testi
1. SoapUI ile REST API Testi
Fırat Üniversitesi
Yazılım Mühendisliği
YMT543 Yazılım Kalite Güvencesi ve Testi
13542506 Tuncer Ergin
2. SOAP (Simple Object Access Protocol) uygulamalar ile web servislerin bilgi
aktarımını sağlayan XML tabanlı bir protokoldür.
Yani web servise giden bilgi XML olarak gönderilir, web servis bu bilgiyi yorumlar ve
sonucunu XML olarak geri döndürür.
SOAP tabanlı bir web servisin, gönderilen XML verisini nasıl yorumlayacağının
tanımlanması gerekir.
Bu web servis tanımlaması WSDL standardı ile yapılır.
Soap Nedir?
3. REST (Representational state transfer) mimarisinde işlemler resource kavramıyla yapılır.
Resource URI ile tanımlanır ve bir metod tanımlaması veya bir değişken olabilir.
REST’te SOAP’ta olduğu gibi XML yardımıyla metodlar çağırılmaz bunun yerine o metodu
çağıracak URIler ile web servise HTTP protokolüyle istek yapılır.
REST için WSDL gibi bir tanımlama diline ihtiyaç kalmaz işlemler tamamen HTTP
metodları üzerinden yapılır.
Örneğin, bir web servisin metodunu SOAP ile “getCurrentWeather” şeklinde çağırırken
REST ile “/current.json? key=<ApiKey>&q=Elazig″ URI’si ile çağırabiliriz.
REST JSON, XML, TXT, HTML gibi istenen veri türünde değer döndürülebilir.
REST API Nedir?
4. REST API Çalışma Mantığı
https://api.apixu.com/v1/current.json?
key=<ApiKey>&q=Elazig
{ "location": {
"name": "Elazig",
"region": "Elazig",
"country": "Turkey",
"lat": 38.68,
"lon": 39.22,
"tz_id": "Europe/Istanbul",
"localtime_epoch": 1512922222,
"localtime": "2017-12-10 19:10"
}
}
İstemci
HTTP Post Server
REST Interface
5. 200 OK: Genelde veri listeleme sonuçları 200 ile dönüş yapılır.
201 CREATED: Veri eklendiği zaman verinin kendisi ile 201 dönülür
204 NO CONTENT: Veri silindiği zaman 204 dönülür.
400 BAD REQUEST: Genel olarak kayıt ekleme ya da güncelleme isteklerinde gönderilen veri validasyondan
geçemediyse neden geçemediği hakkında bilgiyle beraber 400 HTTP Statusuyla dönülür.
401 Unauthorized: Api ucunuzda bu işlemi yapmak için login olmak zorunlu ise ve API’ye istek yapan kullanıcı
login değilse bu HTTP Status ile cevap verilir.
403 Forbidden: Yetkiye dayalı bir işlem yapılıyorsa bu API uç noktasında işlem yapmaya çalışan kişinin bu işlemi
yapmaya yetkisi yoksa 403 status kodu döner.
404 Not Found: Kullanıcının istek yaptığı URL yok ise ya da URL deki veri geçersiz ise bu hatayı alırız.
405 Method Not Allowed: İstek yapılan API uç noktası gönderilen metodu implemente etmemiş ise bu HTTP
Statusunu alırız. Örneğin login olması için token verdiğimiz bir API ucumuz var ve bu uçta sadece POST isteğini kabul
ediyor. Kullanıcı bu API URL’ine GET isteği yaparsa 405 statusu döner.
429 Too Many Requests: Saatlik ya da dakikalık kısıtlanan sınırdan fazla istek yapıldığında alırız.
REST API Hataları
6. Gruplanmış Bakış Açısıyla HTTP Statusları;
Bilgilendirme – 1xx
Başarılı İşlem – 2xx
Yönlendirmek – 3xx
Kullanıcı Taraflı hata – 4xx
Server Taraflı hata – 5xx
Şeklinde ifade edebiliriz.
REST API Hataları
7. SOAP UI;
o web servislerini kontrol etmek,
o herhangi bir web servisini çağırmak,
o web servisi simule etmek,
o fonksiyonel test yapmak için kullanılır.
Özellikle web servis entegrasyonlarında fazlasıyla iş görmektedir.
Java ile geliştirilmesi nedeniyle her platform için bir pakete sahiptir.
İndirmek için: www.soapui.org/downloads/soapui.html
SoapUI Nedir?
8. Hava durumu sağlayıcısı olan www.apixu.com sitesinin REST API’sini test edelim.
SoapUI ile RESTful API Testi
1
2
3
9. SoapUI ile RESTful API Testi
1
2 Tüm bilgiler doğru
girildiğinde 200 OK
bilgisi geri gönderilir
10. SoapUI ile RESTful API Testi
2 Query kısmındaki
şehir bilgisi yanlış
girilirse
400 Bad Request
hatası alınır.
1
11. SoapUI ile RESTful API Testi
2 Api key yanlış girilirse
401 Unauthorized
hatası alınır.
1
12. SoapUI ile RESTful API Testi
2 URL yanlış veya eksik
404 Not Found
hatası alınır.
1