第1篇 性能测试基础篇
第1章 性能测试基础 2
1.1 性能测试的重要意义 2
1.1.1 功能测试和性能测试 3
1.1.2 项目组不同角色眼中的软件性能 3
1.1.3 1秒的性能对于顾客的意义 4
1.2 软件性能的生命周期 4
1.2.1 需求阶段的性能分析 4
1.2.2 设计开发阶段的性能分析与验证 5
1.2.3 系统测试阶段的性能验证与优化 6
1.3 软件性能认知 7
1.3.1 什么是软件性能 7
1.3.2 影响软件性能的因素 8
1.3.3 软件性能测试目标 9
1.3.4 性能测试术语 10
1.3.5 网络协议 12
1.3.6 HTTP协议 13
1.3.7 协议分析工具 16
1.3.8 性能测试工程师的素质要求 20
1.4 性能测试框架 22
1.4.1 性能测试工具原理 22
1.4.2 Controller的简单设计 23
1.4.3 Agent的简单设计 25
1.4.4 虚拟用户的产生 29
第2章 性能测试流程 31
2.1 性能需求调研 32
2.1.1 性能测试需求分析 33
2.1.2 性能需求清晰吗 34
2.1.3 “不成文的”性能需求定义 34
2.1.4 业务模型调研 35
2.1.5 业务数据分析方法 36
2.1.6 业务数据分析工具的使用 37
2.1.7 性能指标调研 40
2.2 性能测试策划阶段 41
2.2.1 性能测试方案 44
2.2.2 性能测试计划 45
2.2.3 性能测试工具选型 46
2.2.4 性能测试策略 46
2.2.5 测试辅助诊断分析工具 48
2.3 性能测试环境搭建 52
2.3.1 ASP/ASP.NET性能测试环境搭建 53
2.3.2 LAMP性能测试环境搭建 55
2.3.3 J2EE性能测试环境搭建 59
2.4 性能测试执行过程与性能报告 61
2.4.1 性能测试执行过程 61
2.4.2 性能测试报告 62
第2篇 性能测试工具篇
第3章 LoadRunner脚本开发 66
3.1 LoadRunner工具简介 66
3.1.1 LoadRunner综述 66
3.1.2 LoadRunner安装 67
3.1.3 LoadRunner的安装部署常见问题 70
3.1.4 LoadRunner组件 71
3.1.5 LoadRunner支持的协议 72
3.1.6 LoadRunner支持的脚本语言 73
3.1.7 LoadRunner的基本使用步骤 74
3.2 LoadRunner脚本设计基础——C语言 77
3.2.1 C语言简介 77
3.2.2 C语言的特点 78
3.2.3 学习C语言 80
3.3 LoadRunner脚本开发与维护 81
3.3.1 使用VUGen录制脚本 81
3.3.2 录制IE浏览器常见问题的解决方法 84
3.3.3 如何选择协议 85
3.3.4 LoadRunner脚本调试技巧 87
3.3.5 事务定义和划分 90
3.3.6 检查点的使用 92
3.3.7 关联取值 94
3.3.8 关联的应用例子 97
3.3.9 参数化使用 98
3.3.10 参数化数据的准备 101
3.3.11 关于参数化数据连接数据库的看法 106
3.3.12 思考时间 107
3.3.13 LoadRunner思考时间与事务响应时间 108
3.3.14 HTML-based与URL-based录制方式的区别 108
3.3.15 脚本结构设计 113
3.4 虚拟用户协议脚本设计与常用函数使用 116
3.4.1 LoadRunner字符串操作函数 116
3.4.2 自定义字符串函数 119
3.4.3 目录、文件操作函数 122
3.4.4 编写自定义格式的HTTP请求 126
3.4.5 调用DLL 127
3.4.6 事务相关函数 128
第4章 LoadRunner场景设计与运行 132
4.1 场景分析与计划 132
4.1.1 分析被测试系统的组成 132
4.1.2 描述系统配置 133
4.1.3 分析用户使用模式 133
4.1.4 分析任务的分布情况 134
4.1.5 测试类型与测试场景 134
4.1.6 选择度量响应时间的范围 134
4.1.7 定义用户活动 136
4.1.8 选择测试环境 136
4.2 Controller的使用 137
4.2.1 手工场景设计 137
4.2.2 场景调度设计 140
4.2.3 压力负载机自动均衡 142
4.2.4 使用IP欺骗 142
4.2.5 面向目标的场景设计 145
4.2.6 服务水平协议(SLA) 148
4.2.7 集合点的使用 150
4.2.8 Controller中运行界面Stopped和Passed的区别 152
4.2.9 场景运行错误分析:120秒超时问题的
定位分析 153
第5章 LoadRunner测试结果分析 154
5.1 LoadRunner测试数据分析 154
5.1.1 虚拟用户图 155
5.1.2 事务图 157
5.1.3 Web资源图 158
5.2 Analysis测试结果分析 160
5.2.1 90%响应时间 160
5.2.2 页面细分图 162
5.2.3 使用Analysis生成测试报告 164
第3篇 性能问题诊断分析篇
第6章 Web服务性能问题诊断分析 166
6.1 Web服务器架构与Apache 166
6.2 Apache性能监控 167
6.3 Apache性能计数器 170
6.4 Apache日志监控 170
6.5 MPM对Apache性能的影响 171
6.6 调整MaxClients 172
6.7 调整MaxSpareServers 174
6.8 KeepAlive的配置 175
6.9 mod_cache的应用 176
6.10 卸载未使用的Apache模块 178
第7章 应用服务性能问题诊断分析 179
7.1 应用服务器架构分析 179
7.2 Tomcat性能监控分析 180
7.2.1 Tomcat性能监控方法 181
7.2.2 Tomcat与JVM优化 195
7.2.3 Tomcat与内存泄漏 196
7.2.4 maxThreads:连接线程数监控与调整 196
7.2.5 connectionTimeout:连接超时的设置 198
7.2.6 acceptCount:最大排队数的设置 199
7.2.7 Tomcat Native library(APR)的配置 200
7.2.8 Connector:连接器的配置 202
7.3 WebLogic中间件性能监控分析 203
7.3.1 Session监控 204
7.3.2 WebLogic的Session持久化 207
7.3.3 WebLogic线程数的监控 208
7.3.4 JDBC连接数监控与调优 210
7.3.5 JDBC连接池泄漏问题检测 215
7.3.6 WebLogic的JVM监控分析 218
7.4 WebSphere中间件性能监控分析 222
7.4.1 WebSphere性能监控方法 223
7.4.2 WebSphere的Session监控与分析 226
7.4.3 WebSphere线程数的监控与分析 227
7.4.4 WebSphere的JDBC连接数监控 228
7.4.5 WebSphere的JVM监控分析 231
第8章 数据库服务性能问题诊断分析 234
8.1 Oracle性能监控方法 234
8.1.1 在LoadRunner中配置监控Oracle 235
8.1.2 使用SiteScope监控Oracle 239
8.1.3 使用Oracle企业管理器查看数据库性能 240
8.1.4 使用SpotLight监控数据库性能 241
8.2 Oracle性能分析与诊断 247
8.2.1 排序对Oracle性能的影响 247
8.2.2 Buffer Cache Hit Ratio诊断 248
8.2.3 优化Oracle软解析率 249
8.2.4 诊断Oracle的CPU使用率 253
8.2.5 跟踪诊断和优化SQL语句 254
8.2.6 Oracle索引问题诊断与优化 257
第9章 应用代码性能诊断分析 261
9.1 内存泄漏诊断分析 261
9.1.1 代码书写问题导致内存泄漏 261
9.1.2 堆栈内存泄漏检测 263
9.1.3 Java代码内存泄漏检测 265
9.1.4 使用JProfile跟踪内存泄漏 273
9.2 JVM内存泄漏诊断分析 280
9.2.1 JVM原理与监控 281
9.2.2 JVM启动参数介绍 283
9.2.3 JVM性能瓶颈诊断分析 285
9.2.4 JVM内存泄漏实例一:PermGen溢出 285
9.2.5 JVM内存泄漏实例二:Heap溢出 286
9.2.6 JVM内存泄漏实例三:
垃圾回收时promotion failed 286
9.3 Servlet常见性能问题分析与优化 289
9.3.1 Servlet中利用init()方法进行高速缓存 290
9.3.2 Servlet压缩输出 293
9.4 JSP常见性能问题分析与优化 295
9.4.1 选择正确的页面包含机制 296
9.4.2 屏蔽Page Session 296
9.4.3 正确地确定JavaBean的生命周期 299
9.4.4 控制Session的时间 300
9.5 p6spy监控和跟踪SQL语句 301
9.6 Log4j性能诊断与优化 306
9.7 代码效率性能测试与优化 311
第10章 操作系统性能问题诊断分析 318
10.1 Windows性能监控 318
10.1.1 LoadRunner监控远程机器Windows资源 319
10.1.2 Windows资源监控计数器 320
10.2 Linux/UNIX性能监控 322
10.2.1 LoadRunner结合rstatd监控 323
10.2.2 Glance监控命令在HP UX上的使用 325
10.3 开源系统监控工具的使用 330
10.3.1 Nmon 330
10.3.2 Cacti 332
10.4 内存使用监控及性能诊断分析 335
10.4.1 使用free监控Linux内存 335
10.4.2 使用vmstat监控Linux虚拟内存 338
10.5 CPU使用监控及性能诊断分析 339
10.5.1 使用top监控CPU 339
10.5.2 Load averages监控分析 342
10.5.3 使用vmstat监控CPU 342
10.6 I/O使用监控及瓶颈分析 343
10.6.1 使用collectl监控I/O 344
10.6.2 使用iotop监控I/O 345
10.6.3 Linux下的I/O瓶颈诊断分析 346
10.7 网络监控及瓶颈分析 348
10.7.1 使用netstat监控网络 349
10.7.2 使用iptraf监控网络 350
10.7.3 Windows网络性能分析 352
10.7.4 Linux网络性能分析 354
附录 参考书目和资源 357
· · · · · · (
收起)