Load Injector

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.

Load Injector

  • 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

Simple Structure

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.

Load Injector

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)
Protocols
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

Read More

Trading Day Logs Replay Limitations and Test Tools Applicability

This paper is an experience report on replaying full trading day production log files for dynamic verification of securities exchange matching engines. Three types of test automation tools developed in-house are described along with their characteristics. The paper analyzes various approaches to reproduce processes and scenarios observed in the systems during their production usage. The applicability and limitations of these approaches are also considered. The authors point out that for most complex distributed real-time trading systems it is extremely difficult to obtain an identical behavior using production logs replay via external gateways. It might be possible to achieve this by implementing additional instrumentation inside the exchange system’s core. The authors assume however that such an intrusion has limited value and should not be prioritized
over other, more appropriate, test design methods for testing such systems.

Pavel Protsenko, Account Management, Exactpro
Anna Khristenok, Head of NFT, Exactpro
Anna-Maria Lukina, QA Team Lead, Exactpro
Andrey Alexeenko, QA Team Lead, Exactpro
Tatiana Pavlyuk, NFT QA Team Lead, Exactpro
Iosif Itkin, CEO, Exactpro

Read more

High Performance Load Generator for Automated Trading Systems Testing

The growing volume of orders generated by HFT (high-frequency trading) systems has posed a challenge of conducting exchange and brokerage systems testing in production-like environments. Specialized testing tools are used to ensure quality of high load trading systems with high availability. The main requirement for such tools is that they should be capable of creating realistic, high loads using limited hardware infrastructure. This article describes a load injection tool developed for testing automated trading systems and an approach that ensures high performance.

Read more