Automação de Testes de API com Robot Framework: Guia Prático

INEZA Felin-Michel

INEZA Felin-Michel

22 maio 2026

Automação de Testes de API com Robot Framework: Guia Prático

Apidog para empresas

Implantação local

SSO & RBAC

Conforme SOC 2

Explorar Apidog Enterprise

O Robot Framework adota uma abordagem diferente das ferramentas "code-first". Em vez de escrever testes como código de programa, você os escreve como tabelas de palavras-chave legíveis por humanos. Um teste parece quase uma lista de verificação, o que significa que analistas e engenheiros de QA podem criar e revisar a mesma suíte. Para testes de API, a RequestsLibrary transforma chamadas HTTP nessas mesmas palavras-chave legíveis.

Este guia mostra como automatizar testes de API com o Robot Framework de ponta a ponta. Você instalará o framework e as bibliotecas de que ele precisa, escreverá seu primeiro teste baseado em palavras-chave, gerenciará sessões em diferentes requisições, fará asserções em códigos de status e corpos JSON, e construirá palavras-chave reutilizáveis para que a suíte seja escalável. Cada exemplo usa a sintaxe de tabela de palavras-chave que o Robot Framework realmente utiliza.

O que é o Robot Framework e por que ele se encaixa bem em testes de API

O Robot Framework é um framework de automação genérico e de código aberto para automação de testes e automação de processos robóticos. Sua característica definidora é a sintaxe orientada por palavras-chave: os testes são escritos em tabelas simples, e comportamentos complexos são construídos a partir de bibliotecas de palavras-chave implementadas em Python ou Java.

Para testes de API, isso oferece duas vantagens reais. Primeiro, os testes são legíveis por pessoas que não programam, então um testador ou proprietário de produto pode acompanhar o que uma suíte verifica. Segundo, o framework é extensível: a RequestsLibrary envolve a biblioteca Python requests e expõe operações HTTP como palavras-chave, enquanto outras bibliotecas cobrem JSON, bancos de dados e muito mais. Se a estrutura orientada por palavras-chave é nova para você, nosso guia mais amplo sobre frameworks de teste de automação explica onde ela se situa entre os outros tipos de frameworks.

Instalando o Robot Framework e suas bibliotecas

O Robot Framework e suas bibliotecas são instalados via pip. Trabalhe dentro de um ambiente virtual para manter o projeto limpo:

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

Os três pacotes cobrem a maioria das necessidades de testes de API:

Confirme a instalação com robot --version. O guia do usuário oficial do Robot Framework é a referência para dúvidas de sintaxe à medida que sua suíte cresce.

Um detalhe que confunde os recém-chegados: o Robot Framework é sensível a espaços em branco. Palavras-chave e seus argumentos são separados por pelo menos dois espaços, não um. Um único espaço é tratado como parte do mesmo token. A maioria dos editores com um plugin do Robot Framework lida com isso para você, mas se um teste falhar ao ser interpretado, argumentos com espaçamento incorreto são a primeira coisa a verificar.

Escrevendo seu primeiro teste de API

Os arquivos de teste do Robot Framework usam a extensão .robot e são divididos em seções marcadas por *** Settings ***, *** Variables *** e *** Test Cases ***. Aqui está um arquivo completo que verifica um endpoint de usuários:

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

A seção *** Settings *** importa bibliotecas. Create Session abre uma sessão HTTP nomeada. GET On Session envia a requisição e retorna um objeto de resposta. Status Should Be e Should Be Equal são palavras-chave de asserção. Execute a suíte com robot tests.robot, e o Robot Framework gerará um relatório HTML e um log automaticamente.

Trabalhando com sessões

Create Session faz mais do que armazenar uma URL base. A sessão mantém cabeçalhos padrão, autenticação e cookies, de modo que cada requisição feita nela herda esse estado. Isso é importante para qualquer API que exija login, pois você autentica uma vez e reutiliza a sessão.

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

A sintaxe ... continua uma chamada de palavra-chave na próxima linha, o que mantém as requisições longas legíveis. Create Dictionary constrói o mapa de cabeçalhos. Como a sessão persiste, você pode fazer várias requisições subsequentes sem recriá-la. As palavras-chave da RequestsLibrary para sessões estão documentadas na referência da RequestsLibrary.

Avaliando corpos de resposta

Verificar o código de status é o primeiro passo. Para verificar o corpo, analise o JSON e faça asserções em seus campos. As palavras-chave embutidas do Robot Framework cobrem igualdade e contenção, e a JSONLibrary adiciona extração baseada em caminho:

*** 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 um campo existe. Should Be Equal As Integers compara valores numéricos sem surpresas de incompatibilidade de tipo. Get Value From Json usa uma expressão JSONPath para alcançar dados aninhados. Para o conjunto mais amplo de verificações que vale a pena executar em uma resposta de API, nosso guia sobre asserções de API é um bom complemento.

Construindo palavras-chave reutilizáveis

Repetir Create Session e o fluxo de login em cada teste é o equivalente "keyword-driven" de copiar e colar. O Robot Framework permite que você defina suas próprias palavras-chave em uma seção *** Keywords ***, para que etapas comuns se tornem linhas únicas e legíveis:

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

