Performance testing of Progress Appservers and a plug-in for Jmeter

Slides:



Advertisements
Similar presentations
Server Access The REST of the Story David Cleary
Advertisements

Performance Testing - Kanwalpreet Singh.
Database System Concepts and Architecture
AHRT: The Automated Human Resources Tool BY Roi Ceren Muthukumaran Chandrasekaran.
Snejina Lazarova Senior QA Engineer, Team Lead CRMTeam Dimo Mitev Senior QA Engineer, Team Lead SystemIntegrationTeam Telerik QA Academy SOAP-based Web.
Why python? Automate processes Batch programming Faster Open source Easy recognition of errors Good for data management What is python? Scripting programming.
Application Architecture T H E S O C R A T E S G R O U P, I N C.
DEV-13: You've Got a Problem, Here’s How to Find It
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
JMeter Workshop Friday 1 December 2006 Anthony Colebourne IT Services The University of Manchester.
Care and Feeding of the Pacific Application Server for OpenEdge in Production David Cleary Principal Software Engineer Progress Software.
DEV-14: Understanding and Programming for the AppServer™
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Apache Jakarta Tomcat Suh, Junho. Road Map Tomcat Overview Tomcat Overview History History What is Tomcat? What is Tomcat? Servlet Container.
Overview SAP Basis Functions. SAP Technical Overview Learning Objectives What the Basis system is How does SAP handle a transaction request Differentiating.
What’s new in Progress Developer Studio for OpenEdge 11.0?
Load Test Planning Especially with HP LoadRunner >>>>>>>>>>>>>>>>>>>>>>
Client/Server Architectures
A New Object Model for WebSpeed and HTTP
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Apache JMeter By Mohamed Talaat
DONE-10: Adminserver Survival Tips Brian Bowman Product Manager, Data Management Group.
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
SOA-12: Integrate over the Web with OpenEdge® Web Services
OXygen XML Editor Support for eXist DB XQuery debugging. Stefan Vasile
DEV-5: Introduction to WebSpeed ® Stephen Ferguson Sr. Training Program Manager.
Introduction to the Adapter Server Rob Mace June, 2008.
V. Serbo, SLAC ACAT03, 1-5 December 2003 Interactive GUI for Geant4 by Victor Serbo, SLAC.
What is Sure Stats? Sure Stats is an add-on for SAP that provides Organizations with detailed Statistical Information about how their SAP system is being.
Kuali Enterprise Workflow Kuali Days – November 2008 Scott Gibson, University of Maryland Bryan Hutchinson, Cornell University James Smith, University.
INT-5: Integrate over the Web with OpenEdge® Web Services
Tool Integration with Data and Computation Grid GWE - “Grid Wizard Enterprise”
SOA-3: You Need to Integrate, But What do You Need to Know and Do? Bob Trabucchi Sr Presales Consultant Sandy Caiado Sr Presales Consultant.
Apache JMeter By Lamiya Qasim. Apache JMeter Tool for load test functional behavior and measure performance. Questions: Does JMeter offers support for.
ARCH-07: Implementing the OpenEdge™ Reference Architecture – Part 2
Test Automation For Web-Based Applications Portnov Computer School Presenter: Ellie Skobel.
1 Java Servlets l Servlets : programs that run within the context of a server, analogous to applets that run within the context of a browser. l Used to.
A New Object Model for WebSpeed and HTTP
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
IT System Administration Lesson 3 Dr Jeffrey A Robinson.
How to combine IRIS products Available APIs Examples of integrations Ole Andersen Senior Strategic Account Manager.
Performance Testing Test Complete. Performance testing and its sub categories Performance testing is performed, to determine how fast some aspect of a.
Reconfigurable Communication Interface Between FASTER and RTSim Dec0907.
TM 8-1 Copyright © 1999 Addison Wesley Longman, Inc. Client/Server and Middleware.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
Software Architecture in Practice Mandatory project in performance engineering.
ECHO Technical Interchange Meeting 2013 Timothy Goff 1 Raytheon EED Program | ECHO Technical Interchange 2013.
Google Code Libraries Dima Ionut Daniel. Contents What is Google Code? LDAPBeans Object-ldap-mapping Ldap-ODM Bug4j jOOR Rapa jongo Conclusion Bibliography.
Mind Q Systems Leaders in Training /7, 2nd Floor, Srinivasa Nagar Colony (W) Above HDFC Bank, S.R. Nagar Hyderabad Tel : /92.
SpeedScript to Stylish UI with PAS for OE WebHandlers Irfan Pasha Syed 06/26/2016.
Introduction  Model contains different kinds of elements (such as hosts, databases, web servers, applications, etc)  Relations between these elements.
Edsel Garcia Shelley Chase Fantastic Web Apps in 11.6 WebSpeed in the Pacific AppServer for OpenEdge.
Version 0.1 Draft – For Review Murali Mohan Murthy
242: Get Your Head in the Cloud!
Netscape Application Server
Software Architecture in Practice
Understanding SOAP and REST calls The types of web service requests
CSC 480 Software Engineering
#01 Client/Server Computing
Performance Load Testing Case Study – Agilent Technologies
Ch > 28.4.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
End-to-End REST Service Testing Automation
Lecture 1: Multi-tier Architecture Overview
C6: Introducing Native Invocation with the OpenEdge® Adapter for Sonic™ ESB Chris James Senior Consultant.
Consuming Web Services with 2E Generated Objects
Performance/Load/Stress Testing
#01 Client/Server Computing
Presentation transcript:

