Robot Framework ile API Otomasyon Testi: Uygulamalı Kılavuz

INEZA Felin-Michel

INEZA Felin-Michel

22 May 2026

Robot Framework ile API Otomasyon Testi: Uygulamalı Kılavuz

Kurumsal İçin Apidog

Şirket İçi (On-Premises) Dağıtım

SSO ve RBAC

SOC 2 Uyumlu

Apidog Enterprise'ı Keşfedin

Robot Framework, kod öncelikli araçlardan farklı bir duruş sergiler. Testleri program kodu olarak yazmak yerine, bunları insan tarafından okunabilir anahtar kelime tabloları olarak yazarsınız. Bir test neredeyse bir kontrol listesi gibi okunur, bu da QA analistlerinin ve mühendislerinin aynı paketi oluşturup gözden geçirebileceği anlamına gelir. API testi için RequestsLibrary, HTTP çağrılarını aynı okunabilir anahtar kelimelere dönüştürür.

Bu kılavuz, Robot Framework ile API testlerini uçtan uca nasıl otomatikleştireceğinizi göstermektedir. Çerçeveyi ve ihtiyaç duyduğu kütüphaneleri kuracak, ilk anahtar kelime odaklı testinizi yazacak, istekler arasında oturumları yönetecek, durum kodları ve JSON gövdeleri üzerinde doğrulama yapacak ve paketin ölçeklenebilir olması için yeniden kullanılabilir anahtar kelimeler oluşturacaksınız. Her örnek, Robot Framework'ün gerçekten kullandığı anahtar kelime-tablo sözdizimidir.

Robot Framework Nedir ve Neden API Testine Uygundur?

Robot Framework, test otomasyonu ve robotik süreç otomasyonu için açık kaynaklı, genel bir otomasyon çerçevesidir. Belirleyici özelliği anahtar kelime odaklı sözdizimidir: testler basit tablolar halinde yazılır ve karmaşık davranışlar Python veya Java'da uygulanan anahtar kelime kütüphanelerinden oluşturulur.

API testi için bunun iki gerçek avantajı vardır. Birincisi, testler kod yazmayan kişiler tarafından okunabilir, böylece bir test uzmanı veya ürün sahibi bir paketin neyi doğruladığını takip edebilir. İkincisi, çerçeve genişletilebilir: RequestsLibrary, Python requests kütüphanesini sarar ve HTTP işlemlerini anahtar kelimeler olarak sunarken, diğer kütüphaneler JSON, veritabanları ve daha fazlasını kapsar. Anahtar kelime odaklı yapı sizin için yeni ise, daha geniş kapsamlı otomasyon testi çerçevesi kılavuzumuz, diğer çerçeve türleri arasındaki yerini açıklamaktadır.

Robot Framework ve Kütüphanelerini Kurma

Robot Framework ve kütüphaneleri pip aracılığıyla yüklenir. Projeyi temiz tutmak için sanal bir ortam içinde çalışın:

python -m venv .venv
source .venv/bin/activate
pip install robotframework
pip install robotframework-requests
pip install robotframework-jsonlibrary

Üç paket, çoğu API testi ihtiyacını karşılar:

Kurulumu robot --version ile onaylayın. Resmi Robot Framework kullanıcı kılavuzu, paketiniz büyüdükçe sözdizimi sorularınız için bir referanstır.

Yeni başlayanları şaşırtan bir ayrıntı: Robot Framework boşluklara duyarlıdır. Anahtar kelimeler ve argümanları en az iki boşlukla ayrılır, bir boşlukla değil. Tek bir boşluk, aynı belirtecin parçası olarak kabul edilir. Robot Framework eklentisine sahip çoğu editör bunu sizin için halleder, ancak bir test ayrıştırılamazsa, hatalı boşluklu argümanlar kontrol edilmesi gereken ilk şeydir.

İlk API Testinizi Yazma

