Load Simulator #
Pragma’s Load Simulator enables game teams to author scenarios that simulate large numbers of player clients. This can be used for a variety of cases, including blended load testing, isolated stress testing, matchmaking simulation and tuning, and more.
The load simulator is bundled into the engine. This tool can be utilized to develop end-to-end tests locally on a dev machine, then scaled out to a production-like shard to execute large scale tests that simulate hundreds of thousands of concurrent users.
Key Concepts #
Player Client #
A player client represents an individual player account. The runner will initialize the configured number of player clients at the outset of the run, creating accounts and establishing a social and game session with the backend. These simulated player clients can make rpc calls, wait for notifications, and cache local state. They serve as the primary tool for defining your scenario.
Load Simulator Runner #
The Load Simulator Runner is responsible for interpreting the configuration of the load test run, initializing player clients, and driving the overall test scenario by executing phases, steps, and step groups. The load test runner represents the heart of the load test suite that brings all the pieces together.
Phases #
Phases represent a collection of steps to be executed for a specified number of iterations or length of time. The Loadtest Runner executes phases based upon their configuration, ensuring that player clients execute a phase within the specified parameters. Players move through phases independently, meaning that one player may be executing a setup phase while another is already executing a teardown phase.
Step #
A Step is a set of test code executed within a phase. Steps request a configurable number of player clients per execution and send rpcs and process notifications on behalf of the supplied clients.
Step Groups #
A Step Group is used to facilitate situations when you need to spread players across different steps at the same time. The runner will distribute players across the steps based on the Step Group configuration. Each player client will be assigned to execute only a single Step within the Step Group. Players are distributed across steps based on a configurable percentage of the total player count. By default, players will be distributed evenly across the Steps within a Step Group if not explicitly configured.
Topic | Description |
---|---|
How-To Guides | Step-by-step instructions on how to load test projects in Pragma Engine. |