第一部分 基础篇 1
第1章 软件测试概述 1
1.1 软件测试基础 2
1.2 软件相关概念解析 3
1.3 软件测试的定义 4
1.4 软件测试的分类 6
1.4.1 黑盒测试、白盒测试与灰盒测试 6
1.4.2 静态测试与动态测试 8
1.4.3 单元测试、集成测试、系统测试与验收测试 10
1.4.4 其他测试 16
1.5 软件开发与软件测试的关系 17
1.5.1 常见的几种软件开发模式 17
1.5.2 测试与开发各阶段的关系 21
1.5.3 测试的经济学观念 22
1.6 软件测试流程 23
1.6.1 测试计划 23
1.6.2 测试设计 24
1.6.3 测试执行 35
1.6.4 测试总结 38
1.7 测试自动化的意义 46
第2章 基本概念 48
2.1 性能测试的基本概念 49
2.1.1 性能测试的概念及其分类 49
2.1.2 典型的性能测试场景 50
2.1.3 性能测试工具的引入 50
2.2 LoadRunner及样例程序安装 51
2.2.1 LoadRunner的Windows版本的安装 51
2.2.2 许可协议的应用 52
2.2.3 LoadRunner工具样例程序的安装 53
2.2.4 其他样例程序的安装 54
2.3 运行机制和主要组成部分 56
2.4 LoadRunner相关概念解析 57
2.4.1 集合点 57
2.4.2 事务 58
2.4.3 检查点 59
2.4.4 思考时间 61
第3章 LoadRunner基本使用 63
3.1 协议的选择 64
3.1.1 Vuser类型 64
3.1.2 协议选择 65
3.2 脚本的创建过程 65
3.2.1 协议理解的误区 66
3.2.2 B/S架构应用程序脚本的实例应用 67
3.2.3 C/S架构应用程序脚本的实例应用 70
3.3 脚本的参数化 72
3.3.1 参数化的方法及其技巧 73
3.3.2 数据分配方法 74
3.3.3 数据更新方式 75
3.3.4 实例讲解数据分配和数据更新方式的应用 76
3.3.5 详解表数据参数类型 77
3.3.6 内部数据参数类型 78
3.4 负载设置与执行过程 82
3.4.1 负载运行机制介绍 82
3.4.2 场景设置描述 83
3.4.3 负载选项设置详解 85
3.5 执行结果分析过程 88
3.5.1 合并图的应用 89
3.5.2 关联图的应用 90
3.5.3 分析相关选项设置 90
3.6 实例讲解脚本的录制、场景设计、结果分析过程 93
3.6.1 LoadRunner测试过程模型 93
3.6.2 实例讲解Web应用程序的应用 94
3.6.3 脚本处理部分 95
3.6.4 负载处理部分 105
3.6.5 结果分析部分 109
3.6.6 系统性能改进意见 111
3.7 调试技术 112
3.7.1 断点设置 112
3.7.2 单步跟踪 112
3.7.3 日志输出 113
第4章 脚本编写基础 115
4.1 认识LoadRunner脚本语言 116
4.2 C语言基础 117
4.2.1 数据类型 117
4.2.2 C语言语句分类 124
4.2.3 基础知识 135
第二部分 提高篇 167
第5章 LoadRunner操作技巧 167
5.1 关联的应用 168
5.1.1 什么是关联 168
5.1.2 如何做关联 169
5.1.3 关联函数详解 174
5.1.4 实例讲解简单关联的应用 176
5.1.5 实例讲解较复杂关联的应用 179
5.2 动态链接库函数的调用 183
5.3 特殊函数应用注意事项 185
5.4 自定义函数应用 189
5.4.1 自定义函数仅应用于本脚本的实例 190
5.4.2 自定义函数的复用实例 192
5.5 IP欺骗及其多机联合测试的应用 193
5.5.1 详解IP Wizard配置与应用 193
5.5.2 多机联合测试和IP欺骗注意事项 196
第6章 不同协议应用实例讲解 198
6.1 一种特殊的数据库性能测试方法 199
6.1.1 数据库集群项目背景介绍 199
6.1.2 批处理方式解决方案 201
6.2 手工编写FTP脚本 202
6.2.1 手工编写脚本的策略 202
6.2.2 实例讲解手工编写FTP脚本 202
6.2.3 脚本编写注意事项 205
6.3 Foxmail邮件的发送脚本 205
6.4 详解.NET 2003插件在开发环境中的应用 209
6.5 Windows Sockets协议脚本应用 213
6.6 Terminal Emulation(RTE)协议脚本应用 222
第7章 LoadRunner常见问题解决技巧 231
7.1 如何突破参数的百条显示限制 232
7.2 如何突破Controller可用脚本五十条限制 233
7.3 如何解决数据库查询结果过大,导致录制失败 234
7.4 如何调整经常用到的相关协议脚本模板 234
7.5 如何将Connect()中的密文改为明文 236
7.6 如何添加并运用附加变量 237
7.7 如何解决脚本中的乱码问题 239
7.8 如何在录制时加入自定义标头 241
7.9 线程和进程运行方式有何不同 242
7.10 如何实现脚本分步录制 246
7.11 如何在脚本中应用常量和数组 247
7.12 VuGen中支持哪些步骤类型 248
7.13 如何处理ASP.NET中的ViewState 249
7.14 如何理解Return的返回值 254
7.15 如何解决负载均衡将压力作用到一台机器 256
7.16 如何对Apache服务器上的资源使用情况进行监控 258
7.17 如何在脚本中加入DOS命令 259
7.18 如何下载并保存文件到本地 260
7.19 如何理解常用图表的含义 264
7.20 基于目标和手动场景测试有何联系和不同 265
7.21 如何在命令行下启动Controller 269
7.22 如何解决由于设置引起的运行失败问题 269
7.23 如何实现对服务器系统资源的监控 271
7.24 如何实现对数据服务器的监控 275
7.25 如何实现对Web应用程序服务器资源监控 278
7.26 如何在Analysis图表中添加分析注释 281
7.27 如何确定登录达到响应时间为3秒的指标 283
7.28 如何使用自动关联对测试结果进行分析 286
7.29 如何根据分析结果判断性能有所改善 287
7.30 如何对图表进行合并,定位系统瓶颈 289
7.31 如何应用Java Vuser验证算法的执行效率 291
7.32 如何用程序控制网站的访问次数 295
7.33 几种不同超时的处理方法 300
7.34 如何才能将日期类型数据参数化到脚本中 300
7.35 如何自定义请求,并判断返回数据的正确性 306
7.36 LoadRunner如何运行WinRunner脚本 308
7.37 LoadRunner如何利用已有文本数据 311
7.38 如何能够产生样例程序的Session 313
7.39 如何能够实现Ping IP的功能 315
7.40 如何在Vugen中自定义工具条按钮 316
7.41 如何在Vugen中Tools菜单中添加菜单项 318
7.42 如何在Vugen中给菜单项定义快捷键 319
7.43 为什么结果导出时会出现异常 320
7.44 如何增大网页细分图显示的URLS长度 321
7.45 如何设置登录的用户名和口令 322
7.46 如何在执行迭代时退出脚本 323
7.47 如何使用键盘快捷键 325
7.48 如何手动转换字符串编码 326
7.49 如何理解结果目录文件结构 328
7.50 如何监控Tomcat 329
第8章 操作系统相关指标和监控技术 335
8.1 概述 336
8.2 进程相关指标和监控技术 336
8.2.1 Windows操作系统任务、进程介绍 336
8.2.2 Windows操作系统任务、进程监控技术 336
8.2.3 Windows操作系统任务、进程关闭技术 342
8.2.4 Linux操作系统任务、进程监控技术介绍 346
8.2.5 Linux操作系统进程监控技术 347
8.2.6 Linux操作系统进程终止技术 351
8.3 CPU相关指标和监控技术 354
8.3.1 CPU相关指标监控技术介绍 354
8.3.2 Windows操作系统中CPU相关指标监控技术 355
8.3.3 Linux操作系统中CPU相关指标监控技术 358
8.4 内存相关指标和监控技术 364
8.4.1 内存相关指标监控技术介绍 364
8.4.2 Windows操作系统中内存相关指标监控技术 365
8.4.3 Linux操作系统中内存相关指标监控技术 373
8.5 磁盘I/O相关指标和监控技术 377
8.5.1 磁盘I/O相关指标监控技术介绍 377
8.5.2 Windows操作系统磁盘I/O相关指标监控技术 379
8.5.3 Linux操作系统磁盘I/O相关指标监控技术 391
第9章 性能测试过程 395
9.1 性能测试的基本过程 396
9.2 性能测试需求分析 397
9.3 性能测试计划 398
9.4 性能测试用例 399
9.5 测试脚本编写 400
9.6 测试场景设计 401
9.7 测试场景运行 403
9.8 场景运行监控 404
9.9 运行结果分析 405
9.10 系统性能调优 405
9.11 性能测试总结 406
第三部分 实战篇 409
第10章 系统性能测试案例——GIS项目 409
10.1 GIS系统性能测试 410
10.1.1 项目性能测试需求的分析 410
10.1.2 确定性能测试考察指标 412
10.1.3 模型建立 414
10.1.4 集合点的说明 415
10.1.5 性能测试用例设计 417
10.1.6 工具的引入 419
10.1.7 脚本代码 419
10.1.8 场景设计 421
10.1.9 测试环境 422
10.1.10 场景执行 423
10.2 性能结果分析 425
第11章 性能测试案例——系统实现框架对比 435
11.1 第一部分 方案设计 436
11.1.1 项目性能测试需求分析 436
11.1.2 性能测试需求 436
11.1.3 系统架构 437
11.1.4 性能测试策略 437
11.1.5 测试资源 439
11.1.6 测试监控 441
11.1.7 里程碑计划 443
11.1.8 测试准则 443
11.1.9 测试风险 444
11.2 第二部分 测试执行 445
11.2.1 脚本编写 445
11.2.2 测试过程 448
11.3 第三部分 测试报告 450
11.3.1 性能对比结论摘要 450
11.3.2 问题分析 452
11.3.3 测试结果对比 454
11.3.4 性能对比结论 458
第12章 其他测试必备知识 459
12.1 HTTP协议基础知识 460
12.2 AT命令和计划的运用 465
12.3 Vmware虚拟机的使用 466
12.3.1 虚拟机的概念 467
12.3.2 为什么要使用虚拟机 467
12.3.3 Vmware简介 467
12.3.4 Vmware使用技巧 471
12.3.5 使用Vmware建议 471
12.4 HTTP状态代码 471
12.5 相关计数器指标概述 474
12.5.1 Memory相关 474
12.5.2 Processor相关 479
12.5.3 网络吞吐量以及带宽相关 482
12.5.4 磁盘相关 483
12.5.5 Web应用程序相关 484
12.5.6 IIS相关 485
12.5.7 数据库相关的计数器 489
12.5.8 Tuxedo相关的计数器 500
12.5.9 MQ相关的计数器 501
第13章 性能测试实战策略 503
13.1 性能测试在企业中的应用——量体裁衣 504
13.1.1 性能测试介绍 504
13.1.2 性能测试在软件企业的应用 505
13.1.3 总结 508
13.2 开发环境下的性能测试 508
13.2.1 负库存现象 508
13.2.2 插件的应用 509
13.2.3 总结 513
13.3 性能测试场景的选择及其用例设计、执行策略 514
13.3.1 性能测试用例的设计方法 515
13.3.2 实例讲解性能测试用例的设计 516
13.3.3 性能测试执行 520
13.3.4 性能测试的分析 521
13.3.5 系统的调优 521
13.4 性能测试常用计算公式汇总 522
13.4.1 吞吐量计算公式 522
13.4.2 并发数量计算公式 523
13.4.3 思考时间计算公式 525
第14章 测试面试试题及其面试策略 526
14.1 性能测试人员面试经典技术问题 527
14.2 LoadRunner英文性能测试的面试题目 527
14.3 经常被问道的智力面试题目 529
14.3.1 百枚金币问题 529
14.3.2 污染药丸问题 530
14.3.3 三人住宿问题 530
14.3.4 小鸟飞行距离问题 530
14.3.5 烧香问题 531
14.3.6 分金条问题 531
14.3.7 过桥问题 531
14.3.8 三个灯泡问题 532
14.4 综合测试试题 532
14.5 找测试工作的策略 533
14.5.1 找工作前您需要做些什么 533
14.5.2 面试时您该做些什么 537
14.5.3 面试后您该做的事情 540
第四部分 附录部分 541
附录A 测试计划样例模板 541
附录B 测试设计说明模板 546
附录C 测试用例模板 549
附录D 测试项传递报告 554
附录E 测试日志样例模板 556
附录F 测试事件报告模板 558
附录G 测试总结样例模板 560
附录H LoadRunner常用函数 564