Robot Framework test dosyaları .robot uzantısını kullanır ve *** Settings ***, *** Variables *** ve *** Test Cases *** ile işaretlenmiş bölümlere ayrılır. İşte bir kullanıcı endpointini kontrol eden eksiksiz bir dosya:

*** Settings ***
Library           RequestsLibrary
Library           Collections

*** Variables ***
${BASE_URL}       https://api.example.com/v1

*** Test Cases ***
Get User Returns 200
    Create Session    api    ${BASE_URL}
    ${response}=      GET On Session    api    /users/42
    Status Should Be  200    ${response}

Get User Returns Expected Email
    Create Session    api    ${BASE_URL}
    ${response}=      GET On Session    api    /users/42
    ${body}=          Set Variable    ${response.json()}
    Should Be Equal As Integers    ${body}[id]    42
    Should Be Equal    ${body}[status]    active

*** Settings *** bölümü kütüphaneleri içe aktarır. Create Session adlandırılmış bir HTTP oturumu açar. GET On Session isteği gönderir ve bir yanıt nesnesi döndürür. Status Should Be ve Should Be Equal doğrulama anahtar kelimeleridir. Paketi robot tests.robot ile çalıştırın; Robot Framework otomatik olarak bir HTML raporu ve günlüğü oluşturur.

Oturumlarla Çalışma

Create Session sadece bir temel URL depolamaktan fazlasını yapar. Oturum, varsayılan başlıkları, kimlik doğrulamasını ve çerezleri tutar, bu nedenle üzerinde yapılan her istek bu durumu miras alır. Bu, giriş gerektiren herhangi bir API için önemlidir, çünkü bir kez kimlik doğrulaması yapar ve oturumu yeniden kullanırsınız.

*** Test Cases ***
Create Order With Authenticated Session
    Create Session    api    ${BASE_URL}
    ${login}=         POST On Session    api    /auth/login
    ...               json={"email": "qa@example.com", "password": "test-pass"}
    ${token}=         Set Variable    ${login.json()}[token]
    ${headers}=       Create Dictionary    Authorization=Bearer ${token}
    ${order}=         POST On Session    api    /orders
    ...               json={"product_id": 7, "quantity": 2}
    ...               headers=${headers}
    Status Should Be  201    ${order}

... sözdizimi, bir anahtar kelime çağrısını bir sonraki satıra devam ettirerek uzun istekleri okunabilir kılar. Create Dictionary başlık haritasını oluşturur. Oturum kalıcı olduğu için, onu yeniden oluşturmadan birden fazla takip isteği yapabilirsiniz. Oturumlar için RequestsLibrary anahtar kelimeleri, RequestsLibrary referansında belgelenmiştir.

Yanıt Gövdeleri Üzerinde Doğrulama Yapma

Durum kodunu kontrol etmek ilk adımdır. Gövdeyi doğrulamak için JSON'ı ayrıştırın ve alanları üzerinde doğrulama yapın. Robot Framework'ün yerleşik anahtar kelimeleri eşitliği ve içermeyi kapsar ve JSONLibrary yol tabanlı çıkarma ekler:

*** Settings ***
Library           RequestsLibrary
Library           JSONLibrary
Library           Collections

*** Variables ***
${BASE_URL}       https://api.example.com/v1

*** Test Cases ***
Order Response Has Correct Shape
    Create Session    api    ${BASE_URL}
    ${response}=      POST On Session    api    /orders
    ...               json={"product_id": 7, "quantity": 2}
    Status Should Be  201    ${response}
    ${body}=          Set Variable    ${response.json()}
    Dictionary Should Contain Key    ${body}    total
    Should Be Equal As Integers      ${body}[quantity]    2
    ${status}=        Get Value From Json    ${body}    $.status
    Should Be Equal    ${status}[0]    pending

Dictionary Should Contain Key bir alanın varlığını doğrular. Should Be Equal As Integers sayısal değerleri tür uyumsuzluğu sürprizleri olmadan karşılaştırır. Get Value From Json iç içe geçmiş verilere ulaşmak için bir JSONPath ifadesi kullanır. Bir API yanıtında çalıştırılmaya değer daha geniş kontrol seti için, API doğrulama kılavuzumuz iyi bir eşlikçidir.

