Проект от подписчика! Напоминаю, что я выкачу любую статью или проект от вас, не стесняйтесь писать. Презентация? Выступили на митапе? Хотите поделиться интересной статьёй — добро пожаловать!
Всем привет, меня зовут Виталий. Я иженер по автоматизации тестирования и по совместительству нагрузочный инженер. Проект такого масштаба никогда не планировал делать, но обо всем по порядку...
Все началось с того, что когда я пришел на проект - надо было поднимать нагрузку с абсолютного нуля. Поскольку у нас использовался JS стек(playwright) то было принято решение взять k6. Конечно, это позволило нам быстро стартануть, но чем дальше в лес, тем сложнее было поддерживать решение.
Начнем с того, что у k6 есть ограничение на VUS(virtual users) ~50k. И это стартовая точка костылей. Затем нам понадобился sidecar — helper сервер, чтобы производить определенные манипуляции, затем еще один за другим велосипедом. И в какой-то момент я решил, что управлять сложностью стало проблематично и решил, что хочу решить эти проблемы, но плавно.
Так появилась первая версия perfscale. Простой генератор нагрузки, который умеет еще и запускать k6, чтобы переход был максимально гладким.
Затем я начал думать над тем, что меняется от проекта к проекта и вывел закономерность - надо делить конфигурацию (configuration/config) от самого теста. Затем надо было добавить простой UI для отображения тестов и конфигураций, затем сделать интеграцию с OIDC и поместить внутрь контура. И вот так, постепенно, шаг за шагом, я пришел уже к полноценному продукту - https://perfscale.ru/ , который закрывает все типы тестов. А для большего комфорта я движок опенсорснул - 🧑💻 https://github.com/Perfscale/perfscale. Считаю, что это правильный шаг.
Единственное, что нет в OSS - fix protocol (прим. 📊fix protocol - финансовый протокол для передачи финансовых данных), ну и самих фич: OIDC, multi tenant, AI inference ,integrations (git, prometheus, allure testops, slack, webhooks, etc.) вобщем все то, что накладывается поверх самого движка.
Из последних вещей, которые я сделал в perfscale OSS (на момент написания) - это gRPC, child_process(sidecar) а впереди еще и поддержка других клиентов: databases, webrtc, graphql, и даже собственный marketplace для того,чтобы не городить ворох велосипедов. А еще я веду sponsr / habr - где пишу о еженедельных новостях, связанных с perfscale.
Ну а если я лично вам приглянулся , то еще и веду свой TG канал - ✈️ Haradkou SDET, где пишу обо всяком, связанным с автоматизацией тестирования
В этом посте были ссылки, но мы их удалили по правилам Сетки