Introduction

This project makes it possible to test applications that utilize the ISO-8583 protocol (or some version of that) using the interactive GUI application SOAPui.

SOAPui is a test tool with a graphical front-end aiming the test of applications. Although the primary target of SOAPui is SOAP this tool is powerful and easy to use enough to use it for non-SOAP testing.

This project delivers some Java classes that integrate SOAPui with the functionality of jPos, therefore you can easily test bank-atm, or bank-pos communication during your software testing SOAPui playing the either the role of the bank or the atm or pos.

The product can be used together with the other integration product that integrates SOAPui and GreenPepper.

Introductory video

Have a look at the introductory video .

SOAPui primer

SOAPui is a testing tool written in Java. It has an ergonomic Swing based user interface and a concise API. With SOAPui you can set up and run test projects using the graphical tool, and see the results as well as information and error messages that are not uncommon during testing on an easy to handle user interface. Each test contains steps that may have different types and may serve different purposes.

For more information on SOAPui please visit the home page of the company.

ISO-8583 primer

ISO-8583 is a standard that defines the communication between the bank application and the atm or the pos terminal. This is a channel oriented protocol that can be and is usually implemented these days over a single TCP/IP channel.

The standard is defined in the documentation and if you want to test applications that implement that standard you can not avoid consulting the standard. This priper is not a replacement. It may only help you to get started.

After the channel is built up both parties can send messages into it and should expect the other party to send messages into the channel. Although the communication is typically a request response style communication the requests and the responses may not follow each other. There is no such as client and server: both parties may send requests into the channel and both parties are expected to answer such requests.

One party may send a request and wait for a response, but before getting the request it may see a response coming for an earlier request or a request from the other side. (Note that the underlying jPOS library layers do the pairing so that testing in a SOAPui project need not worry about this asynchronicity).

Messages in the TCP/IP channel (or in other channel) are stream of bytes and have a special format. The starts of the message contains (usually) the length of the message. Different implementations may encode the length in different ways. After it a header may come that is also outside the scope of the standard. The first field that the standard defines following the header is the message type. This is a four character numeric string. It is followed by the primary bit map and optionally the secondary bit map. They are each a 64bit (16bytes because it is encoded in ASCII hex) field. Each bit (bit 'n') represents whether the field 'n' is present in the message or not. Each field has a special meaning that is defined in the standard. Again there are deviations in almost all implementations on the meaning of the fields, but do not worry: their names and format is defined in XML files, no programming is needed to accommodate the actual test environment.

When setting up tests using ISOAPui-8583 you need not worry about the primary and secondary bit fields. You only need to set the parameters and the fields will automatically be created.

For more information read the standard. The jPos programmers manual is also a useful source of information although you need not get acquainted with jPos to use ISOAPui-8583.

Download and Installation

The ISOAPui-8583 can be downloaded from left side menu under the "download" section. If you see these pages on a local copy you many need to visit the corporate site of Verhas & Verhas Software Craftsmen to fetch the latest version. The downloaded package (zip) will contain JAR files.

I assume you have downloaded ISOAPui-8583 and also downloaded and installed SOAPui. It is installed in some directory we may name $SOAPUI_HOME . There is a directory $SOAPUI_HOME/bin that contains the startup script for SOAPui. This script sets up the environment variables, java execution options including the classpath. On my Windows machine this file is called soapui-pro.bat . Make a copy of it with a name that fits you. I chose soapui-pro-bic.bat . Edit the new file and add to the classpath the following files:

  • $SOAPUI_HOME/jposlib/isoapui8583-0.0.1-SNAPSHOT.jar
  • $SOAPUI_HOME/jposlib/jpos-1.6.2-r2626.jar
  • $SOAPUI_HOME/jposlib/bsh-2.0b4.jar
  • $SOAPUI_HOME/jposlib/cweb-extser-0.1-b2-dev.jar
  • $SOAPUI_HOME/jposlib/jdbm-1.0.jar
  • $SOAPUI_HOME/jposlib/jdom-1.0.jar
  • $SOAPUI_HOME/jposlib/jline-0.9.91.jar
On Windows on my machine this is performed adding the source lines:
					
set CLASSPATH=%CLASSPATH%;T:\Program
Files\eviware\soapui-pro-2.0.3\jposlib\isoapui8583-0.0.1-SNAPSHOT.jar
set CLASSPATH=%CLASSPATH%;T:\Program
Files\eviware\soapui-pro-2.0.3\jposlib\jpos-1.6.2-r2626.jar
set CLASSPATH=%CLASSPATH%;T:\Program
Files\eviware\soapui-pro-2.0.3\jposlib\bsh-2.0b4.jar
set CLASSPATH=%CLASSPATH%;T:\Program
Files\eviware\soapui-pro-2.0.3\jposlib\cweb-extser-0.1-b2-dev.jar
set CLASSPATH=%CLASSPATH%;T:\Program
Files\eviware\soapui-pro-2.0.3\jposlib\jdbm-1.0.jar
set CLASSPATH=%CLASSPATH%;T:\Program
Files\eviware\soapui-pro-2.0.3\jposlib\jdom-1.0.jar
set CLASSPATH=%CLASSPATH%;T:\Program
Files\eviware\soapui-pro-2.0.3\jposlib\jline-0.9.91.jar
				
After this is done all you have to do is to create the directory $SOAPUI_HOME/jposlib and copy the JAR files into that.

After this has been done you can start SOAPui using the new startup file and start to develop programs that utilize the ISO-8583 protocol.

Notes to the installation

The file isoapui8583-0.0.1-SNAPSHOT.jar is probably named isoapui8583-x.y.z.jar if you use a released version of ISOAPui-8583.

To place the JAR files into the directory jposlib is an arbitrary choice. You can place them at a different location so long as long they are on the classpath or SOAPui.

Configuring logging

Logging is very important during testing. The log files generated during testing may give you vital information when you want to dig deeper behind the scenes to debug what went wrong. isoapui8583 makes extensive logging and I documented the possible configuration options on a separate page .

Users' Guide

The Users' Guide is provided in a separate document

Name of the game

ISOAPUI8583 was created from the words ISO, SOAPUI and 8583. We paid great effort to create an easy to remember name that will be easy to remember and also boost our professional services sales numbers.