Yeniden Kullanılabilir Anahtar Kelimeler Oluşturma

Her testte Create Session ve giriş akışını tekrarlamak, anahtar kelime odaklı kopyala-yapıştırın eşdeğeridir. Robot Framework, *** Keywords *** bölümünde kendi anahtar kelimelerinizi tanımlamanıza olanak tanır, böylece ortak adımlar tek okunabilir satırlar haline gelir:

*** Keywords ***
Authenticate And Open Session
    Create Session    api    ${BASE_URL}
    ${login}=         POST On Session    api    /auth/login
    ...               json={"email": "qa@example.com", "password": "test-pass"}
    ${token}=         Set Variable    ${login.json()}[token]
    Set Suite Variable    ${AUTH_HEADERS}    Bearer ${token}

*** Test Cases ***
Create Order
    Authenticate And Open Session
    ${headers}=       Create Dictionary    Authorization=${AUTH_HEADERS}
    ${order}=         POST On Session    api    /orders
    ...               json={"product_id": 7, "quantity": 2}    headers=${headers}
    Status Should Be  201    ${order}

Özel anahtar kelimeler, bir Robot Framework paketinin nasıl sürdürülebilir kaldığıdır. Giriş endpointi değiştiğinde, her testi değil, tek bir anahtar kelimeyi düzenlersiniz. Daha büyük paketler için, paylaşılan anahtar kelimeleri bir kaynak dosyasına taşıyın ve onu içe aktarın; bu, otomatik test betikleri yazma kılavuzumuzda açıklanan modüler disiplinle aynıdır.

Bir kaynak dosyası, test senaryoları olmayan, yalnızca *** Keywords *** ve *** Variables *** bölümlerini içeren bir .robot dosyasıdır. Ayarlarda Resource common.robot ile bir test dosyasından içe aktarırsınız. Bu, giriş akışını, temel URL'yi ve diğer paylaşılan parçaları tek bir yerde tutar. Proje büyüdükçe, tipik bir düzen, API alanı başına bir kaynak dosyası ve genel kurulum için üst düzey bir dosya içerir. Test senaryolarının destekleyici mantıktan bu şekilde ayrılması, anahtar kelime odaklı yapının kalbidir ve daha geniş kapsamlı otomasyon testi çerçevesi kılavuzumuz, neden ölçeklenebilir olduğunu açıklamaktadır.

Robot Framework'ü CI'da Çalıştırma

Robot Framework başsız çalışır ve bir hata durumunda sıfır olmayan bir çıkış kodu döndürür; bu, bir ardışık düzenin bir yapıyı başarısız kılması için tam olarak ihtiyacı olan şeydir. Çalıştırıcı ayrıca her çalıştırmadan sonra output.xml, log.html ve report.html dosyalarını yazar, bu nedenle CI yapıları ek yapılandırma olmadan kullanılabilir.

Birkaç bayrak, CI çalıştırmalarını daha temiz hale getirir. Raporları bilinen bir klasöre göndermek için --outputdir, alt kümeleri çalıştırmak için etiketlerle --include ve --exclude ve test dosyalarını düzenlemeden temel URL'ler ve kimlik bilgileri gibi ortama özgü değerleri eklemek için değişken dosyaları veya --variable kullanın:

robot --outputdir results --variable BASE_URL:https://staging.example.com/v1 tests/

Testlerinizi [Tags] ile etiketleyin, böylece her commit'te hızlı bir duman testi seti ve her gece tam paketi çalıştırabilirsiniz. Bunu GitHub Actions'a veya başka bir ardışık düzene bağlamak, CI/CD'deki API testleri kılavuzumuzla aynı deseni izler: bağımlılıkları yükleyin, komutu çalıştırın, rapor çıktılarını yayınlayın.

Özel Bir API Platformu Ne Zaman Daha Çok Yardımcı Olur?

