Getting Started
This first chapter of the Goose Book provides a high-level overview of writing and running Goose load tests. If you're new to Goose, this is the place to start.
The Importance Of Load Testing
Load testing can help prevent website outages, stress test code changes, and identify bottlenecks. It can also quickly perform functional regression testing. The ability to run the same test repeatedly gives critical insight into the impact of changes to the code and/or systems.
When to Use Goose
Goose is particularly well-suited for:
- Complex User Workflows: Testing multi-step processes like checkout flows, user registration, or content management workflows
- API Load Testing: Validating REST APIs, GraphQL endpoints, or microservice interactions under load
- Performance Regression Testing: Integrating into CI/CD pipelines to catch performance regressions before deployment
- Capacity Planning: Understanding how your infrastructure scales and where bottlenecks occur
- Coordinated Omission Detection: Identifying when server slowdowns affect more users than simple metrics suggest
Goose vs Other Load Testing Tools
Unlike tools that focus purely on HTTP request volume, Goose excels at:
- Stateful Testing: Maintaining sessions, cookies, and authentication across requests
- Realistic Load Patterns: Simulating actual user behavior rather than just hammering endpoints
- Developer-Friendly: Written in Rust with type safety and excellent error handling
- Detailed Analysis: Advanced metrics that reveal hidden performance issues
- Flexibility: Custom logic, data-driven tests, and complex scenarios
Prerequisites
Before diving into Goose, you should have:
- Basic Rust Knowledge: Familiarity with Rust syntax, async/await, and error handling
- HTTP Understanding: Knowledge of HTTP methods, status codes, and web application architecture
- Testing Mindset: Understanding of what you want to test and what constitutes success
Don't worry if you're new to load testing - Goose's approach will guide you toward writing realistic and valuable tests.