Process Flow - Total Test - COBOL CICS Programs
Total Test has introduced basic support for CICS. Below are the details of what is supported and how the support can be enabled and reviewed.
Preparation
The CICS support for Total Test is part of the BMC testing suite of products that includes Workbench for Eclipse, Enterprise Common Components, and Code Debug CICS. Although sourceless debugging is available with Code Debug CICS, source-level support is a requirement for the CICS support of Total Test. Instructions on preparing a program for source-level debugging withCode Debug CICS can be found in Code Debug CICS COBOL User Guide or BMC AMI Common Shared Services (CSS) User Reference.
When preparing to record test cases for CICS, you may need to establish a launch configuration that either connects directly to a CICS region where your transaction/program executes or in a multi-region environment, additional setup may be required to ensure that Code Debug CICS is installed in each region where your transaction/program will execute. In a CPSM Dynamic Transaction system, Code Debug CICS should be installed in all appropriate AOR regions, but not the TOR. Use of the Code Debug CICS Dynamic Transaction Routing Facility installed in the TOR regions of the CICSPlex can assist in routing the transaction to the proper region for collection. The Code Debug CICS product installer should refer to the sections “Configuring Intercommunication Facilities” and Workbench for Eclipse in a CPSM CICSPlex Environment” of the Code Debug CICS Advanced Configuration Guide for information on simplifying the connection process.
Prerequisites
The following products must be installed with current maintenance applied:
- Workbench for Eclipse Release 20.03
- Code Debug CICS 17.02
- Enterprise Common Components (ECC) Release 17.02
Testing
Sample Programs
The Enterprise Common Components (ECC) sample library (hlq.CPWR.MLCX170.SLCXCNTL) includes sample programs (see Sample Training Programs for a listing) you can use to demonstrate Total Test CICS support:
- CSDKTXD
Member CSDKTXD contains the RDO definitions, which allow you to define and install resources in a running CICS system for the test application. It defines the programs, transactions, and files used by KTX2DEMO and KTXDDEMO. You can alter the supplied resource definition for the transaction code and assign it to a group. The resource group created in this step must be added to a CICS group list, which in turn is specified in the system initialization parameter GRPLIST. - KTX2DEMO
The CICS COBOL sample program KTX2DEMO and related sub program CWKTDATE demonstrate a wide variety of supported EXEC CICS commands. Functions demonstrated in this program are file I/O, Transient Data queue, Channels and Containers, delay, cancel, retrieve, and start.
In addition to the main program KTX2DEMO you will need to first compile and link sub program CWKTDATE. Both programs need to be linked with AMODE(31),RMODE(ANY). Refer to the Code Debug CICS documentation on compiling and linking.
2 VSAM files need to be created using the VSAMKSDS and VSAMKSDC members to create sample VSAM KSDS input files.
The required RDO entries for this program can be added via the CSDKTXD sample member. - KTXDDEMO
The CICS COBOL sample program KTXDDEMO and related sub program CWKTDATE demonstrate the initial group of supported EXEC CICS commands. In addition to the main program KTXDDEMO you will need to first compile and link sub program CWKTDATE. Both programs need to be linked with AMODE(31),RMODE(ANY). Refer to the Code Debug CICS documentation on compiling and linking.
The required RDO entries for this program can be added via the CSDKTXD sample member.
Record Test Case Data from Code Debug CICS Session
The following procedure uses the KTX2DEMO program.
In Code Debug, launch the CICS Debug configuration for the KTX2DEMO program (From the Run menu, select Debug Configurations).
Refer to the BMC-AMI-DevX-Code-Debug-Eclipse-User-Guide User Guide for instructions on how to create a new Code Debug CICS launch configuration and how to launch a debug session.- When creating the "Code Debug Session", select the Traps tab.
- Select the second trap for the <LOGIN>.
- Press the "Remove" button.
- Click Debug. The Debug button is disabled when a selected configuration contains invalid data.
- Verify that the initial breakpoint is displayed.
- Unlike a Batch or TSO debug session, execution begins upon the launch of a CICS session. The transaction that executes the program to be debugged, KTX2, must be executed by an appropriate means outside of Code Debug. Once executed, Code Debug Eclipse traps the transaction and debugging begins.
- Press
Resume to begin executing the KTX2 transaction and display an Actions menu.
- Input an Action number such as 001 and press Enter.
- In your Code Debug Eclipse session, right click on the line the breakpoint is displayed and select
Record Test Case….
- Setup your Record Test Case selections and click OK.
- Refer to Context-Menus-from-Code-Debug-Session for a detailed description of the available selections.
Press
Resume to complete the transaction and generate a test case.
A popup is displayed stating your Unit Test has been created.- Press the red Terminate button to end the debug session.
- Now that the Unit test has been created, go into the Total Test perspective.
- Click on Project Explorer and find the Project you just created.
Expand the Project.
Find the Runner.jcl member in the JCL folder. Customize this member with the required STEPLIB datasets which are your ECC SLCXLOAD and the application program loadlib. See also Create JCL Template for more information.
- Expand the Scenarios folder and open your KTX2DEMO scenario.
- Click on the top right
Run Test Scenario icon.
- Select the desired HCI connection and also the Runner.jcl member you customized.
- Click OK to run the scenario.
After successful completion, the Scenario Result report will be displayed.
Sample Result Report - Summary
Sample Result Report - Stubs
Supported Commands
The following table lists the CICS commands that are currently supported.
Support for CICS commands not listed will be provided by mainframe PTFs and/or Workbench for Eclipse P2 repos AT A LATER time.
Categories | Commands |
---|---|
Abend support | ABEND HANDLE ABEND |
Program control | LINK LOAD RELEASE RETURN XCTL |
Temporary storage control | DELETEQ TS READQ TS WRITEQ TS |
Environment services | ADDRESS ASSIGN |
Console support | WRITE OPERATOR |
Interval control services | ASKTIME CANCEL DELAY FORMATTIME RETRIEVE START |
File control services | DELETE ENDBR READ READNEXT READPREV RESETBR REWRITE STARTBR UNLOCK WRITE |
Diagnostic services | DUMP /DUMP TRANSACTION ENTER TRACEID ENTER TRACENUM |
Scheduling services | START ATTACH START BREXIT |
Security services | QUERY SECURITY |
Syncpoint | SYNCPOINT SYNCPOINT ROLLBACK |
Transient data | DELETEQ TD READQ TD WRITEQ TD |
Channel commands "Current Channel," default when option CHANNEL() is omitted, is not yet supported | DELETE CHANNEL DELETE CONTAINER GET CONTAINER MOVE CONTAINER PUT CONTAINER QUERY CHANNEL START CHANNEL |
BMS SET() option not supported | PURGE MESSAGE RECEIVE MAP RECEIVE PARTN ROUTE SEND CONTROL SEND MAP SEND PAGE SEND PARTNSET SEND TEXT |
Storage control | GETMAIN FREEMAIN |
Task control | DEQ (Toleration only) ENQ (Toleration only) SUSPEND |
Built-in functions | BIF DEEDIT BIF DIGEST |
Terminal control | ALLOCATE FREE HANDLE AID (Toleration only) ISSUE DISCONNECT RECEIVE SEND |
System commands | INQUIRE CONNECTION INQUIRE ENQMODE INQUIRE FILE INQUIRE SYSTEM INQUIRE TASK INQUIRE TDQUEUE INQUIRE TRANCLASS INQUIRE TSQNAME INQUIRE TSQUEUE SET FILE SET PROGRAM |
APPC mapped conversation | ALLOCATE CONNECT PROCESS EXTRACT PROCESS FREE RECEIVE SEND |
Exception Support See Exception Support Commands for limitations | HANDLE CONDITION IGNORE CONDITION PUSH HANDLE POP HANDLE |
Document Services commands | DOCUMENT CREATE DOCUMENT DELETE DOCUMENT INSERT DOCUMENT RETRIEVE DOCUMENT SET |
Web Support commands | CONVERTTIME EXTRACT WEB WEB CLOSE WEB CONVERSE WEB ENDBROWSE WEB EXTRACT WEB OPEN WEB PARSE URL WEB READ WEB READNEXT WEB RECEIVE WEB RETRIEVE WEB SEND WEB STARTBROWSE WEB WRITE HTTPHEADER |
Web Services commands | INVOKE SERVICE SOAPFAULT ADD SOAPFAULT CREATE SOAPFAULT DELETE TRANSFORM DATATOJSON TRANSFORM DATATOXML TRANSFORM JSONTODATA TRANSFORM XMLTODATA WSACONTEXT BUILD WSACONTEXT DELETE WSACONTEXT GET WSAEPR CREATE |
Current Limitations
The following limitations apply to the current release of Total Test. Mainframe PTFs and/or Workbench for Eclipse P2 repos will address these limitations AT A LATER time.
Running Tests
Total Test currently supports running (executing) only one unit test for each CICS target program in a suite and/or scenario.
Data Pointers
A pointer field within a structure referenced by a pointer is not yet supported.
Exception Support Commands
Condition handling is emulated as if CBLPSHPOP(ON) is in effect. Emulation of CBLPSHPOP(OFF) will be provided by an update at a later time.
Related Topics