Automatización de Pruebas API con Robot Framework: Guía Práctica

INEZA Felin-Michel

INEZA Felin-Michel

22 May 2026

Automatización de Pruebas API con Robot Framework: Guía Práctica

Apidog para empresas

Despliegue local

SSO & RBAC

Conforme con SOC 2

Explorar Apidog Enterprise

Robot Framework adopta una postura diferente a las herramientas que priorizan el código. En lugar de escribir pruebas como código de programa, las escribes como tablas de palabras clave legibles por humanos. Una prueba se lee casi como una lista de verificación, lo que significa que los analistas e ingenieros de control de calidad pueden crear y revisar la misma suite. Para las pruebas de API, RequestsLibrary convierte las llamadas HTTP en esas mismas palabras clave legibles.

Esta guía muestra cómo automatizar las pruebas de API con Robot Framework de principio a fin. Instalarás el framework y las librerías que necesita, escribirás tu primera prueba basada en palabras clave, gestionarás sesiones a través de solicitudes, harás aserciones sobre códigos de estado y cuerpos JSON, y construirás palabras clave reutilizables para que la suite escale. Cada ejemplo es la sintaxis de tabla de palabras clave que realmente utiliza Robot Framework.

Qué es Robot Framework y por qué encaja en las pruebas de API

Robot Framework es un framework de automatización genérico de código abierto para la automatización de pruebas y la automatización de procesos robóticos. Su característica definitoria es la sintaxis basada en palabras clave: las pruebas se escriben en tablas simples y el comportamiento complejo se construye a partir de librerías de palabras clave implementadas en Python o Java.

Para las pruebas de API, esto tiene dos ventajas reales. Primero, las pruebas son legibles por personas que no codifican, por lo que un probador o un product owner pueden seguir lo que verifica una suite. Segundo, el framework es extensible: RequestsLibrary envuelve la librería requests de Python y expone las operaciones HTTP como palabras clave, mientras que otras librerías cubren JSON, bases de datos y más. Si la estructura basada en palabras clave es nueva para ti, nuestra guía más amplia sobre frameworks de pruebas de automatización explica dónde se sitúa entre los otros tipos de frameworks.

Instalación de Robot Framework y sus librerías

Robot Framework y sus librerías se instalan a través de pip. Trabaja dentro de un entorno virtual para mantener el proyecto limpio:

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

Los tres paquetes cubren la mayoría de las necesidades de las pruebas de API:

Confirma la instalación con robot --version. La guía de usuario oficial de Robot Framework es la referencia para preguntas de sintaxis a medida que tu suite crece.

Un detalle que confunde a los recién llegados: Robot Framework es sensible a los espacios en blanco. Las palabras clave y sus argumentos están separados por al menos dos espacios, no uno. Un solo espacio se trata como parte del mismo token. La mayoría de los editores con un complemento de Robot Framework se encargan de esto por ti, pero si una prueba no se puede analizar, los argumentos mal espaciados son lo primero que debes verificar.

Escribiendo tu primera prueba de API

Los archivos de prueba de Robot Framework usan la extensión .robot y se dividen en secciones marcadas por *** Settings ***, *** Variables *** y *** Test Cases ***. Aquí tienes un archivo completo que verifica un endpoint de usuarios:

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

La sección *** Settings *** importa librerías. Create Session abre una sesión HTTP con nombre. GET On Session envía la solicitud y devuelve un objeto de respuesta. Status Should Be y Should Be Equal son palabras clave de aserción. Ejecuta la suite con robot tests.robot, y Robot Framework genera automáticamente un informe HTML y un registro.

Trabajando con sesiones

Create Session hace más que almacenar una URL base. La sesión contiene encabezados predeterminados, autenticación y cookies, por lo que cada solicitud realizada en ella hereda ese estado. Esto es importante para cualquier API que requiera un inicio de sesión, porque te autenticas una vez y reutilizas la sesión.

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

La sintaxis ... continúa una llamada de palabra clave en la siguiente línea, lo que mantiene legibles las solicitudes largas. Create Dictionary construye el mapa de encabezados. Debido a que la sesión persiste, podrías realizar varias solicitudes de seguimiento sin recrearla. Las palabras clave de RequestsLibrary para sesiones están documentadas en la referencia de RequestsLibrary.

Aserciones sobre los cuerpos de respuesta

Verificar el código de estado es el primer paso. Para verificar el cuerpo, analiza el JSON y haz aserciones sobre sus campos. Las palabras clave incorporadas de Robot Framework cubren la igualdad y la contención, y JSONLibrary agrega extracción basada en rutas:

*** 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 confirma que un campo existe. Should Be Equal As Integers compara valores numéricos sin sorpresas de desajuste de tipos. Get Value From Json usa una expresión JSONPath para acceder a datos anidados. Para el conjunto más amplio de verificaciones que vale la pena ejecutar en una respuesta de API, nuestra guía sobre aseraciones de API es un buen complemento.

Construyendo palabras clave reutilizables

Repetir Create Session y el flujo de inicio de sesión en cada prueba es el equivalente de copiar y pegar basado en palabras clave. Robot Framework te permite definir tus propias palabras clave en una sección *** Keywords ***, para que los pasos comunes se conviertan en líneas legibles individuales:

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

