Um aplicativo de desktop desenvolvido em Python com ttkbootstrap que funciona como um Postman automatizado para envio de requisições HTTP em lote. Ideal para integração com sistemas que necessitam de processamento de arquivos JSON em massa.
O Postman Automatizado é uma ferramenta que permite o envio automatizado de requisições HTTP a partir de arquivos JSON. O sistema monitora uma pasta de entrada, processa os arquivos encontrados e envia cada um como uma requisição POST para um endpoint configurado.
- 🌙 Interface gráfica moderna com tema escuro
- ⚙️ Configuração flexível de parâmetros de requisição
- 🔄 Monitoramento automático de diretórios
- 🚀 Processamento em lote ou individual
- 🔔 Suporte a gatilhos de início e fim de processamento
- 📊 Logs detalhados de execução
- 🕒 Execução manual ou automática via monitoramento
- 🔒 Suporte a diferentes métodos de autenticação
- Python 3.6 ou superior
- Bibliotecas: ttkbootstrap, requests, watchdog, PIL
- Clone ou baixe este repositório
- Instale as dependências:
pip install -r requirements.txt- Execute o aplicativo:
python postman_automatizado.py- Baixe a versão mais recente do executável
- Execute o arquivo
Postman_Automatizado.exe
Alternativamente, você pode criar seu próprio executável:
- Execute o arquivo
criar_executavel.bat - Aguarde o processo ser concluído
- O executável será criado na pasta
dist
Preencha os campos necessários para suas requisições:
- URL Base: URL principal para onde as requisições serão enviadas
- Username/Password: Credenciais para autenticação básica
- Token/Access Token: Token de autenticação (Bearer)
- Client ID/Secret: Credenciais para OAuth (se necessário)
- Timeout: Tempo limite para cada requisição em segundos
- Fila de processamento: Número de requisições simultâneas (para processamento em lote)
Clique em "Salvar Configurações" para armazenar os dados.
- Caminho Input: Diretório onde os arquivos JSON a serem processados serão colocados
- Caminho Output: Diretório onde os arquivos processados serão movidos
- Tempo de execução: Intervalo em segundos para verificação automática da pasta de entrada
- Ativar Gatilho: Se marcado, o processamento só iniciará quando um arquivo
gatilho_ini.jsonfor detectado - Requisições em Lote: Se marcado, as requisições serão enviadas simultaneamente
- Execução Automática: Se marcado, o sistema verificará a pasta de entrada periodicamente
Clique em "Salvar Caminhos" para armazenar as configurações.
- Iniciar Monitoramento: Começa a monitorar o diretório de entrada para novos arquivos
- Executar Agora: Processa imediatamente todos os arquivos JSON no diretório de entrada
- Parar Monitoramento: Interrompe o monitoramento ativo
- Configure os caminhos de entrada e saída
- Marque a opção "Ativar Gatilho"
- Clique em "Iniciar Monitoramento"
- Coloque os arquivos no diretório de entrada:
gatilho_ini.json(para iniciar o processamento)- Arquivos JSON a serem processados
gatilho_fim.json(será enviado ao final)
- Configure os caminhos de entrada e saída
- Defina o tempo de execução em segundos
- Marque a opção "Execução Automática"
- Clique em "Iniciar Monitoramento"
- O sistema verificará a pasta de entrada no intervalo definido
- Configure os caminhos de entrada e saída
- Defina um valor numérico no campo "Fila de processamento"
- Marque a opção "Requisições em Lote"
- Ao processar, o sistema enviará múltiplas requisições simultaneamente
- Configure os caminhos de entrada e saída
- Coloque os arquivos JSON a serem processados no diretório de entrada
- Clique em "Executar Agora"
{
"tipo": "inicio",
"timestamp": "2023-01-01T00:00:00",
"mensagem": "Iniciando processamento de lote",
"lote_id": "LOTE001"
}{
"tipo": "fim",
"timestamp": "2023-01-01T00:00:00",
"mensagem": "Finalizando processamento de lote",
"lote_id": "LOTE001",
"total_processado": 10,
"status": "concluido"
}Qualquer arquivo JSON válido pode ser usado como corpo da requisição. Exemplo:
{
"id": "REQ001",
"data": "2023-01-01",
"cliente": {
"nome": "Empresa Exemplo",
"codigo": "EMP001",
"documento": "12345678901234"
},
"itens": [
{
"codigo": "PROD001",
"descricao": "Produto de Exemplo 1",
"quantidade": 5,
"valor_unitario": 10.50
},
{
"codigo": "PROD002",
"descricao": "Produto de Exemplo 2",
"quantidade": 2,
"valor_unitario": 25.75
}
],
"valor_total": 104.00,
"observacoes": "Esta é uma requisição de exemplo."
}A aba de Fila exibe os arquivos que estão aguardando processamento:
- Lista de Arquivos: Mostra todos os arquivos na fila para processamento
- Status: Indica se o arquivo está aguardando ou em processamento
- Controles: Permite adicionar ou remover arquivos da fila manualmente
- Priorização: Os arquivos são processados na ordem em que aparecem na fila
- Monitoramento em Tempo Real: A fila é atualizada automaticamente conforme os arquivos são processados
Quando o processamento em lote está ativado, múltiplos arquivos da fila são processados simultaneamente de acordo com o número configurado na "Fila de processamento".
A aba de Logs exibe informações detalhadas sobre o processamento:
- Status de Requisições: Sucesso ou falha de cada requisição enviada
- Códigos HTTP: Códigos de status retornados pela API (200, 400, 500, etc.)
- Tempos de Execução: Tempo total de processamento de cada arquivo
- Taxa de Transferência: Velocidade de envio dos dados (KB/s)
- Tempos de Conexão: Tempo para estabelecer conexão com o servidor
- TTFB (Time To First Byte): Tempo até o recebimento do primeiro byte de resposta
- Erros Detalhados: Mensagens específicas de erros que possam ocorrer
- Movimentação de Arquivos: Confirmação de arquivos processados e movidos
- Timestamps: Registros de data e hora de início e fim de processamento
- Tentativas de Reenvio: Informações sobre retentativas em caso de falhas
- Erros de Leitura/Escrita: Problemas na leitura dos arquivos JSON ou escrita de logs
- Informações de Autenticação: Sucesso ou falha na autenticação (sem expor credenciais)
Os logs são salvos diariamente em arquivos separados na pasta "logs" para referência futura e análise de problemas.
- Certifique-se de que os diretórios de entrada e saída existam antes de iniciar o monitoramento
- Verifique se a URL base está correta e acessível
- Se estiver usando autenticação, confirme se as credenciais estão corretas
- Para o processamento em lote funcionar corretamente, o valor da "Fila de processamento" deve ser um número inteiro
- Quanto maior o número de requisições simultâneas, maior será o consumo de recursos do sistema
- Recomenda-se ajustar o valor de acordo com a capacidade do seu sistema e da API de destino
- O tempo de execução define o intervalo em segundos entre as verificações da pasta de entrada
- Valores muito baixos podem sobrecarregar o sistema e a API de destino
- Valores recomendados: entre 30 e 300 segundos (0,5 a 5 minutos)
- Os arquivos são processados em ordem alfabética pelo nome
- Após o processamento, os arquivos são movidos para o diretório de saída com um timestamp no nome
- Se ocorrerem erros nas requisições, verifique os logs para mais detalhes
- Para interromper o monitoramento, clique em "Parar Monitoramento"
Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para detalhes.
Se encontrar problemas ou tiver sugestões, por favor, abra uma issue no repositório do GitHub.