Быстрый старт с Bencher на собственном хостинге с Docker


Что такое Bencher?

Bencher - это набор инструментов для непрерывного тестирования производительности. Когда-нибудь регрессия производительности влияла на ваших пользователей? Bencher мог бы предотвратить это. Bencher позволяет вам обнаруживать и предотвращать регрессии производительности до того, как они попадут в продакшн.

  • Запустить: Запустите свои тесты производительности локально или в CI, используя ваши любимые инструменты для этого. CLI bencher просто оборачивает ваш существующий аппарат тестирования и сохраняет его результаты.
  • Отслеживать: Отслеживайте результаты ваших тестов производительности со временем. Мониторите, запрашивайте и строите графики результатов с помощью веб-консоли Bencher на основе ветки исходного кода, испытательного стенда и меры.
  • Поймать: Отлавливайте регрессии производительности в CI. Bencher использует инструменты аналитики, работающие по последнему слову техники, чтобы обнаружить регрессии производительности, прежде чем они попадут в продакшн.

По тем же причинам, по которым модульные тесты запускаются в CI, чтобы предотвратить регрессии функций, тесты производительности должны быть запущены в CI с Bencher, чтобы предотвратить регрессии производительности. Ошибки производительности – это тоже ошибки!


Bencher с собственным хостингом

Bencher является открытым исходным кодом и может быть размещён самостоятельно. Если вы заинтересованы в использовании Bencher Cloud, ознакомьтесь с руководством по быстрому старту Bencher Cloud. Это руководство поможет вам настроить использование Bencher с собственным хостингом с помощью Docker.

🐰 Когда вы почувствуете себя комфортно, используя Bencher с собственным хостингом, рассмотрите возможность изучения следующих ресурсов:


Установка Docker

Для запуска серверов Console и API в этом руководстве вам потребуется установить docker. Проверьте, установлен ли у вас docker. Выполните команду:

Terminal window
docker --version

Вы должны увидеть что-то похожее на:

Docker version 20.10.17, build 100c701

Ничего страшного, если номер вашей версии отличается. Главное, чтобы эта команда работала. Если нет, следуйте инструкциям по установке docker.


Установка CLI bencher

Выберите вашу операционную систему и выполните указанную команду для установки CLI bencher. Для получения более подробной информации, смотрите документацию по установке CLI bencher.

Terminal window

Теперь, давайте проверим, что у вас установлен CLI bencher. Выполните:

Terminal window
bencher --version

Вы должны увидеть:

bencher 0.5.0

Запуск bencher up

С установленными docker и CLI bencher, вы теперь можете запустить серверы Консоли и API с помощью подкоманды bencher up CLI. Запустите:

Terminal window
bencher up

Вы должны увидеть что-то похожее на:

Pulling `ghcr.io/bencherdev/bencher-api:latest` image...
Creating `bencher_api` container...
Starting `bencher_api` container...
Pulling `ghcr.io/bencherdev/bencher-console:latest` image...
Creating `bencher_console` container...
Starting `bencher_console` container...
🐰 Bencher Self-Hosted is up and running!
Console Server: http://localhost:3000
API Server: http://localhost:61016
Press Ctrl+C to stop Bencher Self-Hosted.
🐰 Bencher Self-Hosted logs...
Jan 08 16:49:07.727 INFO 🐰 Bencher API Server v0.5.0
...

Снова, это нормально, если ваш вывод отличается. Важно, чтобы эта команда работала.

🐰 Если вы получите ошибку от ghcr.io, говоря: "требуется аутентификация" Попробуйте выполнить: docker logout ghcr.io


Выберите вашу оболочку для тестирования производительности

Если у вас уже есть написанные тесты производительности, выберите язык программирования и оболочку тестирования производительности из списка ниже. В противном случае просто пропустите этот шаг. Для получения более подробной информации смотрите адаптеры оболочки тестирования производительности.

C#
C++
Go
Java
JavaScript
Python
Ruby
Rust
Shell
JSON

Отслеживание ваших бенчмарков

Теперь вы готовы отслеживать результаты ваших бенчмарков! Для этого вы будете использовать подкоманду CLI «bencher run», чтобы запускать ваши бенчмарки и собирать результаты. Запустите:

Terminal window

Возможно, вам потребуется изменить команду бенчмарка, чтобы она соответствовала вашей настройке. Если у вас еще нет бенчмарков, вы можете просто использовать подкоманду «bencher mock» в качестве вашей команды бенчмарка, чтобы сгенерировать фиктивные данные. Если всё работает как ожидается, конец вывода должен выглядеть примерно так:

View results:
- bencher::mock_0 (Latency): https://localhost:3000/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=f7022024-ae16-4782-8f0d-869d65a82930&measures=775999d3-d705-482f-acd8-41947f8e0fbc&start_time=1741390156000&end_time=1743982156000&report=709d3476-51a4-4939-9584-75d9a2c04c54
- bencher::mock_1 (Latency): https://localhost:3000/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=7a823440-216f-482d-a05f-8bf75e865bba&measures=775999d3-d705-482f-acd8-41947f8e0fbc&start_time=1741390156000&end_time=1743982156000&report=709d3476-51a4-4939-9584-75d9a2c04c54
- bencher::mock_2 (Latency): https://localhost:3000/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=8d9695ff-f352-4781-9561-3c69012fd9fe&measures=775999d3-d705-482f-acd8-41947f8e0fbc&start_time=1741390156000&end_time=1743982156000&report=709d3476-51a4-4939-9584-75d9a2c04c54
- bencher::mock_3 (Latency): https://localhost:3000/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=8ef6e256-8084-4afe-a7cf-eaa46384c19d&measures=775999d3-d705-482f-acd8-41947f8e0fbc&start_time=1741390156000&end_time=1743982156000&report=709d3476-51a4-4939-9584-75d9a2c04c54
- bencher::mock_4 (Latency): https://localhost:3000/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=1205e35a-c73b-4ff9-916c-40838a62ae0b&measures=775999d3-d705-482f-acd8-41947f8e0fbc&start_time=1741390156000&end_time=1743982156000&report=709d3476-51a4-4939-9584-75d9a2c04c54
Claim this project: https://localhost:3000/auth/signup?claim=d4b0cd5a-8422-40af-9872-8e18d5d062c4

Теперь вы можете просмотреть результаты для каждого из ваших бенчмарков в браузере. Нажмите или скопируйте и вставьте ссылки из «Просмотреть результаты». Чтобы присвоить проект, нажмите или скопируйте и вставьте ссылку «Присвоить этот проект» в ваш браузер.



🐰 Поздравляем! Вы отследили свои первые результаты бенчмарка с помощью Bencher на собственном хостинге! 🎉


Продолжайте: Как заявить проект ➡

🤖 Этот документ был автоматически создан OpenAI GPT-4. Оно может быть неточным и содержать ошибки. Если вы обнаружите какие-либо ошибки, откройте проблему на GitHub.


Published: Sat, August 12, 2023 at 4:07:00 PM UTC | Last Updated: Sun, April 6, 2025 at 6:30:00 PM UTC