Robot Framework, farklı yeteneklere sahip ekiplerin paylaşabileceği okunabilir, anahtar kelime odaklı testler istediğinizde güçlü bir seçimdir. API tasarımı, sahte yanıt oluşturma (mocking) ve hata ayıklamayı tek bir yerde yapmanız gerektiğinde veya kütüphanelerden birleştirmeden bir OpenAPI spesifikasyonuna karşı şema doğrulaması yapmak istediğinizde daha az kullanışlıdır.

Apidog bu ihtiyaçları doğrudan karşılar. Görsel bir test oluşturucu, otomatik OpenAPI şema doğrulaması, CSV ve JSON'dan veri odaklı çalıştırmalar, ortam yönetimi ve HTML raporları sunar, ayrıca CI için bir CLI çalıştırıcısı da bulunur. Ekipler genellikle ikisini birden kullanır: Anahtar kelime odaklı okunabilirliğin en önemli olduğu yerlerde Robot Framework'ü, test edilen API'leri tasarlamak, sahte yanıt oluşturmak ve geniş çaplı test etmek için ise Apidog'u. Herhangi bir anahtar kelime kütüphanesi yazmadan Apidog'u indirebilir ve çalışan bir API test paketi kurabilirsiniz.

Sıkça Sorulan Sorular

Robot Framework sadece UI testi için mi?

Hayır. Robot Framework genel bir otomasyon çerçevesidir. RequestsLibrary ile API testlerini iyi bir şekilde ele alır ve diğer kütüphaneler veritabanları, SSH ve daha fazlasını kapsar. Anahtar kelime odaklı tasarımı katman bağımsızdır. Çerçeve, SeleniumLibrary aracılığıyla UI testi için popüler hale gelmiş olsa da, API testi de eşit derecede yaygın bir kullanımdır.

Create Session ile düz bir istek arasındaki fark nedir?

Create Session, temel URL, başlıklar, çerezler ve kimlik doğrulama bilgilerini depolayan adlandırılmış, kalıcı bir HTTP oturumu açar. GET On Session gibi sonraki anahtar kelimeler bu durumu yeniden kullanır; bu, giriş gerektiren API'ler için çok önemlidir. Oturumsuz bir istek, çağrılar arasında çerez veya kimlik doğrulama taşımaz ve her seferinde her şeyi yeniden göndermenizi zorlar.

Robot Framework kullanmak için Python bilmem gerekiyor mu?

Test yazmak için değil. Anahtar kelime-tablo sözdizimi programcı olmayanlar için tasarlanmıştır ve RequestsLibrary zaten HTTP işlemlerini anahtar kelimeler olarak sunar. Python bilgisi, yalnızca tamamen yeni anahtar kelime kütüphaneleri yazmak istediğinizde kullanışlı hale gelir. Çoğu API testi ihtiyacı mevcut kütüphaneler tarafından karşılandığından, birçok ekip hiç Python yazmaz.

Robot Framework, API testi için pytest ile nasıl karşılaştırılır?

Pytest, kod önceliklidir ve testleri uygulama kodunun yanında tutmak isteyen Python ekipleri için uygundur. Robot Framework, anahtar kelime odaklıdır ve okunabilir, tablo tarzı testlere değer veren farklı yeteneklere sahip ekipler için uygundur. Her ikisi de CI'da çalışır ve raporlar üretir. Seçim, ham yetenekten ziyade, paketi kimin yazıp sürdürdüğüne bağlıdır.

Robot Framework yanıtları bir OpenAPI şemasına göre doğrulayabilir mi?

Hazır olarak gelmez. Yerleşik anahtar kelimeler ve JSONLibrary ile tek tek alanları doğrulayabilir, topluluk kütüphaneleri ise şema kontrolü ekler. Bir OpenAPI belgesine karşı otomatik doğrulama iş akışınızın merkezindeyse, bunu yerel olarak yapan Apidog gibi bir platform, kütüphane birleştirme ve bakımı zahmetinden sizi kurtaracaktır.

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin