Skip to main content

Executar testes E2E noturnos no ambiente de staging

Agende o Devin para executar sua suíte de testes de ponta a ponta (E2E) no ambiente de staging todas as noites e abrir chamados para as falhas.
AuthorCognition
CategoryAutomações
FeaturesAPI, Agendamentos, Playbooks
Este guia aborda o gerenciamento de agendamentos por meio da API v3, útil para fluxos de trabalho de automação e infraestrutura como código. Você também pode criar e gerenciar agendamentos diretamente na interface do Devin sem nenhuma configuração de API.
1

Configurar um usuário de serviço para acesso à API

Sessões agendadas criadas via API precisam de um usuário de serviço com as permissões corretas. Você configurará um usuário de serviço uma vez e, em seguida, usará sua Chave de API em todas as chamadas abaixo.
  1. Vá para app.devin.ai > Settings > Service Users e clique em Create Service User
  2. Atribua uma função que inclua a permissão ManageOrgSchedules
  3. Salve a Chave de API exibida após a criação — ela é mostrada apenas uma vez e você a usará como seu token Bearer
Para obter o ID da organização, faça uma chamada ao endpoint List Organizations usando o token do seu usuário de serviço:
curl "https://api.devin.ai/v3/enterprise/organizations" \
  -H "Authorization: Bearer $DEVIN_API_KEY"
Exporte ambos os valores para que os comandos deste guia funcionem exatamente como estão:
export DEVIN_API_KEY="sk-your-service-user-key"
export ORG_ID="your-org-id"
Consulte a documentação de autenticação da API para saber mais sobre usuários de serviço e permissões.
2

Crie um playbook para a execução do teste

Before creating the schedule, escreva um playbook que instrua o Devin exatamente sobre como executar sua suíte E2E e o que fazer com os resultados. Vá para Settings > Playbooks e crie um novo playbook — ou use o Advanced Devin para gerar um a partir de uma descrição do seu fluxo de testes. Aqui está um exemplo de playbook para uma suíte Playwright:Anote o ID do playbook após salvar — você vai precisar dele para a chamada de API. Você pode encontrá-lo na URL ao visualizar o playbook (app.devin.ai/.../playbooks/{playbook_id}).
Instale a integração com Linear para que o Devin possa criar tickets como parte do playbook. Ao criar o agendamento, você também pode definir um canal do Slack (por exemplo, #qa-results) para que sua equipe seja notificada automaticamente. Dê ao Devin acesso somente leitura aos segredos do seu ambiente de staging (URLs de banco de dados, chaves de API (API keys)) via organization secrets se seus testes precisarem deles.
3

Crie o agendamento noturno pela API

Agora use o endpoint POST /v3/organizations/{org_id}/schedules para cadastrar o agendamento. Este exemplo é executado todas as noites às 2h UTC:
curl -X POST "https://api.devin.ai/v3/organizations/$ORG_ID/schedules" \
  -H "Authorization: Bearer $DEVIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Nightly E2E — staging",
    "prompt": "Run the nightly E2E test suite against staging. Follow the playbook exactly.",
    "schedule_type": "recurring",
    "frequency": "0 2 * * *",
    "playbook_id": "your-playbook-id"
  }'
A resposta inclui um schedule_id que você usará para gerenciar este agendamento mais tarde. Salve-o:
export SCHEDULE_ID="a1b2c3d4-e5f6-7890-abcd-ef1234567890"  # da resposta
O campo frequency usa a sintaxe cron padrão. Algumas alternativas úteis:
PadrãoQuando é executado
0 2 * * *Todas as noites às 2h UTC
0 2 * * 1-5Apenas noites de semana (seg–sex)
0 6 * * 1Todas as segundas-feiras às 6h UTC
Por que 2h? Você quer que os testes sejam executados depois que o último deploy do dia tiver estabilizado em staging, mas cedo o suficiente para que as falhas sejam visíveis quando engenheiros e engenheiras começarem a trabalhar. Ajuste para ficar alinhado ao fuso horário e à cadência de deploy da sua equipe.Consulte a documentação do endpoint Create schedule para ver todos os campos disponíveis.
4

Revise a primeira execução e ajuste o prompt

Depois que o agendamento for acionado pela primeira vez, verifique a sessão para garantir que o Devin executou os testes corretamente e que o resultado corresponde ao que você espera.
  1. Abra o painel do Devin e encontre a sessão em Past Sessions — ela estará marcada com o nome do agendamento
  2. A suíte Playwright foi executada? Foram criados tickets no Linear para falhas reais (e não para testes instáveis)?
  3. Verifique o canal do Slack #qa-results para ver a mensagem de resumo
Problemas comuns na primeira execução e como corrigi-los:
  • O Devin não consegue acessar o ambiente de staging: Adicione suas variáveis de ambiente de staging (como STAGING_API_KEY ou DATABASE_URL) como segredos da organização, para que fiquem disponíveis em todas as sessões agendadas
  • Tickets demais causados por testes instáveis: Adicione uma nova tentativa ao seu playbook: “Execute novamente qualquer teste com falha uma vez antes de abrir um ticket. Só abra tickets para testes que falharem duas vezes.”
  • Os testes demoram demais: Reduza o escopo da suíte — por exemplo, “Execute apenas os testes em tests/critical/ e tests/smoke/” — ou aumente o tempo limite da sessão
5

Gerencie agendamentos como código

Depois que sua execução noturna estiver estável, você vai querer gerenciá-la junto com seus outros agendamentos — pausando durante períodos de congelamento de deploy, atualizando o prompt quando sua suíte de testes for alterada ou criando um segundo agendamento para um ambiente diferente.Pausar o agendamento durante um período de congelamento de deploy ou janela de manutenção:
curl -X PATCH "https://api.devin.ai/v3/organizations/$ORG_ID/schedules/$SCHEDULE_ID" \
  -H "Authorization: Bearer $DEVIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enabled": false}'
Reative-o quando o período de congelamento acabar:
curl -X PATCH "https://api.devin.ai/v3/organizations/$ORG_ID/schedules/$SCHEDULE_ID" \
  -H "Authorization: Bearer $DEVIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enabled": true}'
Liste todos os agendamentos para auditar o que está rodando:
curl "https://api.devin.ai/v3/organizations/$ORG_ID/schedules" \
  -H "Authorization: Bearer $DEVIN_API_KEY"
Para equipes que gerenciam vários agendamentos, peça ao Devin para criar uma CLI que sincronize definições de agendamentos a partir de um arquivo de configuração YAML — assim você pode versionar seus agendamentos junto com sua configuração de testes: