Convertendo Testes de API do Talend para Coleções do Postman
Você já precisou migrar testes de API do Talend para o Postman e enfrentou desafios com a estrutura dos dados? Compartilho um script Python simples que pode facilitar essa tarefa!
O que é Talend API Tester e Postman?
- Talend API Tester: Uma ferramenta usada para testar APIs, permitindo especificar requisições HTTP com parâmetros, cabeçalhos e corpo da requisição.
- Postman: Uma plataforma de colaboração para desenvolvimento de APIs, permitindo testar, documentar e compartilhar APIs com facilidade.
Problema e Solução
Ao exportar testes de API do Talend para JSON, a estrutura dos dados pode variar, resultando em erros ao tentar importar para o Postman. Um dos problemas comuns é lidar com requisições que não possuem parâmetros de query definidos.
Solução: Script Python de Conversão
Desenvolvi um script Python que converte o JSON exportado pelo Talend API Tester em um formato compatível com o Postman. Aqui estão os passos principais:
- Exportando da API do Talend:
- No Talend API Tester, exporte cada projeto individualmente como JSON.
- Dentro do projeto, navegue até a seção de exportação e escolha o formato JSON.
- Leitura do JSON: O script lê o arquivo JSON exportado do Talend API Tester usando a biblioteca
json
. - Conversão para Postman: Itera sobre as requisições no JSON, extrai informações como método HTTP, URL, parâmetros de query, cabeçalhos e corpo da requisição.
- Tratamento de Erros: Implementa tratamento para casos onde requisições podem não ter parâmetros de query definidos, prevenindo erros como
KeyError
. - Saída para JSON do Postman: Gera um novo arquivo JSON no formato do Postman contendo todas as requisições convertidas.
Como Usar
- Preparação:
- Exporte seus testes de API do Talend para JSON, projeto por projeto.
- Certifique-se de ter o Python instalado em seu ambiente de desenvolvimento.
- Edite o Script:
- Baixe o script Python fornecido e edite-o para definir os caminhos dos arquivos de entrada (
export_talend_project.json
) e de saída (import_postman_collection.json
).
- Baixe o script Python fornecido e edite-o para definir os caminhos dos arquivos de entrada (
- Execução do Script:
- Execute o script usando
python talend_to_postman.py
. - O script irá converter os dados e salvar a coleção do Postman no arquivo especificado.
- Execute o script usando
- Importação no Postman:
- Abra o Postman e importe o arquivo JSON gerado (
).import_postman_collection
.json - Agora você tem todas as requisições prontas para testar e documentar diretamente no Postman!
- Abra o Postman e importe o arquivo JSON gerado (
Script
import json
def api_tester_to_postman(api_tester_json):
postman_collection = {
"info": {
"name": api_tester_json['entities'][0]['entity']['name'],
"description": api_tester_json['entities'][0]['entity']['description'],
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": []
}
for request in api_tester_json['entities'][0]['children']:
req_entity = request['entity']
method = req_entity['method']['name']
url = f"{req_entity['uri']['scheme']['name']}://{req_entity['uri']['host']}{req_entity['uri']['path']}"
# Check if 'query' key exists in 'uri' dictionary
if 'query' in req_entity['uri']:
query_params = req_entity['uri']['query'].get('items', [])
else:
query_params = []
headers = req_entity['headers']
postman_request = {
"name": req_entity['name'],
"request": {
"method": method,
"header": [{"key": h['name'], "value": h['value'], "disabled": not h.get('enabled', True)} for h in headers],
"url": {
"raw": url,
"protocol": req_entity['uri']['scheme']['name'],
"host": req_entity['uri']['host'].split('.'),
"path": req_entity['uri']['path'].split('/')[1:], # Remove the leading slash
"query": [{"key": p['name'], "value": p['value'], "disabled": not p.get('enabled', True)} for p in query_params]
},
"body": {
"mode": "raw",
"raw": req_entity['body'].get('textBody', '')
}
}
}
postman_collection['item'].append(postman_request)
return postman_collection
# Carregar o JSON exportado do API Tester
with open('export_talend_project.json', 'r') as file:
api_tester_json = json.load(file)
# Converter para o formato do Postman
postman_collection = api_tester_to_postman(api_tester_json)
# Salvar a coleção do Postman em um arquivo
with open('import_postman_collection.json', 'w') as file:
json.dump(postman_collection, file, indent=4)
print("Conversão concluída. O arquivo gruposh_postman_collection.json foi criado.")
Conclusão
Com este script, você pode automatizar a conversão de seus testes de API do Talend para o Postman, economizando tempo e evitando erros comuns de importação. Espero que isso facilite sua transição e melhore sua experiência de desenvolvimento de APIs!
Experimente e compartilhe suas experiências nos comentários.