Performance testing of Progress Appservers and a plug-in for Jmeter Syed Irfan Pasha Progress Software

Vs ?   Existing features New features k Functionality User Interface Performance k ?   Vs Existing features New features

Performance testing of Appservers Agenda Performance testing of Appservers OpenEdge Plug-in “in” Jmeter Demo

Process followed for OpenEdge Appservers Performance testing Emphasizing more on Process than the numbers Process Scenarios Measurement Beyond Performance Process followed by PSC Statistics we get out of our Performance tests Different types of tests and their significance Siblings of Performance like Load, Endurance etc..

Components involved and factors measured OpenEdge ABL Jmeter for SOAP and REST Java OpenClient Clients Transports Appservers Operating Modes Session-Managed Session-free Client Execution time Agent Execution time Throughput Resource Utilization Network I/O Performance Parameters Direct/Nameserver AIA/APSV REST & SOAP Classic PAS for OE

Types of tests followed OpenEdge Appserver OpenEdge Clients OpenEdge ABL Client C R U D OpenEdge DB OpenEdge Appserver CRUD Operation Database transactions with datasets Datasets transfer to-fro ATM tests Not the real one

1 Types of tests - ATM OpenEdge Appserver OpenEdge ABL Client C R OpenEdge Clients OpenEdge ABL Client C R U D OpenEdge DB OpenEdge Appserver Adds, deletes and modifies accounts. Measures the number of transactions completed and the average seconds for each transaction Transaction times are measured at the AppServer agent not at the client. Measure - Transactions per sec(TPS) 1

Types of tests – CRUD Operation OpenEdge Appserver OpenEdge Clients OpenEdge ABL Client C R U D OpenEdge DB OpenEdge Appserver Huge datasets performing CRUD operations Runs for all transports ( Direct/Nameserver, AIA/APSV, REST and SOAP) Measure execution time at the Client & Resource Utilization of all servers Measure - Average client execution time in millisec 2

Types of tests – Dataset transfer OpenEdge Appserver OpenEdge Clients OpenEdge ABL Client C R U D OpenEdge DB OpenEdge Appserver 3 Huge payloads of datasets from Client to Appserver to and fro Measures Client execution time and Resource Utilization Measure - Average client execution time in millisec

Types of tests – Summary OpenEdge Appserver OpenEdge Clients OpenEdge ABL Client C R U D OpenEdge DB OpenEdge Appserver All tests run for single-client and multiple concurrent clients Each test has its own significance Combined, we could get different Performance Statistics and perform various kinds of Performance testing 1 2 3

More than Performance tests Profiling Webserver & Agent Compression With various payloads/network Endurance Testing Running for more than a week Load testing Load by Payload/Clients Garbage Collection Running with different collectors

Performance Results - Good CRUD - PAS for OE Response times (%) Improvement 11.5.1 10% 48% 28% 21% PAS OE Vs Classic (APSV Direct) Create Update Read Delete Initial runs 52% 30% 25% 22% % PASOE slower than Classic % PASOE faster than Classic MS-Agent = 8X Classic-Agent ATM Tests (faster) Does not apply to the Client Response time PASOE – 1 Agent / n sessions Classic – n Agents

