Início Rápido
O que é o Bencher?
Bencher é um conjunto de ferramentas de benchmarking contínuas. Já teve algum impacto de regressão de desempenho nos seus usuários? Bencher poderia ter prevenido isso. Bencher permite que você detecte e previna regressões de desempenho antes que cheguem à produção.
- Execute: Execute seus benchmarks localmente ou no CI usando suas ferramentas de benchmarking favoritas. O CLI
bencher
simplesmente envolve seu harness de benchmark existente e armazena seus resultados. - Rastreie: Acompanhe os resultados de seus benchmarks ao longo do tempo. Monitore, consulte e faça gráficos dos resultados usando o console web do Bencher baseado na branch de origem, testbed e medida.
- Capture: Capture regressões de desempenho no CI. Bencher usa análises personalizáveis e de última geração para detectar regressões de desempenho antes que elas cheguem à produção.
Pelos mesmos motivos que os testes de unidade são executados no CI para prevenir regressões de funcionalidades, benchmarks deveriam ser executados no CI com o Bencher para prevenir regressões de desempenho. Bugs de desempenho são bugs!
Instale o CLI bencher
Linux, Mac, & Unix
Para Linux, Mac e outros sistemas semelhantes a Unix, execute o seguinte no seu terminal:
Windows
Para sistemas Windows, execute o seguinte em um terminal PowerShell:
🐰 Se você recebe um erro que diz
a execução de scripts está desativada neste sistema
:
Abrir Powershell
comExecutar como Administrador
- Execute:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
- Entre:
Y
- Rode o script novamente
Para opções adicionais de instalação, veja como instalar o CLI bencher
.
Agora, vamos testar se temos o CLI bencher
instalado.
Execute: bencher --version
Você deve ver:
Crie uma conta no Bencher Cloud
O Bencher é open source e pode ser hospedado por você mesmo. Se você estiver interessado em auto-hospedagem, confira o tutorial do Bencher Docker. Para este tutorial, no entanto, vamos usar o Bencher Cloud.
Inscreva-se para o Bencher Cloud
Depois de criar uma conta, você precisará confirmar seu endereço de e-mail. Verifique seu e-mail para encontrar um link de confirmação. Depois disso, você deve estar logado no Bencher Cloud.
Crie um Token de API
Para usar a API do Bencher, você precisará criar um token de API.
Navegue para o Console do Bencher.
Passe o cursor sobre o seu nome no canto superior direito.
Um menu suspenso deve aparecer. Selecione Tokens
.
Uma vez na página Tokens de API, clique no botão ➕ Add
.
Adicionar um Token de API
Depois de criar o seu novo token de API, você precisará copiá-lo para sua área de transferência. No terminal que você planeja trabalhar, exporte o token de API como uma variável de ambiente.
Em sistemas Linux, Mac e outros sistemas semelhantes a Unix, execute: export BENCHER_API_TOKEN=SEU_TOKEN
No Windows, execute: $env:BENCHER_API_TOKEN = "SEU_TOKEN"
Depois execute echo $BENCHER_API_TOKEN
ou Write-Output $env:BENCHER_API_TOKEN
respectivamente.
Você deverá ver:
🐰 Nota: Se você mudar para um terminal diferente, precisará exportar o token de API novamente.
Crie um Projeto
Agora que temos uma conta de usuário e um token da API, podemos criar um Projeto. Primeiro, precisamos saber a qual organização nosso novo projeto pertencerá.
Execute: bencher org list
You should see something like:
Sua saída deve ser ligeiramente diferente da acima:
- O
uuid
é pseudoaleatório - O
name
eslug
serão baseados em seu nome de usuário - Os timestamps
created
emodified
serão de quando você acabou de se inscrever
Agora podemos criar um novo Projeto dentro de sua Organização.
Substitua seu slug
da Organização pelo argumento organization
(ou seja, YOUR_ORG_SLUG
) no comando abaixo.
Execute: bencher project create YOUR_ORG_SLUG --name "Save Walter White" --url http://www.savewalterwhite.com
Você deve ver algo como:
Novamente, sua saída deve ser ligeiramente diferente da acima.
É apenas importante que esse comando funcione.
Anote o campo slug
do Projeto (ou seja, save-walter-white-1234abcd
).
Execute um Relatório
Finalmente estamos prontos para coletar algumas métricas de benchmark! Para simplificar, vamos usar dados fictícios neste tutorial.
Execute: bencher mock
Você deverá ver algo como:
Sua saída deve ser ligeiramente diferente da acima, pois os dados são pseudoaleatórios. É apenas importante que esse comando funcione.
Agora vamos executar um relatório usando dados fictícios de métricas de benchmark.
Substitua seu slug
do Projeto pelo argumento --project
(ou seja, YOUR_PROJECT_SLUG
) no comando abaixo.
Execute: bencher run --project YOUR_PROJECT_SLUG "bencher mock"
Você deverá ver algo como:
Agora você pode ver os resultados de cada um dos benchmarks no navegador.
Clique ou copie e cole os links de View results
.
Deve haver apenas um único ponto de dados para cada benchmark, então vamos adicionar mais dados!
Primeiro, vamos definir nosso slug do Projeto como uma variável de ambiente, para que não precisemos fornecê-lo com o --project
em cada execução.
Execute: export BENCHER_PROJECT=save-walter-white-1234abcd
Se você executar: echo $BENCHER_PROJECT
Você deve ver:
Vamos executar o mesmo comando novamente sem --project
para gerar mais dados.
Execute: bencher run "bencher mock"
Agora, vamos gerar mais dados, mas desta vez vamos canalizar nossos resultados para bencher run
.
Execute: bencher mock | bencher run
Às vezes, você pode querer salvar seus resultados em um arquivo e ter o bencher run
buscá-los.
Execute: bencher run --file results.json "bencher mock > results.json"
Da mesma forma, você pode ter um processo separado para executar seus benchmarks e salvar seus resultados em um arquivo. Então bencher run
apenas os pegará.
Execute: bencher mock > results.json && bencher run --file results.json
Finalmente, vamos preencher muitos dados usando o argumento --iter
de bencher run
.
Execute: bencher run --iter 16 "bencher mock"
🐰 Dica: Confira a documentação do subcomando
bencher run
CLI para uma visão completa de tudo quebencher run
pode fazer!
Gerar um Alerta
Agora que temos alguns dados históricos para nossos benchmarks, vamos gerar um Alerta! Os alertas são gerados quando o resultado de um benchmark é considerado uma regressão de desempenho. Então, vamos simular uma regressão de desempenho!
Execute: bencher run "bencher mock --pow 8"
Deve haver uma nova seção no final da saída chamada View alerts
:
Agora você pode ver os alertas para cada benchmark no navegador.
Clique ou copie e cole os links de View alerts
.
🐰 Dica: Confira a documentação sobre Limiares & Alertas para uma visão completa de como regressões de desempenho são detectadas!
🐰 Parabéns! Você capturou sua primeira regressão de desempenho! 🎉