1.1 性能测试的重要意义
1.1.1 功能测试和性能测试
1.1.2 项目组不同角色眼中的软件性能
1.1.3 1秒的性能对于顾客的意义
1.2 软件性能的生命周期
1.2.1 需求阶段的性能分析
1.2.2 设计开发阶段的性能分析与验证
1.2.3 系统测试阶段的性能验证与优化
1.3 软件性能认知
1.3.1 什么是软件性能
1.3.2 影响软件性能的因素
1.3.3 软件性能测试目标
1.3.4 性能测试术语
1.3.5 网络协议
1.3.6 HTTP协议
1.3.7 协议分析工具
1.3.8 性能测试工程师的素质要求
1.4 性能测试框架
1.4.1 性能测试工具原理
1.4.2 Controller的简单设计
1.4.3 Agent的简单设计
1.4.4 虚拟用户的产生
2.1 性能需求调研
2.1.1 性能测试需求分析
2.1.2 性能需求清晰吗
2.1.3 “不成文的”性能需求定义
2.1.4 业务模型调研
2.1.5 业务数据分析方法
2.1.6 业务数据分析工具的使用
2.1.7 性能指标调研
2.2 性能测试策划阶段
2.2.1 性能测试方案
2.2.2 性能测试计划
2.2.3 性能测试工具选型
2.2.4 性能测试策略
2.2.5 测试辅助诊断分析工具
2.3 性能测试环境搭建
2.3.1 ASP/ASP.NET性能测试环境搭建
2.3.2 LAMP性能测试环境搭建
2.3.3 J2EE性能测试环境搭建
2.4 性能测试执行过程与性能报告
2.4.1 性能测试执行过程
2.4.2 性能测试报告
3.1 LoadRunner工具简介
3.1.1 LoadRunner综述
3.1.2 LoadRunner安装
3.1.3 LoadRunner的安装部署常见问题
3.1.4 LoadRunner组件
3.1.5 LoadRunner支持的协议
3.1.6 LoadRunner支持的脚本语言
3.1.7 LoadRunner的基本使用步骤
3.2 LoadRunner脚本设计基础——C语言
3.2.1 C语言简介
3.2.2 C语言的特点
3.2.3 学习C语言
3.3 LoadRunner脚本开发与维护
3.3.1 使用VUGen录制脚本
3.3.2 录制IE浏览器常见问题的解决方法
3.3.3 如何选择协议
3.3.4 LoadRunner脚本调试技巧
3.3.5 事务定义和划分
3.3.6 检查点的使用
3.3.7 关联取值
3.3.8 关联的应用例子
3.3.9 参数化使用
3.3.10 参数化数据的准备
3.3.11 关于参数化数据连接数据库的看法
3.3.12 思考时间
3.3.13 LoadRunner思考时间与事务响应时间
3.3.14 HTML-based与URL-based录制方式的区别
3.3.15 脚本结构设计
3.4 虚拟用户协议脚本设计与常用函数使用
3.4.1 LoadRunner字符串操作函数
3.4.2 自定义字符串函数
3.4.3 目录、文件操作函数
3.4.4 编写自定义格式的HTTP请求
3.4.5 调用DLL
3.4.6 事务相关函数
4.1 场景分析与计划
4.1.1 分析被测试系统的组成
4.1.2 描述系统配置
4.1.3 分析用户使用模式
4.1.4 分析任务的分布情况
4.1.5 测试类型与测试场景
4.1.6 选择度量响应时间的范围
4.1.7 定义用户活动
4.1.8 选择测试环境
4.2 Controller的使用
4.2.1 手工场景设计
4.2.2 场景调度设计
4.2.3 压力负载机自动均衡
4.2.4 使用IP欺骗
4.2.5 面向目标的场景设计
4.2.6 服务水平协议(SLA)
4.2.7 集合点的使用
4.2.8 Controller中运行界面Stopped和Passed的区别
4.2.9 场景运行错误分析:120秒超时问题的
定位分析
5.1 LoadRunner测试数据分析
5.1.1 虚拟用户图
5.1.2 事务图
5.1.3 Web资源图
5.2 Analysis测试结果分析
5.2.1 90%响应时间
5.2.2 页面细分图
5.2.3 使用Analysis生成测试报告
6.1 Web服务器架构与Apache
6.2 Apache性能监控
6.3 Apache性能计数器
6.4 Apache日志监控
6.5 MPM对Apache性能的影响
6.6 调整MaxClients
6.7 调整MaxSpareServers
6.8 KeepAlive的配置
6.9 mod_cache的应用
6.10 卸载未使用的Apache模块
7.1 应用服务器架构分析
7.2 Tomcat性能监控分析
7.2.1 Tomcat性能监控方法
7.2.2 Tomcat与JVM优化
7.2.3 Tomcat与内存泄漏
7.2.4 maxThreads:连接线程数监控与调整
7.2.5 connectionTimeout:连接超时的设置
7.2.6 acceptCount:最大排队数的设置
7.2.7 Tomcat Native library(APR)的配置
7.2.8 Connector:连接器的配置
7.3 WebLogic中间件性能监控分析
7.3.1 Session监控
7.3.2 WebLogic的Session持久化
7.3.3 WebLogic线程数的监控
7.3.4 JDBC连接数监控与调优
7.3.5 JDBC连接池泄漏问题检测
7.3.6 WebLogic的JVM监控分析
7.4 WebSphere中间件性能监控分析
7.4.1 WebSphere性能监控方法
7.4.2 WebSphere的Session监控与分析
7.4.3 WebSphere线程数的监控与分析
7.4.4 WebSphere的JDBC连接数监控
7.4.5 WebSphere的JVM监控分析
8.1 Oracle性能监控方法
8.1.1 在LoadRunner中配置监控Oracle
8.1.2 使用SiteScope监控Oracle
8.1.3 使用Oracle企业管理器查看数据库性能
8.1.4 使用SpotLight监控数据库性能
8.2 Oracle性能分析与诊断
8.2.1 排序对Oracle性能的影响
8.2.2 Buffer Cache Hit Ratio诊断
8.2.3 优化Oracle软解析率
8.2.4 诊断Oracle的CPU使用率
8.2.5 跟踪诊断和优化SQL语句
8.2.6 Oracle索引问题诊断与优化
9.1 内存泄漏诊断分析
9.1.1 代码书写问题导致内存泄漏
9.1.2 堆栈内存泄漏检测
9.1.3 Java代码内存泄漏检测
9.1.4 使用JProfile跟踪内存泄漏
9.2 JVM内存泄漏诊断分析
9.2.1 JVM原理与监控
9.2.2 JVM启动参数介绍
9.2.3 JVM性能瓶颈诊断分析
9.2.4 JVM内存泄漏实例一:PermGen溢出
9.2.5 JVM内存泄漏实例二:Heap溢出
9.2.6 JVM内存泄漏实例三:
垃圾回收时promotion failed
9.3 Servlet常见性能问题分析与优化
9.3.1 Servlet中利用init()方法进行高速缓存
9.3.2 Servlet压缩输出
9.4 JSP常见性能问题分析与优化
9.4.1 选择正确的页面包含机制
9.4.2 屏蔽Page Session
9.4.3 正确地确定JavaBean的生命周期
9.4.4 控制Session的时间
9.5 p6spy监控和跟踪SQL语句
9.6 Log4j性能诊断与优化
9.7 代码效率性能测试与优化
10.1 Windows性能监控
10.1.1 LoadRunner监控远程机器Windows资源
10.1.2 Windows资源监控计数器
10.2 Linux/UNIX性能监控
10.2.1 LoadRunner结合rstatd监控
10.2.2 Glance监控命令在HP UX上的使用
10.3 开源系统监控工具的使用
10.3.1 Nmon
10.3.2 Cacti
10.4 内存使用监控及性能诊断分析
10.4.1 使用free监控Linux内存
10.4.2 使用vmstat监控Linux虚拟内存
10.5 CPU使用监控及性能诊断分析
10.5.1 使用top监控CPU
10.5.2 Load averages监控分析
10.5.3 使用vmstat监控CPU
10.6 I/O使用监控及瓶颈分析
10.6.1 使用collectl监控I/O
10.6.2 使用iotop监控I/O
10.6.3 Linux下的I/O瓶颈诊断分析
10.7 网络监控及瓶颈分析
10.7.1 使用netstat监控网络
10.7.2 使用iptraf监控网络
10.7.3 Windows网络性能分析
10.7.4 Linux网络性能分析
附录 参考书目和资源