Panduan Praktis: Pengujian Otomasi API dengan Robot Framework

INEZA Felin-Michel

INEZA Felin-Michel

22 May 2026

Panduan Praktis: Pengujian Otomasi API dengan Robot Framework

Apidog untuk Perusahaan

Penerapan On-Premises

SSO & RBAC

Sesuai SOC 2

Jelajahi Apidog Enterprise

Robot Framework memiliki pendekatan yang berbeda dari alat-alat yang mengutamakan kode (code-first tools). Daripada menulis pengujian sebagai kode program, Anda menuliskannya sebagai tabel kata kunci yang mudah dibaca manusia. Sebuah pengujian hampir menyerupai daftar periksa, yang berarti analis QA dan insinyur dapat membuat dan meninjau kumpulan pengujian yang sama. Untuk pengujian API, RequestsLibrary mengubah panggilan HTTP menjadi kata kunci yang mudah dibaca tersebut.

Panduan ini menunjukkan cara mengotomatisasi pengujian API dengan Robot Framework secara menyeluruh (end to end). Anda akan menginstal framework dan library yang dibutuhkan, menulis pengujian berbasis kata kunci pertama Anda, mengelola sesi antar permintaan, melakukan assersi pada kode status dan body JSON, serta membangun kata kunci yang dapat digunakan kembali agar kumpulan pengujian dapat diskalakan. Setiap contoh menggunakan sintaks tabel kata kunci yang sebenarnya digunakan oleh Robot Framework.

Apa itu Robot Framework dan mengapa cocok untuk pengujian API

Robot Framework adalah kerangka kerja otomatisasi generik sumber terbuka untuk otomatisasi pengujian dan otomatisasi proses robotik. Fitur utamanya adalah sintaks berbasis kata kunci: pengujian ditulis dalam tabel sederhana, dan perilaku kompleks dibangun dari pustaka kata kunci yang diimplementasikan dalam Python atau Java.

Untuk pengujian API, ini memiliki dua keuntungan nyata. Pertama, pengujian dapat dibaca oleh orang yang tidak tahu kode, sehingga seorang penguji atau pemilik produk dapat mengikuti apa yang diverifikasi oleh kumpulan pengujian. Kedua, framework ini dapat diperluas: RequestsLibrary membungkus pustaka `requests` Python dan mengekspos operasi HTTP sebagai kata kunci, sementara pustaka lain mencakup JSON, basis data, dan banyak lagi. Jika struktur berbasis kata kunci baru bagi Anda, panduan kami yang lebih luas tentang kerangka kerja pengujian otomatisasi menjelaskan posisinya di antara jenis kerangka kerja lainnya.

Menginstal Robot Framework dan library-nya

Robot Framework dan library-nya diinstal melalui pip. Bekerja di dalam lingkungan virtual untuk menjaga proyek tetap bersih:

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

Ketiga paket ini mencakup sebagian besar kebutuhan pengujian API:

Konfirmasi instalasi dengan robot --version. Panduan pengguna Robot Framework resmi adalah referensi untuk pertanyaan sintaks saat kumpulan pengujian Anda berkembang.

Satu detail yang sering menjebak pemula: Robot Framework peka terhadap spasi kosong (whitespace-sensitive). Kata kunci dan argumennya dipisahkan oleh setidaknya dua spasi, bukan satu. Satu spasi diperlakukan sebagai bagian dari token yang sama. Sebagian besar editor dengan plugin Robot Framework akan menangani ini untuk Anda, tetapi jika sebuah pengujian gagal diurai, argumen yang salah spasi adalah hal pertama yang harus diperiksa.

File pengujian Robot Framework menggunakan ekstensi .robot dan dibagi menjadi beberapa bagian yang ditandai dengan *** Settings ***, *** Variables ***, dan *** Test Cases ***. Berikut adalah file lengkap yang memeriksa endpoint pengguna:

*** 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

Bagian *** Settings *** mengimpor library. Create Session membuka sesi HTTP bernama. GET On Session mengirimkan permintaan dan mengembalikan objek respons. Status Should Be dan Should Be Equal adalah kata kunci assersi. Jalankan kumpulan pengujian dengan robot tests.robot, dan Robot Framework akan secara otomatis menghasilkan laporan dan log HTML.