Las palabras clave personalizadas son la forma en que una suite de Robot Framework se mantiene mantenible. Cuando cambia el endpoint de inicio de sesión, editas una palabra clave en lugar de cada prueba. Para suites más grandes, mueve las palabras clave compartidas a un archivo de recursos e impórtalo, la misma disciplina modular descrita en nuestra guía sobre cómo escribir scripts de pruebas automatizados.

Un archivo de recursos es un archivo .robot sin casos de prueba, solo secciones *** Keywords *** y *** Variables ***. Lo importas desde un archivo de prueba con Resource common.robot en la configuración. Esto mantiene el flujo de inicio de sesión, la URL base y otras piezas compartidas en un solo lugar. A medida que el proyecto crece, un diseño típico tiene un archivo de recursos por área de API más uno de nivel superior para la configuración global. Esa separación de casos de prueba de la lógica de soporte es el corazón de la estructura basada en palabras clave, y nuestra guía más amplia de frameworks de pruebas de automatización explica por qué escala.

Ejecutando Robot Framework en CI

Robot Framework se ejecuta sin interfaz gráfica y devuelve un código de salida distinto de cero en caso de fallo, que es exactamente lo que una pipeline necesita para que una construcción falle. El ejecutor también escribe output.xml, log.html y report.html después de cada ejecución, por lo que los artefactos de CI están disponibles sin configuración adicional.

Algunas banderas hacen que las ejecuciones de CI sean más limpias. Usa --outputdir para enviar los informes a una carpeta conocida, --include y --exclude con etiquetas para ejecutar subconjuntos, y archivos de variables o --variable para inyectar valores específicos del entorno como URLs base y credenciales sin editar los archivos de prueba:

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

Etiqueta tus pruebas con [Tags] para que puedas ejecutar un conjunto rápido de pruebas de humo en cada commit y la suite completa cada noche. Conectar esto a GitHub Actions o cualquier otra pipeline sigue el mismo patrón que nuestra guía de pruebas de API en CI/CD: instala dependencias, ejecuta el comando, publica los artefactos del informe.

Cuando una plataforma de API dedicada ayuda más

Robot Framework es una opción sólida cuando deseas pruebas legibles y basadas en palabras clave que equipos con habilidades diversas puedan compartir. Es menos conveniente cuando también necesitas diseño de API, mocking y depuración en un solo lugar, o cuando deseas validación de esquema contra una especificación OpenAPI sin tener que ensamblarla a partir de librerías.

Apidog maneja esas necesidades directamente. Proporciona un constructor visual de pruebas, validación automática de esquemas OpenAPI, ejecuciones basadas en datos desde CSV y JSON, gestión de entornos e informes HTML, con un ejecutor CLI para CI. Los equipos a menudo usan ambos: Robot Framework donde la legibilidad basada en palabras clave es lo más importante, y Apidog para diseñar, simular y probar ampliamente las API bajo prueba. Puedes descargar Apidog y configurar una suite de pruebas de API funcional sin escribir ninguna librería de palabras clave.

Preguntas frecuentes

¿Robot Framework es solo para pruebas de interfaz de usuario?

No. Robot Framework es un framework de automatización genérico. Con RequestsLibrary, maneja bien las pruebas de API, y otras librerías cubren bases de datos, SSH y más. Su diseño basado en palabras clave es agnóstico a la capa. El framework se hizo popular para las pruebas de interfaz de usuario a través de SeleniumLibrary, pero las pruebas de API son un uso igualmente común.

¿Cuál es la diferencia entre Create Session y una solicitud simple?

Create Session abre una sesión HTTP persistente con nombre que almacena una URL base, encabezados, cookies y autenticación. Las palabras clave posteriores como GET On Session reutilizan ese estado, lo cual es esencial para las API que requieren inicio de sesión. Una solicitud sin sesión no llevaría cookies o autenticación entre llamadas, obligándote a reenviar todo cada vez.

¿Necesito saber Python para usar Robot Framework?

No para escribir pruebas. La sintaxis de tabla de palabras clave está diseñada para no programadores, y RequestsLibrary ya expone las operaciones HTTP como palabras clave. El conocimiento de Python se vuelve útil solo cuando quieres escribir librerías de palabras clave completamente nuevas. La mayoría de las necesidades de las pruebas de API están cubiertas por las librerías existentes, por lo que muchos equipos nunca escriben Python.

¿Cómo se compara Robot Framework con pytest para las pruebas de API?

Pytest prioriza el código y se adapta a equipos de Python que quieren pruebas junto al código de la aplicación. Robot Framework se basa en palabras clave y se adapta a equipos con habilidades diversas que valoran las pruebas legibles con estilo de tabla. Ambos se ejecutan en CI y producen informes. La elección se reduce a quién escribe y mantiene la suite, en lugar de a la capacidad bruta.

¿Puede Robot Framework validar respuestas contra un esquema OpenAPI?

No de forma predeterminada. Puedes hacer aserciones sobre campos individuales con palabras clave incorporadas y JSONLibrary, y las librerías de la comunidad agregan la verificación de esquemas. Si la validación automática contra un documento OpenAPI es central para tu flujo de trabajo, una plataforma como Apidog que lo hace de forma nativa te ahorrará el ensamblaje y mantenimiento de librerías.

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs