Neler yeni

Yazılım Forum

Tüm özelliklerimize erişmek için şimdi bize katılın. Kayıt olduktan ve giriş yaptıktan sonra konu oluşturabilecek, mevcut konulara yanıt gönderebilecek, itibar kazanabilecek, özel mesajlaşmaya erişebilecek ve çok daha fazlasını yapabileceksiniz! Bu hizmetlerimiz ise tamamen ücretsiz ve kurallara uyulduğu sürece sınırsızdır, o zaman ne bekliyorsunuz? Hadi, sizde aramıza katılın!

Python ile Web API Testlerini Otomatikleştirmek: Kapsamlı Bir Rehber

Giriş
Web API'leri (Uygulama Programlama Arayüzleri), günümüz modern yazılım uygulamalarının bel kemiğini oluşturur. Mikro hizmet mimarilerinden mobil uygulamalara kadar her yerde karşımıza çıkan API'lerin, beklenen şekilde çalıştığından emin olmak büyük önem taşır. Manuel API testleri, özellikle büyük ve karmaşık sistemlerde zaman alıcı, hataya açık ve verimsizdir. Bu noktada API test otomasyonu devreye girerek geliştirme süreçlerini hızlandırır ve yazılım kalitesini artırır.

Neden Python ile API Test Otomasyonu?
Python, basit ve okunabilir sözdizimi, geniş kütüphane ekosistemi ve güçlü topluluk desteği sayesinde test otomasyonu için popüler bir seçimdir. Özellikle Web API testleri için Python'ı tercih etmemizi sağlayan bazı temel nedenler şunlardır:
  • Basit Sözdizimi: Python'ın anlaşılır yapısı, test senaryolarının hızlıca yazılmasına olanak tanır.
  • Geniş Kütüphane Desteği: requests gibi HTTP istekleri için sektör standardı kabul edilen güçlü kütüphaneler bulunur.
  • Test Çatısı Desteği: pytest veya unittest gibi kapsamlı test çatısı seçenekleri, testlerin düzenlenmesi ve çalıştırılması için sağlam bir temel sunar.
  • Esneklik: API testlerinin yanı sıra diğer otomasyon (UI, veritabanı vb.) görevleri için de kullanılabilir.

Temel Bileşenler ve Adımlar
Python ile bir Web API test otomasyon çerçevesi kurarken genellikle şu bileşenler ve adımlar izlenir:
  • İstek Gönderme: API'ye (GET, POST, PUT, DELETE gibi) HTTP istekleri göndermek için requests kütüphanesi kullanılır.
  • Yanıtı İşleme: API'den dönen yanıtın (HTTP durum kodu, başlıklar, JSON/XML içeriği) doğru bir şekilde parse edilmesi ve erişilmesi.
  • Doğrulama (Assertion): Yanıtın beklenen verileri içerip içermediğini, durum kodunun doğru olup olmadığını veya belirli bir yapıda olup olmadığını kontrol etmek.
  • Test Düzenleme: Testleri organize etmek, çalıştırmak ve sonuçları raporlamak için pytest gibi bir test çatısı kullanmak.
  • Test Verisi Yönetimi: Çeşitli test senaryoları için test verilerini yönetmek (örneğin, dosyalardan okuma, parametreleştirme).

Örnek Kullanım: Requests ve Pytest

Requests ile Basit Bir GET İsteği:
Kod:
import requests

# Bir API endpoint'ine GET isteği gönderin
response = requests.get('https://jsonplaceholder.typicode.com/posts/1')

# HTTP durum kodunu kontrol edin
print(f"Durum Kodu: {response.status_code}")

# JSON yanıtını yazdırın
print(f"Yanıt İçeriği: {response.json()}")

# Yanıt içeriğindeki bir alanı doğrulayın
assert response.json()['userId'] == 1
assert response.status_code == 200

Pytest ile API Testleri:
Pytest, test fonksiyonlarını otomatik olarak keşfeden ve çalıştıran güçlü bir test çatısıdır. Aşağıdaki gibi bir test dosyası (`test_api.py`) oluşturabilirsiniz:
Kod:
import requests
import pytest

BASE_URL = "https://jsonplaceholder.typicode.com"

def test_get_single_post():
    """Tek bir gönderiyi başarıyla çekme testi"""
    response = requests.get(f"{BASE_URL}/posts/1")
    assert response.status_code == 200
    assert response.json()['id'] == 1
    assert "title" in response.json()

def test_create_new_post():
    """Yeni bir gönderi oluşturma testi"""
    new_post_data = {
        "title": "foo",
        "body": "bar",
        "userId": 1
    }
    response = requests.post(f"{BASE_URL}/posts", json=new_post_data)
    assert response.status_code == 201 # 201 Created
    assert response.json()['title'] == "foo"
    assert "id" in response.json() # Yeni oluşturulan öğenin bir ID'si olmalı

def test_invalid_post_id():
    """Geçersiz gönderi ID'si ile istek testi"""
    response = requests.get(f"{BASE_URL}/posts/999999")
    assert response.status_code == 404 # Not Found
Bu testleri çalıştırmak için, projenizin kök dizininde terminali açın ve `pytest` komutunu çalıştırın. Pytest, `test_` ile başlayan fonksiyonları otomatik olarak bulacak ve yürütecektir.

Sonuç
Python ile Web API test otomasyonu, yazılım geliştirme süreçlerinizin ayrılmaz bir parçası olmalıdır. requests gibi kullanımı kolay kütüphaneler ve pytest gibi güçlü test çerçeveleri sayesinde, API'lerinizin istikrarlı ve güvenilir çalıştığından emin olmanızı sağlayacak sağlam test süitleri oluşturmak oldukça basittir. Bu yaklaşım, hataları erken aşamada tespit ederek hem zaman hem de maliyet açısından önemli faydalar sunar.
 
shape1
shape2
shape3
shape4
shape5
shape6
Üst

Bu web sitenin performansı Hazal Host tarafından sağlanmaktadır.

YazilimForum.com.tr internet sitesi, 5651 sayılı Kanun’un 2. maddesinin 1. fıkrasının (m) bendi ve aynı Kanun’un 5. maddesi kapsamında Yer Sağlayıcı konumundadır. Sitede yer alan içerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır.

YazilimForum.com.tr, kullanıcılar tarafından paylaşılan içeriklerin doğruluğunu, güncelliğini veya hukuka uygunluğunu garanti etmez ve içeriklerin kontrolü veya araştırılması ile yükümlü değildir. Kullanıcılar, paylaştıkları içeriklerden tamamen kendileri sorumludur.

Hukuka aykırı içerikleri fark ettiğinizde lütfen bize bildirin: lydexcoding@gmail.com

Sitemiz, kullanıcıların paylaştığı içerik ve bilgileri 6698 sayılı KVKK kapsamında işlemektedir. Kullanıcılar, kişisel verileriyle ilgili haklarını KVKK Politikası sayfasından inceleyebilir.

Sitede yer alan reklamlar veya üçüncü taraf bağlantılar için YazilimForum.com.tr herhangi bir sorumluluk kabul etmez.

Sitemizi kullanarak Forum Kuralları’nı kabul etmiş sayılırsınız.

DMCA.com Protection Status Copyrighted.com Registered & Protected