TeamQuest Capacity Modelling on PHP Application Neoload and Oracle Apps February 2012 Proof of Concept Neoload is the Performance Testing tool implemented on Java. This tool can be used to record the traffic between the Browser and the Server and simulate load with multiple users. By Shital Nanna & Pavithra M Performance Engineering CoE team BUSINESS APPLICATION SERVICES WIPRO TECHNOLOGIES
Contents Neoload and Oracle Apps - Introduction... 3 Performance Scripting Approach... 3 Configure the Neoload Tool...3 Scenario used for Oracle Apps Scripting...4 Record Oracle Applications...5 Script Anatomy...7 Request Body... 7 Response Body... 7 Customizing the Performance Script...8 Process Correlation... 8 Process - Parameterization... 9 Process Validation [Check Virtual User]... 10 Test Execution...11 Report Generation...12 Challenges Faced and Guidelines...12 Productivity Factor...13 Appendix... 15 References...15 About Authors... 15 About Wipro Technologies... 16 2
Neoload and Oracle Apps - Introduction Oracle Applications provides an ERP suite that covers various modules which an Enterprise will be using for their proper functioning. Neoload is the performance testing tool to measure the performance of the web applications and provide pragmatic solutions to developers to help optimize performance before the application goes into production on the web application Neoload works by simulating traffic up to thousands of users in order to determine application performance under load, effectively analyzing response times and the number of the simultaneous users which the web application is able to handle. Neoload monitors the newest web, database and application servers such as JBoss application server, HP-UX 11, Weblogic, WebSphere, Tomcat, and MySQL database. Performance Scripting Approach A procedural approach is followed to perform this activity. The approach is represented diagrammatically below: Configure the Neoload Tool The following configurations were done to setup the Neoload ready for Oracle Apps Performance Testing 1. Copy the latest version of frmall.jar to the Neoload machine (Neoload\lib\plugins\ext\frmall.jar) 2. Update the JAR file in the CLASSPATH (under Environment Variables) Note: This is to ensure that the XML request and XML response are visible properly which allows the customization 3. Open the Neoload Tool 3
Scenario used for Oracle Apps Scripting The scenario Create Miscellaneous Transaction was used to script using Neoload performance Tool. The step-by-step navigation is in tabulated below: Create Miscellaneous Transaction TRANSACTIONS STEPS DATA Oracle_Apps_Launch Launch URL - http://patorasrvr.wipro.com:8000/oa_html/rf.jsp?functio n_id=1032925&resp_id=-1&resp_appl_id=- 1&security_group_id=0&lang_code=US¶ms=IBV5Xazm.o pt.fx7q2qjlxb2udxqy3pjjjxzod58iww Oracle_Apps_Login Enter the Username and the Password pavithra perf@123 T01_Navigator T02_Select_Organizati on T03_Inventory T04_Miscellaneous_Tr ansaction T05_Miscellaneous_Iss ue T06_Account T07_View_Count T08_View_Miscellane ous_issue 1.Click on the Inventory 2.Click on the Material Transaction Select an Organization 1.Click on Transaction 2.Click on Miscellaneous Transaction 3.Click on Open In the Miscellaneous Transaction Window 1.Enter date 2.Enter Type 3.Click on Transaction Lines In the Miscellaneous Issue Window 1.Enter Item 2.Enter Sub inventory 3.Enter Units of Measure(UOM) 4.Enter the Quantity 5.Check the On Hand quantity in available text box In the Operation Accounting Flex Window 1. Enter Department 2. Enter Account and click on ok 3.Go to file and then save 1.Close the Miscellaneous Issue Window 2.In the Miscellaneous Transaction Window enter date and type 3.Click on Transaction Lines In the Miscellaneous Issue Window 1.Enter Item 2.Enter Sub inventory 3.Check the On Hand quantity in available text box 4 VI-Vision Operations Miscellaneous Issue 1001 Stores Ea-(Each) 1 000-(No Department) 1001-(Asset) Miscellaneous Issue 1001 Stores
Oracle_Apps_Logout 1.Go to File-->Close The Form 2.Go to File-->Exit Oracle Application 3.Click on Logout Record Oracle Applications Once the configuration is done, the Neoload is ready for Oracle Apps scripting. The HTTP is selected for recording. Note: As a best practice, it was ensured the cookies were cleared before starting the recording 1. Created a Container called T01_Launch as the 1 st transaction for the application Launch 2. Created a Container called T01_Login 5
3. Created a Container called T05_Miscellaneous_Issue and committed a transaction of type Miscellaneous Issue. On successful commit, the Quantity on Hand is reduced by the quantity configured in the Transaction. 4. After saving the form, review the Quantity available by revisiting the page and searching for the Item / Sub inventory combination. This is for validation. 5. After finishing the recording Neoload finalizes the recording process and script is generated 6. In post recording wizard selected Skip this step option and clicked on finish 6
Script Anatomy Request Body The request that is sent from the browser through the thick client (Java Applet) is in the form of XML. The XML request for a typical request Save Miscellaneous Transaction is found below: Response Body The response from the Oracle Apps web server is also in XML format as received by the Java Applet and rendered on the browser. A typical XML response for the event Tabbing next from the subinventory which retrieves the Available quantity and On-hand quantity is displayed below: 7
Customizing the Performance Script Process Correlation After recording of the script done the correlation was done for the dynamic value icx_ticket as below: 1. Used Flags for checking where exactly the icx_ticket value is present 2. Selected the request for the first occurrence for icx_ticket 3. In Recorded response tab found the icx_ticket value 4. After that in Variable Extrator created a new variable a called icx for extracting the value 8
5. Replaced the dynamic value of icx_ticket with created variable extractor (icx) 6. In the same way done the correlation for jsessionid to extract its dynamic value Process - Parameterization Done parameterization for login with two different users as below: 1. First created the.csv file in which gave two usernames 2. Then created a new variable called Login with varibale type as File 9
3. Replaced the username with created variable Process Validation [Check Virtual User] The following steps were followed for validating the functionality executed by the script. 1. Correlated the Quantity on Hand before and after. The variables were named as Qty_Before and Qty_After 2. Added the Java script to the script which prints the value of Qty_Before and Qty_After 10
3. Checked the script by executing once using Check Virtual User button 4. Validated the output message in the log as printed through the Java script. If they Qty_After is reduced on virtue of running the script ( Create Misc Transaction ), the script is successful. Test Execution Configure the settings in Runtime to run the test for 2 users 4 iterations 11
Report Generation After execution of the test report will be generated in Reports tab by selecting Generate Report button Challenges Faced and Guidelines The following challenges were faced during the Proof of concept S.No Challenge Mitigation 1 Identifying the values that should be extracted (correlated) 12 Run the check VU and look at the result. If there are errors, select the related pages, there must dynamic content (or just on the
2 The request body was not displaying XML rather a junk characters page before). Also, another way is to make two similar records and comparing the parameters. <frmall.jar in the class path> from OracleHome in Neoload installation folder 3 Scripts created using the commercial license cannot be customized and saved in the computer that has non-commercial license This is the licensing feature of Neoload Acquiring the Commerical license is the only choice Productivity Factor Since the Request and Responses are in XML format, the following advantages are present in Neoload scripting. These advantages improve the productivity and maintenance factor. This comes handy if there are multiple roll-outs in Oracle Applications. Page Screenshot display after the recording - For each page/request, the snapshot taken while recording is displayed when the user traverses across the scripts. This allows the performance test engineer to find out the place which response to be extracted (correlated). This snapshot feature is seldom available in other commercial tools. Readability of scripts this is the biggest advantage and well displayed compared to any other commercial performance testing tools since the Request and Responses are visible as XMLs 13
Recording the scripts is significantly faster this is because, the Neoload tool does not hook-up inside the browser process which will cause more CPU overheads and larger Memory footprint. Instead, the Neoload tool acts as a proxy between the Client and the Server trapping all the requests that traverse between them Ease of Variable Extraction- 1. The validation of extraction configuration is instantly visible which allows the performance test engineer to check what value was retrieved using the Starting with and Ending with configurations 14
2. The usage of variables (both inclusive the static and dynamic) is very easy and syntax mistakes can be avoided due to the context-sensitive drop-down JavaScript feature for customization - Any client-side logic that happens at the java applet can be incorporated using the JavaScript feature of the Neoload. However, this was not done in the test case that was picked up for this proof of concept Shared Container feature - The common transactions like Launch, Login, Select Responsibility can be grouped under shared container which is a common pool for all other Virtual User scripts. Hence, the logins can be parameterized at a central place Neoload is Faster- Factor Neoload Other Performance Tool Recording of the script Variable Extraction (Correlation) For recording of the Create Miscellaneous Transaction scenario it took 20 minutes It is easy with the help of Flags and need to give only Staring with (Left boundary) and Ending with (Right boundary) fields. Took 10 minutes Parameterization For parameterization it took only 5 minutes Checking (Reply) of Replay of the script is comparatively faster the script and took only 2 minutes Appendix References Neoload help Documentation Application specification and Test cases About Authors 15 For recording of the Create Miscellaneous Transaction scenario it took 30 minutes For correlation we have to find where exactly the dynamic value is coming and need to write the code for the same. Took 20 minutes For parameterization it took 5 minutes In other tools replay of the script is slower and took 5 minutes Shital Nanna, is Performance Testing engineer in Wipro Technologies. She is a B.E. in Electronics and Communication Engineering from Pune. Her main areas of expertise are Performance Testing with tools like LoadRunner, Neoload and JMeter across technologies like Web, SAP and Oracle Apps.
Pavithra M, is Performance Testing engineer in Wipro Technologies. She is a B.E. in computer from Coimbatore. Her main areas of expertise are Performance Testing with tools like LoadRunner, Neoload. About Wipro Technologies Wipro is the first PCMM Level 5 and SEI CMMi Level 5 certified IT Services Company globally. Wipro provides comprehensive IT solutions and services (including Systems Integration, IS Outsourcing, Package Implementation, Software Application Development and Maintenance) and Research & Development Services (hardware and software design, development and implementation) to corporations globally. Wipro s unique value proposition is further delivered through our pioneering offshore Outsourcing Model and stringent quality processes of SEI and Six Sigma. Wipro in Testing Services Wipro s Testing Services is the largest offshore independent testing services provider with innovative solutions and differentiated offerings that reduce cycle times and provide quality assurance for software across industry verticals and domains by collaborating with our alliance partners. It has 10+ years of experience in independent Testing Services. It is a horizontal service line in Wipro having testing capabilities across verticals and domains. With 8000+ dedicated testers, the Testing Services Division of Wipro is amongst the largest third party offshore testing service providers in the world. Wipro Technologies Corporate Office: Doddakannelli, Sarjapur Road, Bangalore - 560 035 Phone: +91 (80) 28440011 Fax: +91 (80) 28440256 Copyright 2011. Wipro Technologies. All rights reserved. No part of this document may be reproduced, stored in a retrieval system, transmitted in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without express written permission from Wipro Technologies. Specifications subject without notice. All other trademarks mentioned herein are the property of their respective owners. 16