Bekerja dengan sesi

Create Session melakukan lebih dari sekadar menyimpan URL dasar. Sesi tersebut menyimpan header default, otentikasi, dan cookie, sehingga setiap permintaan yang dibuat di atasnya mewarisi status tersebut. Ini penting untuk API apa pun yang memerlukan login, karena Anda mengautentikasi sekali dan menggunakan kembali sesi tersebut.

*** 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}

Sintaks ... melanjutkan pemanggilan kata kunci ke baris berikutnya, yang menjaga permintaan yang panjang tetap mudah dibaca. Create Dictionary membangun peta header. Karena sesi tetap ada, Anda dapat membuat beberapa permintaan lanjutan tanpa membuatnya ulang. Kata kunci RequestsLibrary untuk sesi didokumentasikan dalam referensi RequestsLibrary.

Melakukan Assersi pada Body Respons

Memeriksa kode status adalah langkah pertama. Untuk memverifikasi body respons, parsing JSON dan lakukan assersi pada field-field-nya. Kata kunci bawaan Robot Framework mencakup kesamaan dan keberadaan, dan JSONLibrary menambahkan ekstraksi berbasis jalur:

*** 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 mengonfirmasi keberadaan sebuah field. Should Be Equal As Integers membandingkan nilai numerik tanpa kejutan ketidakcocokan tipe. Get Value From Json menggunakan ekspresi JSONPath untuk mencapai data bersarang. Untuk kumpulan pemeriksaan yang lebih luas yang layak dijalankan pada respons API, panduan kami tentang assersi API adalah pendamping yang baik.

Membangun Kata Kunci yang Dapat Digunakan Kembali

Mengulang Create Session dan alur login di setiap pengujian adalah setara dengan salin-tempel dalam paradigma berbasis kata kunci. Robot Framework memungkinkan Anda mendefinisikan kata kunci Anda sendiri di bagian *** Keywords ***, sehingga langkah-langkah umum menjadi baris tunggal yang mudah dibaca:

*** 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}

Kata kunci kustom adalah cara kumpulan Robot Framework tetap dapat dipelihara. Ketika endpoint login berubah, Anda cukup mengedit satu kata kunci, bukan setiap pengujian. Untuk kumpulan pengujian yang lebih besar, pindahkan kata kunci bersama ke file sumber daya dan impor, disiplin modular yang sama dijelaskan dalam panduan kami tentang menulis skrip pengujian otomatis.

File sumber daya adalah file .robot tanpa kasus pengujian, hanya bagian *** Keywords *** dan *** Variables ***. Anda mengimpornya dari file pengujian dengan Resource common.robot di pengaturan. Ini menjaga alur login, URL dasar, dan bagian bersama lainnya dalam satu tempat. Seiring pertumbuhan proyek, tata letak tipikal memiliki satu file sumber daya per area API ditambah satu file tingkat atas untuk pengaturan global. Pemisahan kasus pengujian dari logika pendukung adalah inti dari struktur berbasis kata kunci, dan panduan kami yang lebih luas tentang kerangka kerja pengujian otomatisasi menjelaskan mengapa hal ini dapat diskalakan.

Menjalankan Robot Framework di CI

Robot Framework berjalan tanpa tampilan (headless) dan mengembalikan kode keluar non-nol saat gagal, yang persis seperti yang dibutuhkan pipeline untuk menggagalkan sebuah build. Runner juga menulis output.xml, log.html, dan report.html setelah setiap jalankan, sehingga artefak CI tersedia tanpa konfigurasi tambahan.

Beberapa flag membuat jalankan CI lebih bersih. Gunakan --outputdir untuk mengirim laporan ke folder yang diketahui, --include dan --exclude dengan tag untuk menjalankan subset, dan file variabel atau --variable untuk menyuntikkan nilai spesifik lingkungan seperti URL dasar dan kredensial tanpa mengedit file pengujian:

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