Performance Results – Bad & Ugly Dataset Transfer to & fro CRUD - SOAP Transport 2 X PASOE = Classic 1281 1263 1029 22% Response time in millisec Vs Create Update Read Delete APSV Classic - Direct AIA Working on HTTP transport to boost Performance PASOE-SOAP 11.5.1 is 10% faster than 11.5

OpenEdge Apserver Performance tool Expectations from a OpenEdge Appserver Performance tool Performance tool/utility that could be seamlessly easy to run ABL business logic over OE-Transport Should be very easy to parse/validate the request or response Parameterization and concurrent clients execution capabilities Accurate Calculations Integration Platform Independent Concurrency Robust Framework Above all .... Establish confidence that it can be used for Performance testing

Jmeter Considering an Open Source tool and enhancing it Develop everything from scratch Define a Standard Making it Stable Robust Framework Considering a OpenSource tool and extending it Accurate Stats Enhancements to be added to use Jmeter Concurrent Clients OE Adapter in Jmeter OE I/O variable parsing Jmeter-OE Serialization Parameterization for OE GUI for OE OE Response Parser Integration Platform Independent Jmeter

Jmeter and its whereabouts Apache Jmeter Apache Jakarta Project for Performance/load testing of variety of Java Applications(originally) Later added support for various services JDBC,JMS, FTP,LDAP,TCP, HTTP, SOAP & REST Advanced support for monitoring resources and distributing client load remotely Gives all kinds of statistics and reports Features like Assertions, Post Processors, Pre-processors Many functions & scripting options A short tour to Jmeter

Considering Jmeter for the Framework Proven Performance testing tool Mostly used for API’s testing Reliable Calls through Java OpenClient to Appserver Designed Sampler for OpenEdge needs OpenClient in Jmeter Tool without OE install Works on all platforms Easy to use Considering Jmeter Apache Jmeter OpenEdge Application Server OpenEdge Plug-in

Implementing customized basic Java Sampler A custom Java Sampler developed using AbstractJavaSamplerClient Interface

Customized JavaSampler and the Use-case We were expecting more in this Sampler A new GUI Interface with a different functionality Dynamic class reader to parse the input/output variables Dynamic input request file parser for complex datatypes Storing the entire input in one file and passing the input to the sampler in the same format All together, we wanted a new Sampler

Framework in a bigger Picture Jmeter Samplers OpenEdge Appserver HTTP SOAP OpenEdge Response Parser Customized JSON Parser OpenEdge Appserver GUI Interface for OE Sampler Processer OE Client OE Client Response Builder

Testing an OpenEdge Procedure Create Customers & Update Customers Array of Temp-tables - “n” elements

Testing OpenEdge Procedure - Scenarios Execute the dataset procedure Validate the output/response Stop if your validation is failed Pass the output of create to update operation Parameterize tt-1 attributes for “n” elements running with “m” concurrent users for “iter” iterations Parse/get a specific elements attribute value Executing a OpenEdge procedure using “OpenEdge Plug-in for Jmeter” Measure the Performance for every Appserver call with all statistics

Testing OpenEdge Procedure – Scenarios(Cntd..) Parameterize tt-1 attributes for “n” elements running with “m” concurrent users for “iter” iterations Request Payload User-1 User-2 User-3 User-m ............. Dataset ds-1 temp-table tt-1[0] name custnum ............. temp-table tt-1[n] Iterations DO WHILE cnt <= iter /* concurrent users execution */ Assign cnt = cnt + 1. End.

Time for a Demo

Code , Time & Effort

Lines of Code and Statistics 4500 Lines of Code OpenEdge Client Jmeter Samplers 1500 3000 2000 Lines of Code 2 ½ Engineers – 5 Days 2500 Lines of Code 1 ½ Engineers – 30 Days Developing the base framework Make the framework resilient Things were getting complex Adding more features

Just ask ! I am here to answer now and even later isyed@progress.com

Performance Results - Good CRUD - PAS for OE Response times (%) Improvement ATM Tests 11.5.1 PASOE –APSV Vs Classic-Direct Initial runs MS-Agent = 8X Classic-Agent Create Update Read Delete 52% 21% (faster) 30% 10% - Does not apply to the Client Response time 25% 48% 22% 28% % PASOE slower than Classic % PASOE faster than Classic PAS for OE(MS-Agent with n sessions) = Classic n Agents