...
FIX Client Simulator features
- Allows establishing Establishing multiple acceptor and/or initiator sessions to on local and/or remote hosts
- Supports Support of unregistered acceptor sessions
- Supports standard FIX application versions 4.0 - FIXLatest and dialects
- Restarting the working session with or without session logs restoration
- Restoring session state and configurations on FCS startup
- Support of Supports all FIX message types (pre-trade, trade, post-trade, market data, etc.)
- Supports a wide range of FIX session settings including Custom Logon message
- Supports custom dictionaries
- Allows creating, recording, editing, and running test scenarios for FIX sessions
- Standard 4.0 - FIXLatest FIX application versions support
- Custom dictionaries support
- Overriding SenderCompID and TargetCompID for Allows overriding SenderCompID and TargetCompID for the established session
- Allows manual Manual sequence numbers definition or reset
- Allows restarting the working session with or without session logs restoration
- Validation of incoming and outgoing FIX and QuickFIX messages
- Wide range of FIX session settings including Custom Logon message
- Replaying selected log files
- Ability to load, modify, and send a file containing a preset message or batch of messages
- EnablingAllows enabling/disabling message re-sending
- Sending messages in a defined interval
- Tag values autoincrement
- Events monitoringAllows events monitoring:
- sent and received messages
- active sessions
- Allows writing raw FIX messages, opening and editing them in the table view
- Allows monitoring FIX session state in real time
- Provides the ability to search for a text in a raw FIX message
- Provides the ability to load, modify, and send a file containing a preset message or batch of messages
- Provides the ability to send messages in a defined interval
- Provides optional ability for message validation for both incoming and outgoing messages
- Provides the ability to autoincrement tag values of FIX messages sent to the session
- Provides the ability to replay selected log files
- Provides the ability to save sessions' state and configurations to restore them on the next FCS startup
Prerequisites and System Requirements
- session states
- Creating, recording, editing, and running test scenarios for FIX sessions
Prerequisites and System Requirements
FIX Client Simulator is based on FIX Antenna C/C++/.NET FIX Engine (for more details refer to FIX Antenna C/C++/.NET FIX Engine documentation). . It can be installed separately or as a part of the FIX Antenna .NET package.
...
- Any modern Intel-based server or workstation with a 64-bit CPU can be used as hardware.
- Supported operating systems:
- Windows 7
- Windows 8
- Windows 10
- Windows 11
- Windows Server 2008 R2
- Windows Server 2012
- Windows Server 2016
- Ubuntu Linux 20.04
- Ubuntu Linux 22.04
- Rocky Linux 8
...
...
- should be installed before the FIX Client Simulator's installation.
Installation on Linux Installation on Linux Mint and Ubuntu
Info |
---|
FCS is available on Linux since the FIX Client Simulator 3.5.0 release. |
...
- Install Wine (instruction for Ubuntu and Mint).
Install Winetricks using the following commands:
Code Block language c# sudo apt install winetricks
Install .NET Framework 4.8 using the following commands:
Code Block language c# winetricks --force dotnet48 winetricks --force corefonts
If Wine prompts for installing Mono, click Cancel. Please refer to the HowTo section for more details.
Navigate to the FCS folder and run it.
Code Block cd ./FCS_<version> wine Fcs.exelanguage c# language c# cd ./FCS_<version> wine Fcs.exe
Configuration
FIX Client Simulator can be configured in the Fcs.exe.config file via the following properties:
Property Name | Description | Required | Default Value | ||
---|---|---|---|---|---|
DaysToKeepEventViewLogs |
This property defines the number of days for which the session logs will be restored during the logs restoration process. Possible values: int | N | 0 | ||
MainWindowTitle |
This property defines the name of the main FCS application window. If not defined then the default 'EPAM® FIX Client Simulator' title will be displayed. Possible values: string | N | null | ||
StoreSettingsInUserFolder |
This property defines whether the user.config file will be stored in the current user directory. Possible values: true | false | N | false |
Session creation
In order to create a session, choose: Session → Create new:
...
The upper left part shows the list of active sessions.
And the The lower part is the Events Viewer section, where each record corresponds to one event and consists of the event time, name, and description.
Info |
---|
The New Events Viewer interface described below is available since the FIX Client Simulator 2.28.0 release. |
...
Checkboxes on the bottom of the Event Viewer section allow you to adjust the completeness of the event display, including messages. You can show or hide timestamps, header, or trailer of a FIX message, application messages, and session messages.
Events and messages in the Events Viewer section can be filtered using the Filter text field. All special symbols are supported except '/'.
Incoming, outgoing, and console messages are highlighted with different colors for visual usability. The colors can be changed in the Fcs.exe.config file.
The Events Viewer section can be spliced into three windows (Incoming, Outgoing, and Console) by choosing the Split Window checkbox. No highlighting is applied in this mode.
...
You can auto-scroll the events by clicking Events Viewer → Auto scroll in the main menu , so that Events Viewer will display the latest events first.
To clear the Events Viewer section click select the Clear event viewer option from the Events Viewer menu.
Tag order
FIX Client Simulator changes the tags' order in Event Viewer according to the dictionaries' structure.
...
FIX Client Simulator provides the ability to manually create, automatically record, edit, and run existing test scenarios.
All existing test scenarios are displayed in the Test Scenarios tab.
...
- Action - the action that can be applied to the selected test scenario. Available actions: default Run - to run the selected test scenario | Cancel - to cancel the Run action for the selected test scenario | Continue - to continue the test scenario run after the breakpoint.
- Test scenario nameScenario Name - the name of the test scenario.
- Details - the result of the test scenario run, the time taken and errors.
- If the test scenario wasn't run yet, then the following text will be displayed in the Details column: 'Not Started'.
- If the test scenario was run successfully, then the following text will be displayed in the Details column: 'Time taken: <mmm:sss:mcsmcsmcs>'.
- If the test scenario was run unsuccessfully, then the following text will be displayed in the Details column: 'Time taken: <mmm:sss:mcsmcsmcs>. Line <number>. Errors: <error text>'.
- If the test scenario wasn't run yet, then the following text will be displayed in the Details column: 'Not Started'.
...
In order to manually create a test scenario the following steps must be taken:
- Navigate to the Test scenariosScenarios tab and press the Create Test Scenario button.
- The Test Scenario Designer window will be opened.
- In the Test Scenario Designer window, define the following fields:
- Required. Test scenario name text field - the name of the new test scenario.
- Optional. Use Test scenario session dropdown menu - the session for which the new test scenario will be applied. All existing sessions except unregistered acceptor sessions are available for selection in this menu. If the session is not selected, then a general test scenario will be created without session identification.
- Optional. OnStart table field - the content and instructions for the new test scenario which will be executed on the Run action selection in the Test Scenarios tab.
- Optional. OnMessage Test scenario designer table field - the content and instructions for the new test scenario which will be activated on the Run action selection in the Test Scenarios tab and executed in the infinite loop to simulate FIX messages flow.
- In the Test Scenario Designer window, use the following buttons to specify the context and instructions for the new test scenario:
- Add Expect button - to add Expect instruction.
- Add Expect Until button - to add Expect Until instruction.
Add Send - Send button - to add Send instruction.
Breakpoint button - to add
SendBreakpoint instruction.
Add Breakpoint Expect Then Send button - to add Breakpoint Expect Then Send instruction.
Instruction Description Expect The Expect instruction specifies the next expected message in the tag=value form. If the next received message is not the same as in the Expect instruction, the test scenario run will be considered as unsuccessful.
Regular expressions for values in the Expect instruction are supported.
Expect
UntilThe Expect Until instruction specifies the message in the tag=value form till which FCS will be waiting to move to the next test scenario step.
If the next received message is not the same as in the Expect Until instruction, FIX Client Simulator will still be waiting for the message that meets the Expect Until instruction.
Regular expressions for values in the Expect Until instruction are supported.
Send The Send instruction defines the message to be sent in the tag=value form.
The tag=value pair may be defined in the following format:
- <tag number>=${tag number from the Expect or Expect Until instruction message} - to define the tag with the value from the received message that met the Expect or Expect Until condition.
- <tag number>=$ {<first tag of repeating group>[<entry number>]<the tag in the repeating group>} - to define the tag with the value of the repeating group tag from the received message that met the Expect or Expect Until condition.
- <tag number>=$ {<first tag of repeating group>[<entry number>]<the tag in the repeating group>[<entry number>]<the tag in the repeating group>} - to define the tag with the value of the nesting repeating group tag from the received message that met Expect or Expect Until condition.
Both pipe and SOH delimiters are supported.
Breakpoint The Breakpoint instruction defines the breakpoint where the test scenario execution will be paused. To continue test scenario execution the Continue button must be pressed for the selected test scenario in the Test scenarios table in the Test scenarios tabthe selected test scenario in the Test Scenarios table in the Test Scenarios tab.
Expect Then Send The Expect Then Send instruction specifies the incoming message to expect and the outgoing message to reply with. The Expect Then Send instruction is configurable in the tag=value form in the Command Parameter window.
Test scenario defined with the Expect Then Send instruction will be executed in the infinite loop to simulate FIX messages flow.
- Add Expect button - to add Expect instruction.
- When one of theAdd Expect Expect,Add Expect Untiland Add Send , and Send buttons is pressed, the Command Parameter window will be opened.
OR
When the Expect then Send button is pressed another Command Parameter window will be opened. - Specify the context of the instructions (tag=value pairs) in the Command Parameter window.
- Press the OK button when ready to save the instruction and proceed to the next test scenario step in the Test Scenario Designer window if needed.
Press the Save button in the Test Scenario Designer window when ready to save the created test scenario. The created test scenario will be displayed in the Test scenariosScenarios tab and saved to the TestScenarios folder in the FCS package as <Test_scenario_name>.txt.
...
In order to automatically record a test scenario the following steps must be taken:
- Navigate to the Send messageMessage tab and press the Record Test Scenario button.
- The New Test Scenario window will be opened.
- In the New Test Scenario window, define the following fields:
- Required. Test scenario name text field - the name of the new test scenario.
- Optional. Session to capture messages dropdown menu - the session for which the messages will be captured. All existing sessions except unregistered acceptor sessions are available for selection in this menu. If the session is not selected, then a general test scenario will be created without session identification.
- Select the Save session parameters checkbox to save the parameters of the session if needed. This checkbox is available only when the particular session is selected from the Session to capture messages dropdown menu.
- If the Save session parameters checkbox was selected during test scenario creation, then later, if the selected session is not configured/does not exist, FCS will create it automatically to run this test scenario.
- If the Save session parameters checkbox was selected during test scenario creation, then later, if the selected session is still configured/exists and running, FCS will just run this test scenario for this session.
- If the Save session parameters checkbox was selected during test scenario creation, then later, if the selected session is still configured/exists but not running, FCS will try to run this test scenario for this session.
- Select the Record an incoming message as expected checkbox to define the incoming message as an expected reply.
- Press the OK button to start the test scenario recording.
- Perform test scenario actions manually in the Send message tab (i.e. send and receive messages). All sent and received messages will be logged in the Events Viewer section.
- Press the Stop Recording button to stop the test scenario recording. The recorder test scenario will be displayed in the Test scenariosScenarios tab and saved to the TestScenarios folder in the FCS package as <Test_scenario_name>.txt.
...
In order to edit the existing test scenario the following steps must be taken:
- Navigate to the Test scenariosScenarios tab and right-click on the particular test scenario.
- Select the Edit option from the context menu. The Test Scenario Designer window will be opened.
- Make changes in the context and/or instructions of the selected test scenario.
- Press the Save button. The updated test scenario will be displayed in the Test scenariosScenarios tab.
Rename test scenario
In order to rename the existing test scenario the following steps must be taken:
- Navigate to the Test scenariosScenarios tab and right-click on the particular test scenario.
- Select the Rename option from the context menu.
- Change the name of the test scenario.
- The renamed test scenario will be displayed in the Test scenariosScenarios tab.
Remove test scenario
In order to remove the existing test scenario the following steps must be taken:
- Navigate to the Test scenariosScenarios tab and right-click on the particular test scenario.
- Select the Remove option from the context menu. The Do you want to remove the test scenario? warning will be displayed.
- Press the Yes button to confirm test scenario removal.
- The selected test scenario will be removed from the Test scenariosScenarios tab.
Save session configuration
...