Professional Documents
Culture Documents
UL Brand Test Tool - Automation Server Protocol
UL Brand Test Tool - Automation Server Protocol
UL Brand Test Tool - Automation Server Protocol
Author UL
Version 1.43
Date June 2020
Status Final
Classification Confidential
Document information
All rights reserved. It is not allowed to multiply, electronically save or publish (parts of) this document, in any
form or manner (electronically, mechanically, photocopy etc.) without written approval in advance from UL.
UL, the UL logo and the UL certification mark are trademarks of UL LLC © 2020
UL Brand Test Tool
Automation Server Protocol Specification
Change history
1.8 26-01-2016 Added ‘not XXXX’ and ‘cancel’ to pin field in Initiate
Transaction.
1.8 02-02-2016 Added some additional Requested Data.
1.8 09-02-2016 Added ‘Out of scope’ and ‘Approve Letter L2’ to Requested
Data.
1.8 03-05-2016 Added ‘Issuer Scripts’ to Requested Data.
1.9 17-05-2016 Added ‘amount_range’ to Initiate Transaction Message.
Added amount pattern to ‘amount’ in Initiate Transaction
Message. Added ‘Time out’, ‘Message:
Incorrect PIN twice’, ‘Issuer Scripts successful’, ‘Message:
amount confirmation 2’, ‘Message: Second tap’, ‘PIN2’,
‘PIN3’ and some more items to Requested Data.
1.9 30-05-2016 Added Tool Info command and modified Test Case
Finalization command.
1.10 13-06-2016 Added optional ‘verbose’ to Initiate Test Case request and
‘description’, ‘guidance’ and ‘validations’ to Initiate
Transaction response. Added ‘cashback’ to
transaction_type. Added optional ‘verdicts’ to List Test
Cases request and ‘verdict’ to List of Test Cases response
1.11 04-07-2016 Updated Test Case Finalization example to reflect changes
on distinction between user, cardlog and host validations.
1.11 13-07-2016 Added “Tap again” to Requested Data. Added ‘none’ as
data_entry option.
1.11 23-08-2016 Added ‘cash’ to transaction_type. Added ‘= Purchase
Amount’ and ‘lowest/highest value above/below’
specifications to amount_range. Added ‘Power down’ and
‘Issuer Authentication’ to Requested data.
1.11 05-10-2016 Changed delimiter for multiple amounts in Initiate transaction
message from comma to semicolon.
1.12 27-10-2016 Added ‘reference_pin’ to Initiate transaction message and
added ‘bypass’ as possible value in the ‘pin’ field.
1.13 08-11-2016 Added Start_CardSimulation and Stop CardSimulation
1.13 09-11-2016 Added Export Current Project, Import Project and List
Projects
1.13 11-11-2016 Added Get Last CardLog
1.14 25-11-2016 Added extended Simulate Magstripe Data payload
1.15 05-12-2016 Added Get Last Card Simulation Reports
1.16 16-12-2016 Added Stop HostSimulation
1.17 03-02-2017 Added some additional Requested Data (“French OR not
supported”, “Magstripe Read”)
1.18 20-03-2017 Added some additional Requested Data (“Tip dialog”)
1.19 11-04-2017 Added some additional Requested Data (“Message Not
accepted or swipe”).
Added “automation_guidance” element to Initiate
Transaction message.
1.20 23-08-2017 Added ‘Mute Probe’ and ‘Unmute Probe’ commands. Added
Requested Data ‘Dynamic Limit Sets’, ‘Message:
contactless not permitted’ and ‘Display label=<STRING1>
and <STRING2>’. Removed Requested Data ‘Out of scope’.
1.21 11-09-2017 Added Requested Data ‘Message: Final or no amount’ and
‘Selected application=<STRING>’.
1.22 16-11-2017 Added Requested Data ‘Signature or noCVM’, ‘Message:
Insert swipe or try other card’ and ‘Test case specific
message’. Added inclusion of TPP files in Import Project and
Export Current Project message flow.
1.23 08-12-2017 Added Requested Data ‘Message: Insert or other card’.
1.24 02-01-2018 Added Requested Data ‘Message: Odometer’, ‘Message: ID
Number’, ‘Message: Vehicle Number’.
1.25 31-01-2018 Added Requested Data ‘Chip Inserted’.
1.26 09-03-2018 Added Requested Data ‘Online Referred’
1.27 09-03-2018 Added full receipt validation Receipt AID=<STRING>
1.28 22-03-2018 Added Requested Data ‘PIN and Signature’ for terminals
which support combination of PIN and Signature as CVM.
1.29 05-04-2018 Added Requested Data ‘Receipt AID=<STRING> or
<STRING>’
1.30 24-04-2018 Added Requested Data ‘Message: Display brand logo in idle
mode’
1.31 02-07-2018 Added clarification on unspecified amounts for Initiate
Transaction fields ‘amount’ and ‘amount_integer’.
1.32 27-09-2018 Explicitly state all requested data in Table 16, no longer
using <STRING> placeholders
1.33 23-10-2018 Add amount_range ‘Amount from previous transaction’
1.34 01-11-2018 Added Requested Data ‘Approved Purchase Amount’ and
‘Message: Gratuity’
1.35 12-11-2018 Added clarification on true or false requests
1.36 10-12-2018 Added a transaction type ‘balance_inquiry’ in the Initiate
Transaction message
1.37 17-12-2018 Added specification for receipt information as part of
transaction finalization
1.38 12-02-2019 Added transaction type ‘cancellation’ in the Initiate
Transaction message. Added Requested Data ‘Receipt
AID=A000000333010108’ and ‘Receipt
AID=A000000333010101’
1.39 27-02-2019 Added transaction type ‘advice’, ‘pre-authorization
completion advice’, ‘pre-authorization completion request’,
and ‘pre-authorization cancellation’
Added section 3.5.2 containing the possible values in the
automation guidance field in the initialize transaction
message
1.40 29-05-2019 Added section 2.3 describing connection handling
Table of Contents
1 INTRODUCTION .................................................................................................................... 9
1.1 Scope ..................................................................................................................................... 9
1.2 Intended audience .................................................................................................................. 9
1.3 Document structure ................................................................................................................ 9
1.4 Updates .................................................................................................................................. 9
2 OVERVIEW .......................................................................................................................... 10
2.1 Architecture .......................................................................................................................... 10
2.2 Basic message description and details ................................................................................ 11
2.3 Connection handling ............................................................................................................. 11
2.4 Configuration ........................................................................................................................ 12
2.4.1 Command line arguments ..................................................................................... 12
2.5 Getting started ...................................................................................................................... 12
2.6 Typical use cases ................................................................................................................. 15
2.6.1 Complete test run .................................................................................................. 15
2.6.2 Follow up or debug testing .................................................................................... 16
3 MESSAGES ......................................................................................................................... 17
3.1 Select Profile ........................................................................................................................ 19
3.2 List Test Cases ..................................................................................................................... 19
3.3 List of Test Cases ................................................................................................................. 20
3.4 Initiate Test Case .................................................................................................................. 22
3.5 Initiate Transaction ............................................................................................................... 23
3.5.1 Amount Ranges ..................................................................................................... 26
3.5.2 Automation guidance ............................................................................................. 27
3.6 Transaction Finalization ....................................................................................................... 28
3.7 Test Case Finalization .......................................................................................................... 30
3.8 Terminate Testing................................................................................................................. 31
3.9 Get Archive ........................................................................................................................... 31
3.10 Archive .................................................................................................................................. 32
3.11 Start CardSimulatorServer ................................................................................................... 32
3.12 Stop CardSimulatorServer ................................................................................................... 32
3.13 Activate Probe ...................................................................................................................... 33
3.14 Mute Probe ........................................................................................................................... 33
1 Introduction
1.1 Scope
The purpose of this document is to describe the control protocol specification between the Test
Automation Environment (supported by the UL Integrated Test Automation Module) and the UL
Brand Test Tool.
• Chapter 1: Introduction
This chapter elaborates on the document purpose and scope as well as the supporting
information used in the rest of the document.
• Chapter 2: Overview
This chapter outlines the basic architecture principles and the basic message descriptions
of the control protocol.
• Chapter 3: Messages
This chapter explains all the messages that can be exchanged between the Test
Automation Environment and the UL Brand Test Tool. It also provides examples of each
message for ease of use.
References to the underlying standards are provided at the end of the document
1.4 Updates
This document will be periodically updated to enhance the functionality as required. Interoperability
between Test Automation Environments is guaranteed by the correct usage and validation of the
specification version number.
2 Overview
2.1 Architecture
The UL Brand Test Tool in combination with the optional UL Integrated Test Automation Module
can be run in such a way that it can be controlled by an external program. This external program,
hereafter referred to as the Test Automation Environment, communicates with the UL Brand Test
tool using messages defined in this document over a configurable TCP socket.
It is necessary that the Test Automation Environment is also capable of controlling the Point-of-Sale
under test. This functionality can be assigned to a separate entity, the POS Controller, which
should be able to:
• Enter amounts, select transaction types and type PINs (in general, key entry);
The POS Controller takes over the usual role of a human user in this model of Brand Testing.
The Test Automation Environment sets up a connection with the UL Brand Test Tool and, using the
control protocol, selects a test case. The UL Brand Test Tool then simulates a card through the
SmartLink Box or SmartWave Box and configures its host simulator to respond appropriately.
Instructions are sent back to the Test Automation Environment for performing the transaction along
with requests for specific data. The Test Automation Environment sends the appropriate messages
to the POS controller to initiate a transaction according to the instructions (swiping, tapping,
inserting for a specific transaction amount etc.). At the end of the transaction, the Test Automation
Environment sends the requested data back to the UL Brand Test Tool, signaling the end of the
test. The UL Brand Test Tool finalizes the test and responds with a verdict for the test or with
additional instructions for subsequent steps of the test case. The Test Automation Environment
may repeat this procedure at its leisure.
At the TCP level, messages are preceded by a four byte, big endian length header followed by the
control message itself. The length header indicates the exact length of the message excluding the
four length bytes. The message itself is encoded in JSON as described in the normative reference
[1].
The JSON message portion of request and response messages must always be UTF-8 encoded.
The Length Indicator specifies the number of octets used to encode the JSON message.
Each JSON message (both requests and responses) contain a “message_type” field, a
“version” (which will always be set to 1.0 in this version of the message specification) and a
“payload” field. The message type is always a string field, and the UL Brand Test Tool will ignore
case when receiving a message, but will respond with a specific case (see section 3). The structure
of the payload field is determined by the message type as described in the following section.
{
“message_type” : “Initiate Transaction”,
“version” : “1.0”,
“payload” : …
}
Figure 3 High level control message structure
2.4 Configuration
The BTT Automation server has some configurable options that can be used to customize the
behavior for certain environments. To do so, go to Configuration and then select BTT
Automation.
On the Server Settings page you find two tabs. On the ‘TCP/IP Settings’ tab you can set the
TCP/IP port and timeouts. On the ‘Execution options’ tab you can configure the UL Brand Test Tool
to always start in Automation mode, which is useful in a fully automated testing environment.
Furthermore, you can configure probe activation and the timeouts for test case start up and
finalization.
On the Logging Settings page you can enable or disable TCP/IP and JSON logging and configure
basic logging settings such as the addition of timestamps.
-automationPort=4500
Figure 5 Command line arguments
Test Automation Module is installed. When the Automation server is active, the UL Brand Test Tool
will show an Automation Reporting window, containing a ‘JSON Logger’ and a ‘TCP-IP Logger’ tab.
The JSON Logger page displays all valid JSON messages that are sent and received by the
Automation Server. It provides a simple way of inspecting the communication between BTT and
TAE for debugging.
The TCP-IP Logger page provides more detailed communication info. It logs the opening and
closing of TCP/IP sockets and all messages that are sent and received. For each message, three
logging lines are displayed:
• The MLI (Message Length Indicator) that was read from the message, indicating how many
bytes should be send or received before this message is complete.
Note: These logging tabs are meant for debugging purpose, and tend to get very large if they are
left open. In a production environment, this logging should be disabled or restarted from time to
time, because otherwise it will eventually lead to out-of-memory problems.
The first step in a typical test run is selecting the correct profile by sending a “Select Profile”
message from the Test Automation Environment. A very simple Python TAE that sends the “Select
Profile” message and awaits the response is shown in Figure 7.
#!/usr/bin/env python
import socket
import struct
import time
TCP_IP = ‘127.0.0.1’
TCP_PORT = 4500
BUFFER_SIZE = 1024
MESSAGE = “{\”message_type\” : \”Select Profile\”, \”version\” :
\”1.0\”, \”payload\” : { \”profile\” : \”Visa\”, \”description\” :
\”Example project\” } }”
# Create message
MLI = struct.pack(“!I”, len(MESSAGE))
MLI_MESSAGE = MLI + MESSAGE
# Send message
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
s.send(MLI_MESSAGE)
print “Sent data: ‘”, MESSAGE, “’”
# Receive MLI from response (you might want to add some timeout handling
as well
respMLI = s.recv(BUFFER_SIZE)
respMLI = struct.unpack(“!I”, respMLI)[0]
The process is similar in the automated environment. The overall flow is diagrammed in Figure 8.
After starting the Automation Server in the UL Brand Test Tool, the process is as follows:
1. The Test Automation Environment sends the “Select Profile” message to the UL Brand Test
Tool.
2. If the selected project exists, the UL Brand Test Tool selects the project and responds with
an “ACK” message.
3. The Test Automation Environment sends the “List Test Cases” message, specifying
interface and brand to be tested or selects all.
4. The UL Brand Test Tool responds with a “List of Test Cases” to be performed.
5. The Test Automation Environment selects a test case from the received list and issues an
“Initiate Test Case” message.
6. The UL Brand Test Tool activates the test case and probe and retrieves appropriate
instructions. An “Initiate Transaction” message is sent in response.
7. The Test Automation Environment reads the instructions in the message and initiates the
correct type of transaction (for example a sale or refund) on the terminal.
8. An EMV or Contactless EMV transaction takes place between the terminal and the UL
SmartLink Box or UL SmartWave Box.
9. At the completion of the transaction, the Test Automation Environment sends the “Finalize
Transaction” message to the UL Brand Test Tool including any additional requested data.
10. If there are additional transactions to be performed (a refund, adjustment, completion or
other) the UL Brand Test Tool returns to step 6. Otherwise, the UL Brand Test Tool returns
the verdict in a “Finalize Test Case” message.
11. If there are additional tests to be performed in the test session, the Test Automation
Environment should return to step 5.
3 Messages
The following Message Types are supported:
1. Select Profile TAE A request from the Test Automation Environment to the UL
Brand Test Tool to select a particular profile in the UL
Brand Test Tool.
2. List Test Cases TAE A request from the Test Automation Environment to the UL
Brand Test Tool to receive a list of the test cases needed to
be run.
3. List of Test Cases BTT A response from the UL Brand Test Tool which lists the test
cases needed to be run by the Test Automation
Environment.
4. Initiate Test Case TAE A request from the Test Automation Environment to the UL
Brand Test Tool to start a particular test case.
5. Initiate Transaction BTT A message from the UL Brand Test Tool containing
instructions to perform for the current test case.
6. Transaction Finalization TAE A message from the Test Automation Environment to the
UL Brand Test Tool indicating that the transaction has
finished and passing requested data back.
7. Test Case Finalization BTT A message from the UL Brand Test Tool to the Test
Automation Environment indicating that a particular test
case has been completed and the verdict for that test case.
8. Terminate Testing TAE A message from the Test Automation Environment to the
UL Brand Test Tool to terminate execution of a particular
test case.
9. Get Archive TAE A message from the Test Automation Environment to the
UL Brand Test Tool requesting an archive of the latest test
reports for the current profile.
10. Archive BTT A message from the UL Brand Test Tool to the Test
Automation Environment delivering the archive of test
reports for the current profile.
11. Start TAE A message from the Test Automation Environment to start
CardSimulatorServer the Card Simulator Server.
12. Stop TAE A message from the Test Automation Environment to stop
CardSimulatorServer the Card Simulator Server.
13. Activate Probe TAE A message sent from the Test Automation Environment to
activate the probe (contact or contactless) and begin card
simulation.
14. Mute Probe TAE A message sent from the Test Automation Environment to
mute the contactless probe.
15. Unmute Probe TAE A message sent from the Test Automation Environment to
stop muting the contactless probe.
16. Simulate Magstripe Data TAE A message from the Test Automation Environment to
simulate magstripe data.
17. Start CardSimulation TAE A message from the Test Automation Environment to start
simulating a particular card image.
18. Stop CardSimulation TAE A message from the Test Automation Environment to stop
any running card simulation.
19. Export Current Project TAE A message from the Test Automation Environment
instructing UL Brand Test Tool to create a *.tpp archive for
the currently active project.
20. Import Project TAE A message from the Test Automation Environment
instructing UL Brand Test Tool to import a *.tpp archive as
a new project.
21. List Projects TAE A message from the Test Automation Environment
requesting a list of all projects currently being managed by
UL Brand Test Tool.
22. List of Projects BTT A message sent by the UL Brand Test Tool in response to
a List Project request containing a list of all projects
currently be managed by UL Brand Test Tool.
23. Get Last CardLog TAE A message sent by the Test Automation Environment to
request the most recent card simulation log generated by
the Card Simulation Server.
24. CardLog BTT A message sent by the Brand Test Tool in response to a
Get Last CardLog request containing the contents of the
most recent card simulation log generated by the Card
Simulation Server.
25. Get Last Card TAE A message sent by the Test Automation Environment to
Simulation Report request the results of the most recent completed simulation
managed by the Card Simulation Server.
26. Stop HostSimulation TAE A message sent by the Test Automation Environment to
terminate any running Host Simulation service.
27. Tool Info BTT A message from the Test Automation Environment to
TAE request information about the running UL Brand Test Tool,
on which the UL Brand Test Tool will reply with a Tool Info
message containing the tool info.
28. ACK BTT A message used by the UL Brand Test Tool to
acknowledge a command without sending response data.
29. NACK BTT A message sent by either entity indicating that the last
TAE received message was not understood or could not be
processed.
30. Shutdown TAE A message sent by the Test Automation Environment to
initiate a shutdown of the UL Brand Test Tool.
Table 1 Message Type Descriptions
The UL Brand Test Tool will always respond with the indicated case, but will ignore the case sent
by the automation environment.
The message type parameter of the message must be the case sensitive literal “Select Profile”. The
payload has a single field described in the table below.
Opening the UL Brand Test Tool window and manually selecting a project will have the same
effect.
The message type parameter of the message must be the case sensitive literal “List Test Cases”.
The payload has a number of fields each of which may only contain one of a number of options.
These fields are described in the table below. All of the test cases that are in the scope of the
current profile and match the requested options will be returned.
It is recommended that the entire list of test cases is not retrieved all at once. It is useful to request
the entire list once, to get the list of test plans, but then individual test runs should focus on specific
test plans. In some cases, there are test plans such as the Mastercard Subset_8_2014 that have
groupings of test cases. The list of test cases will indicate a test plan that includes the grouping
such as “Subset_8_2014/PayPass_MChip_MC”. For the purposes of List Test Cases, that test plan
would merely be “Subset_8_2014” and all groupings would be returned.
An example message which requests the UL Brand Test Tool to return only the test cases for the
contactless interface for all brands and test plans is listed below. The test plans that are applicable
for automation are determined by the UL Brand Test Tool.
{
“message_type” : “List Test Cases”,
“version” : “1.0”,
“payload” : {
“brand” : “all”,
“interface” : “contactless”,
“test_plan” : “all”
}
}
Figure 10 Example List Test Cases message
The payload of the List of Test Cases message is an array of test case objects. Each test case
object contains a number of string fields defining the test case.
The Test Case JSON object is the exact payload that must be used in an “Initiate Test Case”
message to initiate that particular test case.
The payload of the Initiate Test Case must be the precise content (ignoring whitespace) of a test
case returned in a “List of Test Cases” message, with an optional boolean “verbose” field. It is
not necessary that a List of Test Cases was returned to the Test Automation Environment in a
particular session as long as the content of the payload is correctly formatted.
The fields application_label or preferred_name will be filled if the test case instructions
define them. If the test case has no preference, both fields can be null. An example follows:
{
“message_type” : “Initiate Transaction”,
“version” : “1.0”,
“payload” : {
“transaction_type” : “sale”,
“data_entry” : [“insert”],
“card” : “Contact Probe”,
“pan” : “”,
“track1” : “”,
“track2” : “”,
“amount” : “20.00”,
“amount_integer” : 2000,
“amount_range” : [
">= CVM Required Limit",
"< Contactless Transaction Limit,Contactless Floor Limit"
],
“amount_other” : “0.00”,
“amount_other_integer” : 0,
“currency_code” : “978”,
“application label” : “Visa Credit 1”,
“preferred_name” : “Виса Кредит 1”,
“pin” : “1234”,
“reference_pin” : “1234”,
“send_receipt” : false,
“requested_data” : [
“Receipt AID=A000000003101001”,
“TSI”
] }
}
Figure 13 Example Initiate Transaction message
The sign “<, >, =, >= or <=” indicates the comparison between amount value and particular limits’
value. Incidentally this can be specified with ‘highest/lowest value </>’.
For example, ‘< CVM Required limit’ on a terminal with CVM Required limit $15,00, means ‘any
amount between $0.00 and $15.00.
Note that for this field, the considered amount is the total amount of the transaction including
cashback, gratuity, etc.
The number of elements of the field “requested_data” must exactly match the number of elements
of the field “requested_data” in the preceding initiate transaction message. Furthermore, no
element may be null. If either or both of these criteria are not met, the test case will be immediately
terminated. The intention of this behavior is to avoid giving a user the erroneous perception that a
test case is passing when it is not possible to.
The receipt field is optional, so a null value is always accepted by the UL Brand Test Tool. If the
receipt field is not null, it should contain a proper receipt JSON object, consisting of base64
encoded receipt data, and an optional receipt type (maximum 12 characters [a-z][A-Z][0-9]). If a
Transaction Finalization command is sent, a NACK is returned when:
• the receipt contains no or empty receipt data,
• the receipt contains receipt data that is not formatted in base64 encoding,
• the receipt type is not formatted with characters [a-z][A-Z][0-9],
• the receipt type is longer than 12 characters,
• saving this receipt to file leads to an error (including file already exists).
If a Transaction Finalization command is sent containing a receipt, then the message is processed
as usual. If the test case was expecting a receipt for this transaction, and the receipt was included
in the Transaction Finalization command, a file is created in the report folder of the test execution,
with a file name following the receipt file name convention from manual test case execution, a file
extension according to the provided type, and binary data of the file equal to the base64 decoded
data provided in the command.
Next to the verdict, the message also contains a summary of the validations performed for the test
case. For each transaction, a list of validations with verdicts and an overall verdict for the
transaction are included. Note that all the validations, irrespective of the applicability are included in
the message.
{
“message_type” : “Test Case Finalization”,
“version” : “1.0”,
“payload” : {
“verdict” : “passed”,
“transaction_results” : [
{
“name” : “Sale”,
“verdict” : “passed”,
“userChecks” : [
{
“validation”: “Terminal displays transaction amount”,
“verdict” : “passed”,
“property” : “”,
“operator” : “”,
“mask” : “”,
“received” : “yes”,
“expected” : “yes”
}
],
“cardLogChecks” : [
{
“validation” : “ARQC returned in 1st Generate AC”,
“verdict” : “passed”,
“property” : “CONTACT.APDU(CLA=80,INS=AE)[1].COMMAND:BYTE”,
“operator” : “==”,
“mask” : “”,
“received” : “01”,
“expected” : “01”
}
],
“hostChecks”: [
]
}
]
}
}
Figure 16 Example Test Case Finalization message
3.10 Archive
The archive message is the response of the Brand Test Tool to a successful Get Archive or Get
Last Card Simulation Reports request. If the archival was unsuccessful then a NACK would be
sent. The payload of the Archive message is the Base64 encoded zip archive produced. An actual
archive message would be much larger than the example provided below.
{
“message_type” : “Archive”,
“version” : “1.0”,
“payload” : “VGhpcyBpcyBleGFtcGxlIGRhdGEu…”
}
Figure 19 Example Archive message
Further communication with the Card Simulator Server is done using the normal Card Simulator
Server Protocol, not over the BTT Automation interface.
{
“message_type” : “Start CardSimulatorServer”,
“version” : “1.0”,
“payload” : {
“interface” : “contactless”
}
}
Figure 20 Example Start CardSimulatorServer message
{
“message_type” : “Stop CardSimulatorServer”,
“version” : “1.0”,
“payload” : null
}
Figure 21 Example Stop CardSimulatorServer message
There are two ways to call this method. The first is to call with no payload, in which case the
request is forwarded to the current running card simulation. The following figure shows and
example of this form of the request:
{
“message_type” : “Simulate Magstripe Data”,
“version” : “1.0”,
“payload” : null
}
Figure 25 Example Simulate Magstripe Data message
The second way of calling this method is to specify the card image filename in the payload. When
used in this way, the card simulator server is not used and the SmartStripe probe is used directly to
simulate a magnetic swipe.
{
“message_type” : “Simulate Magstripe Data”,
“version” : “1.0”,
“payload” : {
“filename” : “C:\\path\\image.xml”
}
}
Figure 26 Example Simulate Magstripe Data message
{
“message_type” : “Start CardSimulation”,
“version” : “1.0”,
“payload” : {
“filename” : “C:\\path\\image.xml”
}
}
Figure 27 Example Start CardSimulatorServer message
{
“message_type” : “Export Current Project”,
“version” : “1.0”,
“payload” : {
“filename” : “C:\\path\\project.tpp”
}
}
Figure 29 Example Export Current Project message
{
“message_type” : “Import Project”,
“version” : “1.0”,
“payload” : {
“filename” : “C:\\path\\project.tpp”
}
}
Figure 30 Example Import Project message
The payload of the List of Projects message is an array of project (a.k.a. profile) objects. Each test
case object contains a number of string fields defining the project.
3.24 CardLog
The CardLog message is sent from the UL Brand Test Tool to the Test Automation Environment in
response to a Get Last CardLog request. The payload of the CardLog message is the Base64
encoded json-format card log data. An actual archive message would be much larger than the
example provided below.
{
“message_type” : “CardLog”,
“version” : “1.0”,
“payload” : “VGhpcyBpcyBleGFtcGxlIGRhdGEu…”
}
Figure 34 Example CardLog message from BTT to TAE
3.28 ACK
The ACK message is sent in response to a request message to the UL Brand Test Tool that
doesn’t prompt any response data. It signifies successful execution of the request. The payload is
null.
{
“message_type” : “ACK”,
“version” : “1.0”,
“payload” : null
}
Figure 38 Example ACK message
3.29 NACK
The NACK message is sent in response to an unexpected or corrupted message. Its payload is a
string which may give details on the reason for NACKing.
{
“message_type” : “NACK”,
“version” : “1.0”,
“payload” : “Message type not supported.”
}
Figure 39 Example NACK message
3.30 Shutdown
The Shutdown message is sent by the Automation Environment to intitiate a clean shutdown of the
Brand Test Tool. This is especially useful when multiple Brand Test Tools are configured on a
specific system each using separate devices and ports. The payload must be an integer (less than
231) indicating the number of milliseconds to wait before initiating the termination of the Brand Test
Tool. The response will be an ACK, provided that the message can be sent before the Brand Test
Tool terminates.
{
“message_type” : “Shutdown”,
“version” : “1.0”,
“payload” : 1000
}
Figure 40 Example Shutdown message
4 Requested data
4.1 Automation of user inputs
General user inputs cannot be automated due to the general nature of language and the specific
nature of computers. However, many test cases contain checks that require a human to provide
some additional information or answer yes/no questions. The straightforward automation strategy is
to enumerate the questions being asked and to categorize these questions into as few classes as
possible. This results in a broad enumeration of data which must be requested from an automation
device.
In the following sections, the enumeration of “requested_data” that the automation tool are
expected to understand are described. Furthermore, the format of the response data is also
described.
In the case that the automation tool does not understand the request, null should be returned for
that particular request; a NACK must not be used when the request is not understand.
References
Ref. Title Author Version Date
[1] Standard ECMA 404: The JSON Data ECMA 1st Edition October 2013
Interchange Format