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:
-
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.
-
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.
-
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.
-
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).
-
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.
-
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'