DĂ©marrage Rapide
Quâest-ce que Bencher?
Bencher est une suite dâoutils de benchmarking continu. Avez-vous dĂ©jĂ eu une rĂ©gression de performance qui a impactĂ© vos utilisateurs ? Bencher aurait pu empĂȘcher cela de se produire. Bencher vous permet de dĂ©tecter et de prĂ©venir les rĂ©gressions de performance avant quâelles nâarrivent en production.
- Exécuter: Exécutez vos benchmarks localement ou en CI en utilisant vos outils de benchmarking préférés. La CLI
bencher
enveloppe simplement votre harnais de benchmarking existant et stocke ses rĂ©sultats. - Suivre: Suivez les rĂ©sultats de vos benchmarks au fil du temps. Surveillez, interrogez et graphiquez les rĂ©sultats Ă lâaide de la console web Bencher en fonction de la branche source, du banc dâessai et de la mesure.
- DĂ©tecter: DĂ©tectez les rĂ©gressions de performances en CI. Bencher utilise des analyses de pointe et personnalisables pour dĂ©tecter les rĂ©gressions de performances avant quâelles nâarrivent en production.
Pour les mĂȘmes raisons que les tests unitaires sont exĂ©cutĂ©s en CI pour prĂ©venir les rĂ©gressions de fonctionnalitĂ©s, les benchmarks devraient ĂȘtre exĂ©cutĂ©s en CI avec Bencher pour prĂ©venir les rĂ©gressions de performance. Les bugs de performance sont des bugs !
Installer le CLI bencher
Linux, Mac, & Unix
Pour Linux, Mac, et autres systÚmes de type Unix, exécutez ce qui suit dans votre terminal :
Windows
Pour les systÚmes Windows, exécutez ce qui suit dans un terminal PowerShell :
đ° Si vous recevez une erreur qui dit
running scripts is disabled on this system
:
- Ouvrez
Powershell
en utilisantExécuter en tant qu'administrateur
- Exécutez:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
- Tapez:
Y
- Réexécutez ce script
Pour des options dâinstallation supplĂ©mentaires, consultez comment installer le CLI bencher
.
Maintenant, testons si nous avons installé le CLI bencher
.
Exécutez : bencher --version
Vous devriez voir :
Créez un Compte Bencher Cloud
Bencher est open source et auto-hĂ©bergĂ©. Si vous ĂȘtes intĂ©ressĂ© par lâauto-hĂ©bergement, consultez le tutoriel Docker Bencher. Pour ce tutoriel cependant, nous allons utiliser Bencher Cloud.
Inscrivez-vous Ă Bencher Cloud
Une fois que vous avez crĂ©Ă© un compte, vous devrez confirmer votre adresse Ă©lectronique. VĂ©rifiez dans vos emails pour un lien de confirmation. AprĂšs cela, vous devriez ĂȘtre connectĂ© Ă Bencher Cloud.
Créer un jeton API
Pour utiliser lâAPI Bencher, vous devrez crĂ©er un jeton API.
Allez Ă la console Bencher.
Passez votre souris sur votre nom dans le coin supérieur droit.
Un menu déroulant devrait apparaßtre. Sélectionnez Tokens
.
Une fois sur la page des jetons API, cliquez sur le bouton â Ajouter
.
Ajouter un jeton API
Une fois que vous avez crĂ©Ă© votre nouveau jeton API, vous devrez le copier dans votre presse-papiers. Dans le terminal dans lequel vous prĂ©voyez de travailler, exportez le jeton API comme une variable dâenvironnement.
Sur Linux, Mac et autres systĂšmes de type Unix, lancez : export BENCHER_API_TOKEN=YOUR_TOKEN
Sur Windows, lancez : $env:BENCHER_API_TOKEN = "YOUR_TOKEN"
Si vous exécutez ensuite echo $BENCHER_API_TOKEN
ou Write-Output $env:BENCHER_API_TOKEN
respectivement.
Vous devriez voir :
đ° Note : Si vous passez Ă un autre terminal, vous devrez exporter Ă nouveau le jeton API.
Créez un Projet
Maintenant que nous avons un compte dâutilisateur et un jeton API, nous pouvons crĂ©er un Projet. Dâabord, nous devons savoir Ă quelle organisation notre nouveau projet appartiendra.
Exécutez: bencher org list
Vous devriez voir quelque chose comme:
Votre sortie devrait ĂȘtre lĂ©gĂšrement diffĂ©rente de celle-ci:
- Le
uuid
est pseudorandom - Le
name
etslug
seront basĂ©s sur votre nom dâutilisateur - Les horodatages
created
etmodified
seront ceux de votre inscription récente
Nous pouvons maintenant crĂ©er un nouveau Projet Ă lâintĂ©rieur de votre Organisation.
Substituez le slug
de votre Organisation Ă lâargument organization
(ie YOUR_ORG_SLUG
) dans la commande ci-dessous.
Exécuter: bencher project create YOUR_ORG_SLUG --name "Save Walter White" --url http://www.savewalterwhite.com
Vous devriez voir quelque chose comme:
Encore une fois, votre sortie devrait ĂȘtre lĂ©gĂšrement diffĂ©rente que celle-ci.
Il est juste important que cette commande fonctionne.
Prenez note du champ slug
du Projet (ie save-walter-white-1234abcd
).
Exécutez un Rapport
Nous sommes enfin prĂȘts Ă collecter quelques mesures de benchmark! Pour des raisons de simplicitĂ©, nous utiliserons des donnĂ©es fictives dans ce tutoriel.
Exécutez: bencher mock
Vous devriez voir quelque chose comme:
Votre sortie devrait ĂȘtre lĂ©gĂšrement diffĂ©rente de celle-ci, car les donnĂ©es sont pseudorandom. Il est juste important que cette commande fonctionne.
Maintenant, exécutons un rapport en utilisant des données fictives de mesures de benchmark.
Substituez votre slug
de Projet Ă lâargument --project
(ie YOUR_PROJECT_SLUG
) dans la commande ci-dessous.
Exécutez: bencher run --project YOUR_PROJECT_SLUG "bencher mock"
Vous devriez voir quelque chose comme:
Vous pouvez maintenant consulter les résultats de chacun des benchmarks dans le navigateur.
Cliquez ou copiez et collez les liens de View results
.
Il ne devrait y avoir quâun seul point de donnĂ©es pour chaque benchmark, alors ajoutons dâautres donnĂ©es!
Dâabord, mettons notre slug de Projet en tant que variable dâenvironnement, de sorte que nous nâavons pas Ă le fournir avec le --project
à chaque exécution.
Exécutez: export BENCHER_PROJECT=save-walter-white-1234abcd
Si vous exécutez ensuite: echo $BENCHER_PROJECT
Vous devriez voir:
RĂ©-exĂ©cutons la mĂȘme commande encore sans --project
pour générer plus de données.
Exécutez: bencher run "bencher mock"
Maintenant, générions plus de données, mais cette fois nous transmettrons nos résultats dans bencher run
.
Exécutez: bencher mock | bencher run
Parfois, vous pouvez vouloir sauvegarder vos résultats dans un fichier et que bencher run
les récupÚre.
Exécutez: bencher run --file results.json "bencher mock > results.json"
De mĂȘme, vous pouvez avoir un processus sĂ©parĂ© qui exĂ©cute vos benchmarks et sauvegardez vos rĂ©sultats dans un fichier. Ensuite bencher run
viendra simplement les récupérer.
Exécutez: bencher mock > results.json && bencher run --file results.json
Enfin, mettons en place beaucoup de donnĂ©es en utilisant lâargument --iter
de bencher run
.
Exécutez: bencher run --iter 16 "bencher mock"
đ° Astuce: Consultez les doc CLI sous-commande
bencher run
pour un aperçu complet de tout ce quebencher run
peut faire!
Générer une Alerte
Maintenant que nous avons des donnĂ©es historiques pour nos benchmarks, gĂ©nĂ©rons une Alerte! Les alertes sont gĂ©nĂ©rĂ©es lorsquâun rĂ©sultat de benchmark est dĂ©terminĂ© comme une rĂ©gression de performance. Alors simulons une rĂ©gression de performance!
Exécutez: bencher run "bencher mock --pow 8"
Il devrait y avoir une nouvelle section à la fin de la sortie appelée View alerts
:
Vous pouvez maintenant voir les Alertes pour chaque benchmark dans le navigateur.
Cliquez ou copiez et collez les liens de View alerts
.
đ° Astuce: Consultez les doc Seuil & Alertes pour un aperçu complet de comment sont dĂ©tectĂ©es les rĂ©gressions de performances!
đ° FĂ©licitations! Vous avez attrapĂ© votre premiĂšre rĂ©gression de performance! đ