Noctam/DWP/ACS Test Harness/Existing System/CISSIM/PDSIM.odt

From The Dreaming
Jump to navigation Jump to search
ACS Test Harness

Meetings

Existing System

Specifications

Diary
2009:

Notes

PDSim

PDSim is a set of Python modules that allows:

  • PD and DCI transaction capture and amendment:
    • Capture of PD and DCI calls
    • Viewing and editing of captured calls, both the request and the response
    • Resending of captured calls to CIS
    • Direct sending of entered data to CIS
    • Generation of PD and DCI calls from parameter data
    • Automatic sending of a set of PD and DCI calls sequentially
  • Simulation of the CIS interface:
    • Serving of previously captured PD and DCI calls, as a web server that acts like CIS
  • Simulation of the ACS interface:
    • Serving of previously captured PD and DCI calls, as a web server that acts like ACS
  • Proxying of the CIS interface:
    • Serving of a CIS interface that sends calls on to CIS, so that requests and responses can be captured automatically

All PD read and update transactions are supported, along with DCI reads. Data is saved immediately before sending to CIS, and on reply from CIS (so post ACS).

The following top level modules are available:

  • Transaction utilities:
    • pdutils – this allows dump, save and conversion of PD and DCI call data
    • pdedit – this allows editing of PD and DCI call data via a character user interface, based on the Cobol layouts for the calls
    • pdcall – this allows PD and DCI calls to be made to a CIS swimlane, optionally editing the request and/or reponse
  • Dialogs:
    • pdreadone – this runs a single read call for a PD transaction, based on a set of metadata such as NINO, application, system date and swimlane
    • pdupdone – this runs a single update call for a PD transaction
    • pdreadoneedit – this runs pdreadone but allows editing of the data before send and after return
    • pdreadall – this runs pdreadone for all PD transactions for all PD dialogs
  • Capture utilities:
    • extractodis – this extracts a set of PD transactions from an ODIS log, optionally for a PID and a time range
    • pddb – this generates a database of metadata from a set of captured PD and DCI transactions
  • Simulators:
    • pdserve – this serves captured PD and DCI calls as CIS would (multiple pdserve's can be run to simulate multiple swimlanes – the PD utils and dialogs above can also be run against pdserve)
    • acsserve – this serves captured PD and DCI calls as ACS would (multiple acsserve's can be run)
    • pdproxy – this serves a CIS-like interface and forwards requests on to CIS

Notes:

  • pdserve supports SSL, just need to add serve cert as trusted to cacerts on ACS machine (it currently runs as localhost)
  • pdproxy supports SSL, so ACS can be pointed to it without changing config
  • Can now make calls via curl, pycurl or socket

To create DB of calls:

  • run extractodis.py (example in process.sh) against ODIS log to create:
    • log.out (intermediate file)
    • log.write.sh – run this to create ASCII ACS transactions (into a folder)
    • log.conv.sh – run this to convert the ASCII ACS transactions into EBCDIC CIS transactions (into a folder)
    • log.db.sh - run this to create a database (lookup file) of the EBCDIC CIS transactions (to stdout)
  • run createodistest.py (example in check.sh) to create:
    • a folder containing ODIS calls (ASCII ACS transactions with ODIS/ACS headers
  • curls.sh – run this to run all the ASCII ACS transactions against ACS and save the replies
  • checkodistest.py – run this to check the replies from the ASCII ACS transactions against the original ASCII replies

To serve CIS calls:

  • run pdserve.py with a configfile containing details of lookup files and transaction folders

To proxy CIS:

  • run pdproxy.py with a configfile containing metadata and an output folder

Utilities:

  • run sslutils.py from the command line to be offered test SSL transactions to call (via pycurl or socket, both real and simulated)