HOW To Use Jmeter To Load Test T24
HOW To Use Jmeter To Load Test T24
HOW To Use Jmeter To Load Test T24
No part of this document may be reproduced or transmitted in any form or by any means, for any purpose,
without the express written permission of TEMENOS HEADQUARTERS SA.
Document History..................................................................................................................... 3
Introduction & Prerequisites.................................................................................................. 4
Software Requisites.................................................................................................................. 4
Recording of Transaction – Capture and Test a T24 Transaction............................4
Modification of the captured script........................................................................................... 11
Replay the modified script ‘n’ number of times........................................................................15
Configure, Tune and Execute Scripts – Full Load Test T24.....................................16
Configuring System................................................................................................................. 16
Configure Injector Machines................................................................................................ 16
Configure JVM & Jmeter.................................................................................................. 16
Configure Registry........................................................................................................... 18
Configure Webserver........................................................................................................... 18
Configure MQ Server.......................................................................................................... 20
Configure AppServer........................................................................................................... 20
Configure T24 data.............................................................................................................. 21
Jmeter - Adding Counters, Assertions and User defined variables to the Testplan..........21
Optimizing and Running the Script......................................................................................25
Document History
Warning: This document is protected by copyright law and international treaties. No part of this
document may be reproduced or transmitted in any form or by any means, electronic or mechanical,
for any purpose, without the express written permission of TEMENOS HEADQUARTERS SA
Unauthorized reproduction or distribution of this presentation or any portion of it, may result in
severe civil and criminal penalties, and will be prosecuted to the maximum extent possible under
applicable law.” Information in this document is subject to change without notice.
Software Requisites
T24 (V R08 used here)
T24 Browser ( V 1.7 used here)
Apache Jmeter (V 2.3.1 used here (Can be downloaded from
http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi ))
Documentation: http://jakarta.apache.org/jmeter/usermanual/index.html
Tutorial: http://www.informit.com/guides/content.aspx?g=java&seqNum=269
Scenario: Let us consider a simple scenario of injecting 100 FT’s into the T24 System.
We need to capture the output coming at 9080 using Jmeter. For this we need to configure JMeter
as follows.
Add a Thread group to the Test Plan
Login to browser using login page (Currently the latest version of browser (2.1) is not
working with JMeter. So for time being we use Browser version 1.7).
Login Page
Login
FT Commit
We may rename the Corresponding name of the requests to meaningful names (Path should be
same. Only name can be changed).
We need to create two CSV files (One for Sign on and other for Dynamic fields of FT).
Userpass.csv – Format {Signon Name, Password , User Name}
Specify the columns as Variables in corresponding CSV data set config elements.
The same changes needs to be done for Password - ${PASS}, User - ${NAME},
transactionId - ${FTID} , fieldName:DEBIT.ACCT.NO - ${DRAC}, and
fieldName:CREDIT.ACCT.NO - ${CRAC} (Wherever they appear)
A loop controller needs to be added for the FT part since each user would process 10
requests.
Finally some listeners need to be added to the script to track the output (Requests
and also the response can be seen using a Tree listener.
Save the Entire Testplan as Jmx script. Our final Script looks as follows. Sample Script and CSV files are
attached below.
The scripts would be pumped in to the T24 system and we may watch the process in the Tree listener.
And also if there are any problems, we can check them out at Response Data.
Configuring System
Before starting a full load test using Jmeter, the following needs to be configured properly to run the
test without any errors.
Injector machines – Registry and JMeter
Webserver – Websphere or Tomcat and T24 Browser
MQ server (If used)
Every user (Thread) needs to perform 135 transactions each for which we configure the loop controller
inside script to perform 135 loops so that each injector will input 40500 transactions with 300 users.
For understanding the Garbage collection and tuning heap size, the following link is useful.
http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html
Configure Registry
Since we configured 300 users, that many simultaneous TCP connections should be there to send the
request to the webserver otherwise this will also result in heap memory crash. For increasing the Tcp
connections, and increase the data size that the tcp can transfer, We need to add two new DWORD
values In the following path and restart the injector machine.
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
1. TcpNumConnections – 300
2. TcpWindowSize – ffff (Determines the largest TCP receive window that the system offers. The
receive window is the number of bytes a sender can transmit without receiving an
acknowledgment. This entry overrides TCP's negotiated maximum receive window size and
replaces it with the value of this entry)
Configure Webserver
Increase the max sessions of T24 browser in channels.xml accordingly with the no of sessions
allotted for our browser channel in TCServer as follows (if you’re using browser channel).
<CHANNEL>
<NAME>browser.1</NAME>
<TIMEOUT>12000</TIMEOUT>
<ADAPTER>
<TYPE>tcp</TYPE>
<PORT>10001</PORT>
<SUPPLIER>
<INITIATOR>
<HOSTNAME>10.9.1.7</HOSTNAME>
</INITIATOR>
</SUPPLIER>
<CONSUMER>
<MAX_SESSION>40</MAX_SESSION>
<ACCEPTOR>
<BACKLOG>30</BACKLOG>
</ACCEPTOR>
</CONSUMER>
</ADAPTER>
</CHANNEL>
For MQ, this is not required. A sample config of MQ is as follows.
<CHANNEL>
<NAME> channel3q1 </NAME>
<TIMEOUT> 30 </TIMEOUT>
<ADAPTER>
<TYPE> mqseries </TYPE>
<MQHOST>10.0.1.12(1414)</MQHOST>
<MQMANAGER>t24.mq2.queue.manager</MQMANAGER>
<MQQUEUE>channel3.queue1.in</MQQUEUE>
<MQCHANNEL>t24.mq2.client</MQCHANNEL>
<!--
<REPLYQUEUEPARAMETERS>NONE</REPLYQUEUEPARAMETERS>-->
<!--
<REPLYQUEUEPARAMETERS>ALL</REPLYQUEUEPARAMETERS>-->
<!--
<REPLYQUEUEPARAMETERS>QMANAGER_QUEUE</REPLYQUEUEPARAMETERS>-->
<REPLYQUEUEPARAMETERS>ALL</REPLYQUEUEPARAMETERS>
<MQHOST>10.0.1.12(1414)</MQHOST>
<MQMANAGER>t24.mq2.queue.manager</MQMANAGER>
<MQQUEUE>channel3.queue1.out</MQQUEUE>
<MQCHANNEL>t24.mq2.client</MQCHANNEL>
</CONSUMER>
</ADAPTER>
</CHANNEL>
Increase the number of threads and JVM heapsize in the webserver. The parameters are
different for different webservers .
Configure MQ Server
We need to add a separate queue for MQ server for handling web based transactions. If needed, more
channels per webserver channel can also be added (in case we’re going to use separate channels for
separate transactions)
Configure AppServer
The tcserver.xml file in tcserver needs to configured accordingly with separate adapters and
sessions. Need to decide and increase the number of sessions in tcserver in accordance with
the mix of transactions and requirements. And also the heap memory and garbage collection
needs to be tuned in a similar manner (of Jmeter.bat) for tcserver too in order to avoid the
crash due to JVM heap memory (since tcserver is also a java based application)
TCServer.sh
nohup java –Xms512M –Xmx1024M -Xcompactexplicitgc -Xrs
-Djava.endorsed.dirs=../lib/endorsed/jaxp13:../lib/endorsed/jaxb13 -jar ../lib/tcserver.jar -d&
And most importantly, we need to have sequential data in T24 to perform simultaneous and
multiple transactions. The following changes needs to be done.
Add a Counter
Setup the Increment and number format as follows (Number format is the format of the counter
variable. For example, if we set 1 as the start and increment 1 with format 00000000, the output of
the counter variable for every iteration (or loop) would be in the following order – 000000001,
000000002, 000000003, 000000004…. )
The values will be in the following sequence for the above example..
PUSER10001, PUSER10002, PUSER10003, PUSER10004…
FT1Web1.jmx FT1.csv