BP-Sim Framework is a payment transaction testing suite for service development, testing and benchmarking. It currently consists of following components: BP-Source, BP-Host, BP-HSM and BP-SeeEMV.
BP-Sim Framwork is an user interface (UI), which allows easy setup, configuration overview, test management and access to testing logs. Majority of testing tasks is carried through this console, while in some special cases other methods can be used (command line).
This tutorial comes with an description of basic testing concepts with with the BP-Source component.
BP-Source module is a source of payment transactions emulating payment devices such as POS, ATM, payment gateway and H2H. BP-Source handles all cryptography, device management and collects all transaction data for further analytics.
Source control screen
BP-Sim Framework with BP-Source license always opens System overview as its landing screen. System overview screen provides information on available component configurations, their status and also allows user to directly interact with these (Starting/Stopping).
Note the Navigation bar, located on a left side of the screen and click Source control node to see the main BP-Source screen. This screen provides all runtime controls and the most frequent configurations for testing with BP-Source. Text log located on a right side of your screen shows information collected from the test run. Counter values located on top of the screen as shows transaction totals for any single test run.
Input configuration is a collection of internal BP-Source, Terminal and Card settings. It is recommend to check all configurations first before commencing a test run.
Using a tree menu located on the left side unfold the Sources node. This action reveals all currently available Source configurations (see screenshot below), each initially named as per transaction format in use.
Most important fields are target host address, host's port, format to be used and transaction header.
Configuring a host address and port tells Source module where to send transactions, while transaction format says which format will be used for message compilation.
The most significant setting is the Transaction header. It is a common practice that each payment transaction is framed within a TCP frame. A payment systems implement a corrective measure to ensure that a message was delivered completely or it got split into several frames during it's transmission to the host system. Transaction header is adds couple bytes in front of the message to provide payment system with message's total length, allowing a payment system to detect any transmission problems and handle those.
BP-Source Transaction header configuration should match target system's configuration as messages generated with an invalid (or no) header won't be recognized. Common practice is to use 2B-length excluded header which doesn't count header bytes in the message total length.
Note to hit the "Apply" button to store the configuration change into BP-Sim's database.
Second tab on a Sources configuration screen allows selecting a cryptographic mode, PIN-block format, PIN-block and MAC-block encryption type. These settings should match the destination host system to allow messages being processed & authorised correctly.
Message profile configuration
BP-Source message construction relies on configured message profiles. Default BP-Sim configuration provides ISO8583:1987 format with pre-defined list of basic payment messages.
Unfolding Formats node from Navigation bar reveals all currently available transaction formats, as per license. Selecting any of formats available brings profile configuration screen for message for message construction and transaction templates. Note the ISO8583:1987 configuration screen on the picture following.
Top list-box contains a list of all currently available transaction profiles. These can be managed with buttons located on the right side, allowing user to change, copy or delete. Very important is the Active check-box, which flags a message profile to be used for stress testing testing or responding (BP-Host component functionality). Note that active message flag might be overridden from a test script as all other fields in the message.
ISO8583:1987 is a bitmap-based format and fields listed in he Bitmap field will be used for message construction as well as for listing input fields on the main table below. Message fields are listed there in its numeric form having semicolon “;” as its separator. Comma is being used as a level separator (e.g. 63.2 for field 63 subfield 2). The “Star” button needs to be clicked to refresh available fields list below.
EMV tab is available upon a license type and allows to drive EMV datafield for DE55 construction. TLV value present is used for listing output data fields desired.
In case of BP-Host license availability, the Response validation tab appears. The Validation Rules mode for BP-Host allows to pick a response code based on the Transaction Amount (expressed in cents, so 101, 10001 have the same response) as per this mapping table. This table is all same for all profiles.
On the screenshot below shows the terminal's configuration screen. Navigate to this screen through the navigation screen - Terminals node. In the same way as As per Sources configuration, a list of all available terminal configurations should appear. Terminals marked with star '*' are pre-set for Load testing. Note that multiple terminals can be active in parallel in Load testing mode, but POS mode uses just the current on selected on a Sources control screen.
Interface tab provides information on how many transactions will be send and which card will be used for testing in Load test mode. Selecting a random cards option will tell BP-Source to randomly pick a card from all active cards configured and the choice will be different for each transaction. Management buttons located on a right side allow configuration saving, cloning and deleting. Same can be achieved through the right click on device's name on a navigation bar.
Terminal data tab contains terminal main configuration details as it's identification number (DE41), merchant number (DE42), location (DE43), terminal currency (DE49), system trace audit number (DE11) or retrieval ref. nr (DE47). Note that these values will be filled in transaction only in case that transaction profile has these fields blank.
Available upon licence type, you may specify details for device's internal EMV processing.
Range of security options are supported for any device. Terminal's cryptography will be selected as per actual BP-Source security setting.
Card configuration can be found under Cards node in Navigation bar. Cards are organised into card groups. These groups can be then referred from Source control screen to shorten card selection procedure and in allows cards selectio, or using a random cards from particular group during a Load test.
It is the best practice to fill in as much information you know to prevent message corruption. Note BP-Source will try to guess applicable values whenever there is a blank field detected.
Running the test
Now navigate back to the Source control screen (see screenshot below) and Select ISO8583-1987 configuration profile to load card and terminals values. Select any terminal and card and hit the Start button to launch a test. Note that running test can be stopped with a “Stop” button, but no statistics or test reports will be collected and provided in such a case.
Screen below shows transaction being authorised locally and a reporting test statistics. Additional information was logged in BP-Sim Traces and each transaction is also being stored in the internal BP-Sim database.
Test results & Trace log
Test carried on a screen before was carried on terminal 80000001. We can now go to the trace log and check transaction details.
The tracing path is being constructed as Traces>[Source configuration name]>[Device name]>[Terminal].log (e.g. Traces/ISO8583-1987-A/80000001/80000001.log). Detailed log is provided to allow easy analytics for the message carried, covering all message fields, binary data and all comments and issues reported by message parser as seen on picture below.
Another mean of test analytics is the Transaction Query. Transaction query is located as one of the root nodes in navigation bar, having a question-mark icon.
Transaction Query allows users to send queries into BP-Sim's database and list all recorded transactions. Double-click on any listed transaction brings a Transaction detail with information organized into several tabs. Linking buttons are provided for easy navigation between payment requests and responses.
New snapshot (transaction detail)
In this tutorial, we did go through main configuration screens needed for basic test run and covered most important parts of its setting. This article also provided information on how to start, stop and read test results plus gave some overview on BP-Sim management console usage and test linking to other components like BP-Host.