Sobes.tech
Middle

Como pode automatizar os testes de API?

sobes.tech IA

Resposta da IA

A automação de testes de API pode ser realizada das seguintes formas:

  1. Utilização de frameworks/bibliotecas:

    • Rest-Assured (Java): Biblioteca popular para testar APIs REST.
    • Requests (Python): Biblioteca simples e poderosa para fazer requisições HTTP.
    • SuperTest (Node.js): Biblioteca para testar servidores HTTP e APIs.
    • Postman/Newman: Aplicações com GUI e CLI para criar e executar testes de API.
  2. Criação de cenários de teste:

    • Definir casos de teste positivos e negativos para cada endpoint.
    • Os cenários incluem enviar requisições com diferentes parâmetros, verificar códigos de resposta, conteúdo do corpo (JSON, XML, etc.) e cabeçalhos.
  3. Verificação de dados:

    • Validação de esquemas JSON para verificar a estrutura e tipos de dados na resposta.
    • Comparar valores reais na resposta com os esperados.
  4. Gerenciamento de dados:

    • Utilizar dados de teste armazenados em arquivos (JSON, CSV) ou bancos de dados.
    • Preparar os dados antes de executar o teste e limpar após (se necessário).
  5. Integração com sistemas CI/CD:

    • Configurar a execução automatizada de testes de API a cada alteração de código ou periodicamente (por exemplo, toda noite).
    • Utilizar Jenkins, GitLab CI, GitHub Actions, etc.
  6. Relatórios:

    • Gerar relatórios detalhados sobre os resultados dos testes (por exemplo, Allure Framework).

Exemplo de uso do Rest-Assured:

import io.restassured.RestAssured;
import org.junit.jupiter.api.Test;

import static io.restassured.RestAssured.given;
import static org.hamcrest.Matchers.equalTo;

public class ApiTests {

    @Test
    public void testGetUserById() {
        // URL base da API
        RestAssured.baseURI = "https://reqres.in/api";

        // Envio de requisição GET
        given()
                .when()
                .get("/users/2")
                .then()
                .statusCode(200)  // Verificação do código de resposta
                .body("data.id", equalTo(2))  // Verificação do valor no corpo da resposta
                .body("data.first_name", equalTo("Janet"));
    }
}

Exemplo de uso do Requests (Python):

import requests

def test_get_user_by_id():
    url = "https://reqres.in/api/users/2"
    response = requests.get(url)

    assert response.status_code == 200  # Verificação do código de resposta
    data = response.json()
    assert data['data']['id'] == 2  # Verificação do valor no corpo da resposta
    assert data['data']['first_name'] == 'Janet'