Beri tag pada pengujian Anda dengan [Tags] sehingga Anda dapat menjalankan kumpulan smoke test cepat pada setiap commit dan seluruh suite setiap malam. Menghubungkan ini ke GitHub Actions atau pipeline lainnya mengikuti pola yang sama seperti panduan pengujian API di CI/CD kami: instal dependensi, jalankan perintah, publikasikan artefak laporan.

Kapan Platform API Khusus Lebih Membantu

Robot Framework adalah pilihan yang kuat ketika Anda menginginkan pengujian berbasis kata kunci yang mudah dibaca yang dapat dibagikan oleh tim dengan beragam keahlian. Ini kurang nyaman ketika Anda juga membutuhkan desain API, mocking, dan debugging di satu tempat, atau ketika Anda ingin validasi skema terhadap spesifikasi OpenAPI tanpa harus merangkainya dari berbagai library.

Apidog menangani kebutuhan tersebut secara langsung. Ia menyediakan pembangun pengujian visual, validasi skema OpenAPI otomatis, eksekusi berbasis data dari CSV dan JSON, manajemen lingkungan, dan laporan HTML, dengan runner CLI untuk CI. Tim sering menggunakan keduanya: Robot Framework di mana keterbacaan berbasis kata kunci paling penting, dan Apidog untuk mendesain, memalsukan, dan secara luas menguji API yang sedang diuji. Anda dapat mengunduh Apidog dan menyiapkan kumpulan pengujian API yang berfungsi tanpa menulis library kata kunci apa pun.

Pertanyaan yang Sering Diajukan

Apakah Robot Framework hanya untuk pengujian UI?

Tidak. Robot Framework adalah kerangka kerja otomatisasi generik. Dengan RequestsLibrary, ia menangani pengujian API dengan baik, dan library lain mencakup database, SSH, dan banyak lagi. Desain berbasis kata kuncinya tidak bergantung pada lapisan. Kerangka kerja ini menjadi populer untuk pengujian UI melalui SeleniumLibrary, tetapi pengujian API adalah penggunaan yang sama umumnya.

Apa perbedaan antara Create Session dan permintaan biasa?

Create Session membuka sesi HTTP bernama dan persisten yang menyimpan URL dasar, header, cookie, dan otentikasi. Kata kunci berikutnya seperti GET On Session menggunakan kembali status tersebut, yang penting untuk API yang memerlukan login. Permintaan tanpa sesi tidak akan membawa cookie atau otentikasi antar panggilan, memaksa Anda untuk mengirim ulang semuanya setiap saat.

Apakah saya perlu tahu Python untuk menggunakan Robot Framework?

Tidak untuk menulis pengujian. Sintaks tabel kata kunci dirancang untuk non-programer, dan RequestsLibrary sudah mengekspos operasi HTTP sebagai kata kunci. Pengetahuan Python hanya menjadi berguna ketika Anda ingin menulis library kata kunci yang sama sekali baru. Sebagian besar kebutuhan pengujian API dicakup oleh library yang sudah ada, sehingga banyak tim tidak pernah menulis Python sama sekali.

Bagaimana perbandingan Robot Framework dengan pytest untuk pengujian API?

Pytest adalah code-first dan cocok untuk tim Python yang ingin menguji bersama kode aplikasi. Robot Framework adalah berbasis kata kunci dan cocok untuk tim dengan beragam keahlian yang menghargai pengujian gaya tabel yang mudah dibaca. Keduanya berjalan di CI dan menghasilkan laporan. Pilihan ini bergantung pada siapa yang menulis dan memelihara suite daripada kemampuan mentahnya.

Dapatkah Robot Framework memvalidasi respons terhadap skema OpenAPI?

Tidak secara langsung. Anda dapat melakukan assersi pada field individual dengan kata kunci bawaan dan JSONLibrary, dan library komunitas menambahkan pemeriksaan skema. Jika validasi otomatis terhadap dokumen OpenAPI adalah inti dari alur kerja Anda, platform seperti Apidog yang melakukannya secara native akan menghemat Anda dari perakitan dan pemeliharaan library.

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.