Load Injector - A Performance Testing Tool for Network-Based Trading APIs
We have developed a state-of-the-art Load Injector tool that requires just two servers to:
- verify how an Exchange Platform would operate if 300,000 transactions per second occurred from thousands of different participants
- measure response times with microsecond precision
About Load Injector
Load Injector is a powerful load generator built to stress test scalable high-load trading infrastructures.
Load Injector supports FIX (all versions), ITCH, LSE Native, SOLA SAIL & HSVF, HTTP, SOAP, and various binary trading-system protocols. The tool's architecture is flexible and allows adding other protocols. Load Injector is an open-cycle load generator capable of supporting both model and measurement approaches of performance testing.
- Simulates multiple client connections with a specified load shape for each connection or a group of connections
- Generates up to 75K messages/second from a single CPU core
- Measures latencies in microseconds
- Produces graphic performance test reports
Due to its simple structure, Load Injector relies on a set of raw data files that contain messages to be sent.
Load Injector does not need to use CSV or other data formats to store the messages.
It is easy to attune Load Injector to your system by entering client-specific data (timestamps, unique client order identifiers, checksums and other related fields) into its fields.
The Load Injector is efficient and uses a centralized reversed data processing loop.
Any modifications in the processing of outbound or inbound messages, required for successful data replay, have to be implemented inside the Load Injector source code instead of the test scripts.
Characteristics of Load Injector
- Capacity & Precision
- Throughput up to 75,000 msg per core per second. Total capacity hundreds of thousands of messages per second. Microsecond-range precision.
- Testing Type
- Active Load and Non-Functional Testing
- Target SUT
- Trading Platforms, Market Data Delivery and Post-Trade Systems and their combinations
- SUT Interface
- Back-end (typically connected to message gateways / APIs; data streams generation: mcast/ucast); GUI Testing Capabilities not supported
- SUT Interaction Method
- Inputs and outputs are generated based on the configured load shapes, parameters and templates. Captured messages can be viewed and analyzed post-factum using the DB queries (Shsha) or/and performance calculator tool (also developed by Exactpro)
- Extant plug-ins for Industry-standard (FIX and dialects, FAST, ITCH, etc.) and Proprietary (MIT, SAIL, HSVF, RTF, RV, Quant House, etc.) protocols. New bespoke plug-ins for additional protocols developed by request
- Test Scripts
- Capable to stress the system with high rate of transactions, including microbursts. Used for Throughput, Bandwidth, Latency tests. Can be used for support of fault tolerance (Failover) tests
- Test Management, Execution and Reporting
- Simulation of multiple client connections with specified load shape for each connection or group of connections (configure number of connections, messages templates, Load Shape for each connection or group of connections, messages distribution for each connection or group of connections), throughput up to 80000 msg per core per second. Simulation of market data streams with required SLAs.
- Platform requirements
- Linux on 64-bit platform
- Primary Competitor
- VeriFix TestPilot, HP Load Runner, IBM Rational Performance Tester, JMeter, Yandex.Tank