Professional Documents
Culture Documents
DEVCON08 Web ServiceTesting
DEVCON08 Web ServiceTesting
Non Goals
Compare the performance of web services to other distribution technologies
Presentation Outcomes
At the end of the session, participants will be able to do the following:
Get acquainted with the important steps in a software performance engineering methodology Apply load generation and profiling tools in the performance testing and optimization of web service interfaces
POs are usually specified in: response time, Throughput, Resource Utilization, workload Integrate performance engineering into software development process
Requirement Development
- Assess Performance Risk - Mitigate Performance Risk -Identify critical se cases for Analysis - Establish performance objectives
Design
Development
-Profile the critical scenarios to identify inefficient executions - Code Review - Identify scalability issues in time - Develop Performance Data Model
Testing
- Performance Verification Testing - Regression Testing - Focused Testing - Benchmarking & Certification - Platform and Advanced Configurations - Sizing & Capacity Guidance
Profilers
No
Is Performance OK?
Report Result!
Yes
Web Services
a software system designed to support interoperable machine to machine interaction over a network. Uses open standards like XML, SOAP, WSDL Web-service based applications are applications built by using web services provided by third-parties.
loadContent
loadContent
Web Service
Why we need to measure web service performance? Clients need to know the response time, throughput of the APIs Multiple service providers offering same or similar service take advantage SPs need to know the resource demands of the APIs at different workloads
Client Side: client side monitoring or distributed load testing can be used to gather data. Important parameters are:
Latency (WS processing time + network latency). This is the time taken for a service call to return the earliest response bytes Throughput (the average byte flows per unit of time, including latency) Error rate (identifies the dependability of the service)
JMeter (1)
Apache Jakarta Project Used as a unit test for database connections, web services, FTP, LDAP, JMS, etc. Configuring JMeter for a web service test plan
Thread Group
No. of users to simulate Ramp-up period
JMeter (2)
JMeter (3)
soapUI
A java-based web service testing tool Used for inspecting, invoking, developing, simulating, mocking, and load-testing web services
soapUI
Specific to web services Has a more user friendly IDE Doesnt support distributed load testing Plug-in support for most IDEs including Eclipse Automation support (Groovy scripting)
Profilers
There are a number of open source and commercial profilers Profiling helps in finding: - Performance bottlenecks - Excessive memory consumption - Memory leaks Profiling Web Services
Web services might be available in different ways.
Developed from scratch Java classes, business components (e.g. EJB) are turned into web services
Eclipse TPTP
TPTP - Test & Performance Tools Platform Can be used to profile local Java applications, complex applications running on multiple hosts, and Eclipse plug-ins Installations & Configuration
Easier with the Eclipse Europa Version
Pros: a free plug-in for Eclipse Cons: tightly integrated with the Eclipse Project
JProbe
Offers memory analysis, performance analysis, and code coverage Can profile J2EE and J2SE based applications Can profile JUnitPerf tests Can be integrated with Eclipse
JProbe Method List View Snapshot (an example from Blackboard data generator tool)
Method Cumulative Time Method Time
Package
No. of Calls
Cumulative Objects
Method Objects
Summary
SPE integrates performance engineering into the software development process Clients and Service providers need to know the performance of web services for a number of reasons. Web service performance metrics are classified as client-side and server-side. Important parameters are: latency, throughput, and error rate. Load generators are used together with profiling tools to measure and optimize the performance of web service based applications.
References
http://jakarta.apache.org/jmeter/ http://www.soapui.org/