프로젝트 소개

Locust는 HTTP 및 기타 프로토콜을 위해 설계된 오픈 소스 성능 및 부하 테스트 도구입니다. 이 도구의 핵심 강점은 개발자가 GUI나 도메인 전용 언어 대신 일반 Python 코드를 사용하여 테스트 시나리오를 정의할 수 있다는 점입니다. 테스트는 명령줄에서 실행하거나, 처리량, 응답 시간, 오류와 같은 실시간 지표를 표시하는 내장 웹 기반 UI를 통해 실행할 수 있으며, 이 데이터는 나중에 분석하기 위해 내보낼 수도 있습니다. Locust의 각 사용자는 greenlet(경량 코루틴) 내부에서 실행되므로, 개발자는 콜백 없이 루프, 조건문, 계산이 포함된 블로킹 스타일의 Python 코드를 작성할 수 있습니다. 덕분에 테스트를 디버깅, 버전 관리하고 CI/CD 파이프라인에 통합하기가 쉽습니다. Locust는 여러 머신에 걸쳐 수평적으로 확장 가능하며, 이벤트 기반 동시성을 위해 gevent를 사용하여 프로세스당 수천 명의 동시 사용자를 지원합니다. 초당 요청 수라는 절대적인 성능 면에서 반드시 최고는 아닐 수 있지만, 사용자당 오버헤드가 낮아 고도의 동시 워크로드를 시뮬레이션하는 데 이상적입니다. 이 도구는 확장성이 뛰어납니다. 사용자는 표준 Python 라이브러리를 가져오거나, 비 HTTP 시스템을 위한 커스텀 클라이언트를 작성하거나, TimescaleDB와 같은 데이터베이스에 실시간 보고 기능을 연결하거나, 커스텀 부하 형태(load shapes)를 정의할 수 있습니다. 커뮤니티 플러그인을 통해 기능을 더욱 확장할 수 있습니다. Microsoft는 Locust의 유지 관리에 기여하고 후원하고 있습니다. 또한 Locust 테스트를 대규모로 실행하고 Azure DevOps 및 GitHub와 통합하며 테스트 결과를 인프라 지표와 상관 분석할 수 있는 관리형 서비스인 Azure Load Testing을 제공합니다. Copilot 기반의 VS Code 확장 프로그램을 사용하면 에디터에서 직접 Locust 테스트를 생성하고 실행할 수 있습니다. 학습 및 문제 해결을 위해 문서, StackOverflow 및 Discord를 통한 커뮤니티 지원, 그리고 블로그가 제공됩니다. MIT 라이선스 하에 유지 관리되는 Locust는 원래 Jonatan Heyman이 만들었으며, 현재는 Lars Holmberg가 유지 관리를 주도하고 Andrew Baldwin이 UI 개발을 담당하고 있습니다. 이 프로젝트는 모든 기여자에게 감사를 표하며 Microsoft의 지속적인 지원을 인정합니다.