Skip to content

Latest commit

 

History

History
223 lines (166 loc) · 4.87 KB

File metadata and controls

223 lines (166 loc) · 4.87 KB

🚀 Guia de Uso - Seilago

Passo 1: Compilar

go build -o seilago main.go

Passo 2: Executar

./seilago -fill

Passo 3: Colar a request

Quando aparecer:

Cole a request do Chrome DevTools (formato fetch(...)) e tecle Ctrl-D:

Opção A - Usar o exemplo pronto:

# Copie e cole todo o conteúdo do arquivo example_request.txt
cat example_request.txt

Opção B - Criar sua própria request:

  1. No Chrome, abra DevTools (F12)
  2. Vá na aba Network
  3. Faça uma request qualquer
  4. Clique direito na request > Copy > Copy as fetch
  5. Cole no editor e adicione [[variavel]] onde quiser valores dinâmicos
  6. Exemplo:
fetch("https://api.exemplo.com/users", {
  "headers": {
    "content-type": "application/json"
  },
  "body": "{\"username\":\"[[usuario]]\",\"password\":\"[[senha]]\"}",
  "method": "POST"
});
  1. Cole no terminal quando o seilago pedir

Passo 4: Pressionar Ctrl-D

Após colar a request, pressione Ctrl-D (Linux/Mac) ou Ctrl-Z + Enter (Windows)

Passo 5: Definir os placeholders

Para cada [[variavel]] encontrada, você verá:

Placeholder: [[nome]]
Digite uma regex para gerar (ex: \d{8}, [a-z]{6}) ou valor literal:
>

Opções de resposta:

Regex (gera valores diferentes a cada request):

  • \d{8} → 8 números (ex: 12345678)
  • [a-z]{10} → 10 letras minúsculas (ex: abcdefghij)
  • [A-Z][a-z]{5,10} → 1 maiúscula + 5 a 10 minúsculas (ex: Abcdef)
  • \w{12} → 12 alfanuméricos (ex: aB3dE5gH9jK1)
  • [a-z]{8}@teste.com → email (ex: abcdefgh@teste.com)

Valor fixo (mesmo valor em todas as requests):

  • joao123 → sempre "joao123"
  • senha@123 → sempre "senha@123"

Exemplo:

Placeholder: [[nome]]
Digite uma regex para gerar (ex: \d{8}, [a-z]{6}) ou valor literal:
> [A-Z][a-z]{5,10}
✓ Exemplo: Mfeokp

Placeholder: [[email]]
Digite uma regex para gerar (ex: \d{8}, [a-z]{6}) ou valor literal:
> [a-z]{8}@example.com
✓ Exemplo: hdjekwpq@example.com

Passo 6: Quantidade de execuções

Quantas vezes executar a request? 10

Digite quantas vezes quer executar (ex: 1, 10, 100, 1000)

Passo 7: Delay entre requests

Delay entre requests em ms (0 = máximo de velocidade): 100
  • 0 = sem delay (máxima velocidade)
  • 100 = 100ms entre cada request (10 req/s)
  • 1000 = 1 segundo entre cada request

Passo 8: Ver os resultados

=== Executando 10 requests ===

[1/10] ✓ 201 - 125ms (89 bytes)
  Response: {"id":1,"name":"Agjeklo","email":"pkdjwmqp@example.com"}
[2/10] ✓ 201 - 98ms (91 bytes)
  Response: {"id":2,"name":"Bmpqrst","email":"zxcvbnma@example.com"}
[3/10] ✗ 400 - 45ms (23 bytes)
  Response: {"error":"invalid email"}
...

=== Resumo ===
Total: 10 | Sucesso: 9 | Falha: 1

Legenda:

  • ✓ = sucesso (status 2xx ou 3xx)
  • ✗ = erro (status 4xx ou 5xx)
  • Tempo em ms
  • Tamanho do body
  • Response só aparece se for < 500 bytes

🎯 Exemplo Completo de Uso

# 1. Executar
./seilago -fill

# 2. Colar (copie o exemplo abaixo):
fetch("https://brunji.com.br/api/users", {
  "headers": {
    "content-type": "application/json"
  },
  "body": "{\"name\":\"[[nome]]\",\"email\":\"[[email]]\"}",
  "method": "POST"
});

# 3. Ctrl-D

# 4. Responder:
# [[nome]]: [A-Z][a-z]{6,10}
# [[email]]: [a-z]{8}@teste.com
# Quantidade: 5
# Delay: 500

# 5. Ver os resultados executando!

📋 Casos de Uso

1. Testar criação de usuários

"body": "{\"username\":\"[[user]]\",\"email\":\"[[email]]\",\"age\":[[age]]}"

// Respostas:
// [[user]]: [a-z]{6,12}
// [[email]]: [a-z]{8}@gmail.com
// [[age]]: [1-9][0-9]

2. Testar API com IDs diferentes

fetch("https://api.com/products/[[id]]", {"method": "GET"})

// Respostas:
// [[id]]: \d{1,5}

3. Testar com tokens aleatórios

"headers": {
  "authorization": "Bearer [[token]]"
}

// Respostas:
// [[token]]: [A-Za-z0-9]{32}

4. Load test com dados variados

Quantidade: 1000
Delay: 0

❓ Dúvidas Comuns

P: O que acontece se eu não usar [[variavel]]? R: A request será executada normalmente, sem substituição.

P: Posso usar a mesma variável em vários lugares? R: Sim! [[email]] pode aparecer no body, header, URL, etc. Será substituído em todos os lugares.

P: Cada request gera valores diferentes? R: Sim! Se usar regex, cada request gera novos valores aleatórios.

P: Como fazer um valor numérico? R: Use \d{n} onde n é a quantidade de dígitos. Ex: \d{8} = 8 dígitos

P: Como testar o mais rápido possível? R: Use delay = 0


🔥 Dicas

  1. Teste primeiro com 1 request para ver se está funcionando
  2. Use delay > 0 se não quiser sobrecarregar o servidor
  3. Valores fixos são úteis para headers como API keys
  4. Valores regex são úteis para testar validações
  5. Response só aparece se < 500 bytes, para não poluir o terminal