Palavras-chave personalizadas são a forma como uma suíte do Robot Framework permanece fácil de manter. Quando o endpoint de login muda, você edita uma palavra-chave em vez de cada teste. Para suítes maiores, mova as palavras-chave compartilhadas para um arquivo de recurso e importe-o, a mesma disciplina modular descrita em nosso guia sobre como escrever scripts de teste automatizados.

Um arquivo de recurso é um arquivo .robot sem casos de teste, apenas seções *** Keywords *** e *** Variables ***. Você o importa de um arquivo de teste com Resource common.robot nas configurações. Isso mantém o fluxo de login, a URL base e outras peças compartilhadas em um só lugar. À medida que o projeto cresce, um layout típico tem um arquivo de recurso por área de API mais um de nível superior para configuração global. Essa separação de casos de teste da lógica de suporte é o cerne da estrutura orientada por palavras-chave, e nosso guia mais amplo sobre frameworks de teste de automação explica por que isso escala.

Executando o Robot Framework em CI

O Robot Framework executa em modo headless e retorna um código de saída diferente de zero em caso de falha, que é exatamente o que um pipeline precisa para falhar uma build. O executor também escreve output.xml, log.html e report.html após cada execução, então os artefatos de CI estão disponíveis sem configuração extra.

Alguns flags tornam as execuções de CI mais limpas. Use --outputdir para enviar relatórios para uma pasta conhecida, --include e --exclude com tags para executar subconjuntos, e arquivos de variáveis ou --variable para injetar valores específicos do ambiente, como URLs base e credenciais, sem editar os arquivos de teste:

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

Tag seus testes com [Tags] para que você possa executar um conjunto rápido de smoke tests em cada commit e a suíte completa todas as noites. Integrar isso ao GitHub Actions ou qualquer outro pipeline segue o mesmo padrão de nossa demonstração de testes de API em CI/CD: instale dependências, execute o comando, publique os artefatos de relatório.

Quando uma plataforma de API dedicada ajuda mais

O Robot Framework é uma excelente escolha quando você deseja testes legíveis, orientados por palavras-chave, que equipes com habilidades mistas podem compartilhar. Ele é menos conveniente quando você também precisa de design de API, mocking e depuração em um só lugar, ou quando deseja validação de esquema contra uma especificação OpenAPI sem montá-la a partir de bibliotecas.

Apidog lida diretamente com essas necessidades. Ele oferece um construtor de testes visual, validação automática de esquema OpenAPI, execuções orientadas a dados de CSV e JSON, gerenciamento de ambiente e relatórios HTML, com um executor CLI para CI. As equipes geralmente usam ambos: o Robot Framework onde a legibilidade orientada por palavras-chave é mais importante, e o Apidog para projetar, simular e testar amplamente as APIs em questão. Você pode baixar o Apidog e configurar uma suíte de testes de API funcional sem escrever nenhuma biblioteca de palavras-chave.

Perguntas frequentes

O Robot Framework é apenas para testes de UI?

Não. O Robot Framework é um framework de automação genérico. Com a RequestsLibrary, ele lida bem com testes de API, e outras bibliotecas cobrem bancos de dados, SSH e muito mais. Seu design orientado por palavras-chave é agnóstico à camada. O framework se tornou popular para testes de UI através da SeleniumLibrary, mas testes de API são um uso igualmente comum.

Qual a diferença entre Create Session e uma requisição simples?

Create Session abre uma sessão HTTP nomeada e persistente que armazena uma URL base, cabeçalhos, cookies e autenticação. Palavras-chave subsequentes, como GET On Session, reutilizam esse estado, o que é essencial para APIs que exigem login. Uma requisição sem sessão não transportaria cookies ou autenticação entre chamadas, forçando você a reenviar tudo a cada vez.

Preciso saber Python para usar o Robot Framework?

Não para escrever testes. A sintaxe de tabela de palavras-chave é projetada para não programadores, e a RequestsLibrary já expõe operações HTTP como palavras-chave. O conhecimento de Python se torna útil apenas quando você deseja escrever bibliotecas de palavras-chave inteiramente novas. A maioria das necessidades de teste de API é coberta por bibliotecas existentes, então muitas equipes nunca escrevem Python.

Como o Robot Framework se compara ao pytest para testes de API?

O Pytest é "code-first" e se adapta a equipes Python que desejam testes ao lado do código da aplicação. O Robot Framework é orientado por palavras-chave e se adapta a equipes com habilidades mistas que valorizam testes legíveis em formato de tabela. Ambos são executados em CI e produzem relatórios. A escolha se resume a quem escreve e mantém a suíte, e não à capacidade bruta.

O Robot Framework pode validar respostas contra um esquema OpenAPI?

Não de forma nativa. Você pode fazer asserções em campos individuais com palavras-chave embutidas e a JSONLibrary, e bibliotecas da comunidade adicionam verificação de esquema. Se a validação automática contra um documento OpenAPI for central para o seu fluxo de trabalho, uma plataforma como o Apidog, que faz isso nativamente, economizará o trabalho de montar e manter bibliotecas.

Pratique o design de API no Apidog

Descubra uma forma mais fácil de construir e usar APIs