Cover
Table of Contents
Preface
Audience
About This Book
Conventions Used in This Book
Glossary
Using Code Examples
Safari® Books Online
How to Contact Us
Acknowledgments
Why Performance Test?
What Is Performance? The End-User Perspective
Performance Measurement
Performance Standards
The World Wide Web and Ecommerce
Bad Performance: Why It’s So Common
The IT Business Value Curve
Performance Testing Maturity: What the Analysts Think
Lack of Performance Considerations in Application Design
Performance Testing Is Left to the Last Minute
Scalability
Underestimating Your Popularity
Performance Testing Is Still an Informal Discipline
Not Using Automated Testing Tools
Application Technology Impact
Summary
Choosing an Appropriate Performance Testing Tool
Performance Testing Tool Architecture
Choosing a Performance Testing Tool
Performance Testing Toolset: Proof of Concept
Proof of Concept Checklist
Summary
The Fundamentals of Effective Application Performance Testing
Making Sure Your Application Is Ready
Allocating Enough Time to Performance Test
Obtaining a Code Freeze
Designing a Performance Test Environment
Virtualization
Cloud Computing
Load Injection Capacity
Addressing Different Network Deployment Models
Environment Checklist
Software Installation Constraints
Setting Realistic Performance Targets
Consensus
Performance Target Definition
Network Utilization
Server Utilization
Identifying and Scripting the Business-Critical Use Cases
Use-Case Checklist
Use-Case Replay Validation
What to Measure
To Log In or Not to Log In
Peaceful Coexistence
Providing Test Data
Input Data
Target Data
Session Data
Data Security
Ensuring Accurate Performance-Test Design
Principal Types of Performance Test
The Load Model
Think Time
Pacing
Identifying the KPIs
Server KPIs
Network KPIs
Application Server KPIs
Summary
The Process of Performance Testing
Activity Duration Guidelines
Performance Testing Approach
Step 1: Nonfunctional Requirements Capture
Step 2: Performance Test Environment Build
Step 3: Use-Case Scripting
Step 4: Performance Test Scenario Build
Step 5: Performance Test Execution
Step 6: Post-Test Analysis and Reporting
Case Study 1: Online Banking
Application Landscape
Application Users
Step 1: Pre-Engagement NFR Capture
Step 2: Test Environment Build
Step 3: Use-Case Scripting
Step 4: Performance Test Build
Step 5: Performance Test Execution
Online Banking Case Study Review
Case Study 2: Call Center
Application Landscape
Application Users
Step 1: Pre-Engagement NFR Capture
Step 2: Test Environment Build
Step 3: Use-Case Scripting
Step 4: Performance Test Scenario Build
Step 5: Performance Test Execution
Call Center Case Study Review
Summary
Interpreting Results: Effective Root-Cause Analysis
The Analysis Process
Real-Time Analysis
Post-Test Analysis
Types of Output from a Performance Test
Statistics Primer
Response-Time Measurement
Throughput and Capacity
Monitoring Key Performance Indicators
Server KPI Performance
Network KPI Performance
Load Injector Performance
Root-Cause Analysis
Scalability and Response Time
Digging Deeper
Inside the Application Server
Looking for the Knee
Dealing with Errors
Baseline Data
Analysis Checklist
Pre-Test Tasks
Tasks During Test Execution
Post-Test Tasks
Summary
Performance Testing and the Mobile Client
What’s Different About a Mobile Client?
Mobile Testing Automation
Mobile Design Considerations
Mobile Testing Considerations
Mobile Test Design
On-Device Performance Not in Scope
On-Device Performance Testing Is in Scope
Summary
End-User Experience Monitoring and Performance
What Is External Monitoring?
Why Monitor Externally?
External Monitoring Categories
Active Monitoring
Output Metrics
ISP Testing Best Practices
Synthetic End-User Testing Best Practices
Passive Monitoring
How Passive Monitoring Works
Pros and Cons of Active Versus Passive Monitoring
Active Pros
Active Cons
Passive Pros
Passive Cons
Tooling for External Monitoring of Internet Applications
Tool Selection Criteria
Active Monitoring Tooling
Passive Monitoring Tooling
Creating an External Monitoring Testing Framework
Building Blocks of an Effective Testing Framework
Specific Design Aspects of Active Monitoring
Specific Design Aspects of Passive Monitoring
Isolating and Characterizing Issues Using External Monitoring
Monitoring Native Mobile Applications
Essential Considerations for CDN Monitoring
Performance Results Interpretation
Key Performance Indicators for Web-Based Ecommerce Applications
Setting KPI Values
The Application Performance Index (APDEX)
Management Information
Data Preparation
Statistical Considerations
Correlation
Effective Reporting
Competitive Understanding
Visitor performance map
Alerting
Gotchas!
Summary
Integrating External Monitoring and Performance Testing
Tooling Choices
Active and Passive Integration with Static Performance Testing
Passive and Performance Testing
RUM and APM
Integration of Active Test Traffic with APM Tooling
Active External Monitoring and Performance Testing
Test Approach
Test Scheduling
Performance Testing of Multimedia Content
End-User Understanding in Non-Internet Application Performance Tests
Useful Source Materials
Summary
Application Technology and Its Impact on Performance Testing
Asynchronous Java and XML (AJAX)
Push Versus Pull
Citrix
Citrix Checklist
Citrix Scripting Advice
Virtual Desktop Infrastructure
HTTP Protocol
Web Services
.NET Remoting
Browser Caching
Secure Sockets Layer
Java
Oracle
Oracle Two-Tier
Oracle Forms Server
Oracle Checklist
SAP
SAP Checklist
Service-Oriented Architecture
Web 2.0
Windows Communication Foundation and Windows Presentation Foundation
Oddball Application Technologies: Help, My Load Testing Tool Won’t Record It!
Before Giving Up in Despair . . .
Alternatives to Capture at the Middleware Level
Manual Scripting
Summary
Conclusion
Appendix A. Use-Case Definition Example
Appendix B. Proof of Concept and Performance Test Quick Reference
The Proof of Concept
POC Checklist
Performance Test Execution Checklist
Activity Duration Guidelines
Step 1: Pre-Engagement NFR Capture
Step 2: Test Environment Build
Step 3: Scripting
Step 4: Performance Test Build
Step 5: Performance Test Execution
Step 6 (Post-Test Phase): Analyze Results, Report, Retest If Required
Analysis Checklist
Pre-Test Analysis Tasks
Tasks During Test Execution
Post-Test Tasks
Appendix C. Performance and Testing Tool Vendors
Application Performance Management
End-User Experience and Website Monitoring
Functional Testing
Performance Testing
Open Source
SaaS Performance Testing
Requirements Management
Open Source
Appendix D. Sample Monitoring Templates: Infrastructure Key Performance Indicator Metrics
Generic KPI Templates
Windows OS : Generic KPI Template
Linux/Unix: Generic KPI Template
Application-Specific KPI Templates
Windows OS: MS SQL Server KPI Template
Appendix E. Sample Project Plan
Index