技术教育社区
www.teccses.org

深入性能测试——LoadRunner性能测试、流程、监控、调优全程实战剖析(第二版)

封面

作者:黄文高

页数:512

出版社:中国水利水电出版社

出版日期:2022

ISBN:9787522609690

电子书格式:pdf/epub/txt

内容简介

本书围绕企业现阶段性能测试的核心内容进行阐述,主要包含脚本开发、服务器监控与调优和性能测试过程三大部分内容。 脚本开发的内容主要有:特殊协议的脚本开发、接口性能脚本开发以及如何开发全链路性能测试脚本。 服务器监控与调优的内容主要有:服务器系统资源监控与调优、Apache服务器监控与调优、Tomcat服务器监控与调优、Nginx服务器监控与调优、MS SQL服务器监控与调优、My SQL服务器监控与调优、redis服务器监控与调优和前端性能优化的23大规则。 性能测试过程的内容主要有:性能测试流程、性能工作负载建模和生产环境下的性能测试。 本书主要阐述性能测试调优的内容,所以本书的知识点难度相对来说更高一些,目的主要是能帮助读者朋友通过学习本书内容来解决工作中性能相关的问题。 本书适合高级测试工程师或已经在做性能测试的朋友阅读,希望本书能帮助读者解决更多的性能问题,并认真理解性能测试的原理,而不仅仅停留在性能测试工具的使用方面上。

作者简介

黄文高,高级讲师,首批ISTQB资格认证获得者,10年以上的软件测试开发及测试管理经验。TMM内审员、ISO内审员、CMMI导师,对测试设计、测试流程和缺陷分析有着深入的研究。

本书特色

适读人群 :测试工程师 已经在做性能测试的读者 想进入性能测试领域工作但缺少性能测试相关基础知识的读者●资深一线测试专家、软件测试培训课程高级讲师、首批ISTQB资格认证获得者黄文高老师倾心编写
●饱含作者超10年的软件测试及授课经验
●理论与实操并重,知识点与案例无缝衔接
●详细讲解性能测试全流程技术
●主流操作系统/Web应用、数据库、存储等服务器/前端,性能监控、调优一站掌握
●作者赠送LoadRunner电子书、相关课程视频

目录

目 录

前言

第一版前言

第1章 性能测试过程 1

1.1 性能测试过程概述 1

1.2 性能测试设计 2

1.2.1 需求调研 2

1.2.2 业务模型 3

1.2.3 场景模型 5

1.2.4 数据设计 6

1.2.5 环境设计 8

1.3 性能测试构建 9

1.3.1 用例设计 9

1.3.2 脚本开发 11

1.3.3 场景设计 12

1.3.4 搭建测试环境 13

1.3.5 准备数据 13

1.4 性能测试过程执行 13

1.5 性能测试分析、诊断、调节 13

1.6 小结 14

第2章 工作负载建模 15

2.1 什么是工作负载建模 15

2.2 工作负载建模主要活动 16

2.2.1 定义性能测试目标 16

2.2.2 理解应用程序 16

2.2.3 关键场景识别 17

2.2.4 确定关键场景使用路径 17

2.2.5 确定唯一测试参数 18

2.2.6 确定场景中的相对负载分布 19

2.2.7 确定目标负载水平 19

2.2.8 其他项设置 20

2.3 小结 20

第3章 生产系统性能测试 21

3.1 什么是生产环境 21

3.2 生产环境性能测试风险 22

3.3 为什么需要在生产环境下进行性能测试 23

3.4 生产环境性能测试误解 24

3.5 生产环境下性能测试最佳实践 25

3.6 小结 26

第4章 特殊协议 27

4.1 Windows Sockets(WinSock)协议 27

4.1.1 Windows Sockets录制选项设置 27

4.1.2 Windows Sockets录制 29

4.1.3 Windows Sockets数据操作 33

4.1.4 关于LRS函数 35

4.2 邮件服务协议 41

4.2.1 邮件服务协议简介 41

4.2.2 邮件服务协议录制 43

4.2.3 脚本分析 48

4.2.4 关于SMTP和POP3函数 50

4.3 小结 52

第5章 基于接口性能测试 53

5.1 WSDL协议简介 53

5.2 Web Service接口测试 56

5.2.1 选择Web Services协议 56

5.2.2 选择Manage Services管理待测试的

服务 57

5.2.3 Import Services导入服务 58

5.2.4 添加服务调用(Add Service Call) 60

5.2.5 调试脚本 63

5.2.6 增强脚本 64

5.3 web_service_call函数 65

5.4 Java环境 68

5.5 JavaVuser常用函数 69

5.6 JavaVuser脚本 70

5.6.1 手工插入Java的方法 71

5.6.2 增强Java脚本 72

5.6.3 Java脚本关联 72

5.6.4 Java脚本参数化 72

5.7 web_submit_data 73

5.8 web_custom_request 76

5.9 小结 80

第6章 全链路脚本开发 81

6.1 什么是全链路性能脚本 81

6.2 如何将脚本封装成.h头文件 83

6.3 业务场景对全链路脚本的影响 86

6.3.1 关键场景识别 87

6.3.2 确定主要场景导航路径 89

6.4 全链路脚本开发实例 89

6.5 小结 94

第7章 操作系统性能监控与调优 95

7.1 Windows操作系统监控 95

7.1.1 LoadRunner直接监控 95

7.1.2 Windows性能工具监控 96

7.1.3 Windows计数器 101

7.2 Linux/UNIX操作系统监控 107

7.2.1 程序执行模型 107

7.2.2 CPU监控 110

7.2.3 内存监控 115

7.2.4 磁盘监控 119

7.2.5 网络监控 124

7.3 nmon系统资源监控工具 128

7.3.1 nmon工作流程 128

7.3.2 nmon命令 129

7.3.3 结果分析 137

7.4 小结 138

第8章 Apache监控与调优 139

8.1 Apache目录结构 139

8.2 Apache配置文件 140

8.3 Apache监控 144

8.3.1 status模块监控 144

8.3.2 Apachetop监控 151

8.4 Apache调优 154

8.4.1 硬件与操作系统 154

8.4.2 运行时的配置 155

8.4.3 编译时的配置 159

8.5 MPM调优 161

8.5.1 选择MPM 161

8.5.2 MPM模块工作原理 162

8.5.3 MPM相关参数 165

8.6 日志文件分析 171

8.6.1 access_log日志文件 171

8.6.2 error_log日志文件 173

8.6.3 日志文件分析工具或指令 173

8.7 小结 175

第9章 Tomcat监控与调优 176

9.1 Tomcat结构体系 176

9.2 Tomcat监控 180

9.2.1 Status页监控 180

9.2.2 JConsole监控 182

9.2.3 Probe监控 192

9.3 Tomcat调优 197

9.3.1 Tomcat配置 198

9.3.2 连接器配置 202

9.3.3 APR配置 207

9.4 JVM调优 211

9.4.1 JVM内存模型 211

9.4.2 堆与栈 214

9.4.3 PermGen与Metaspace的区别 215

9.4.4 GC回收机制 218

9.4.5 垃圾收集算法 219

9.4.6 垃圾回收器 223

9.4.7 类加载过程 230

9.4.8 JVM参数设置 231

9.5 日志文件分析 236

9.5.1 日志文件类型 236

9.5.2 日志文件配置 236

9.6 小结 239

第10章 Nginx监控与调优 240

10.1 Nginx三大工作模块 241

10.1.1 Nginx启动、停止 241

10.1.2 Nginx工作原理 242

10.1.3 Nginx进程模型 243

10.1.4 Nginx Http请求过程 243

10.2 Nginx配置上下文 245

10.3 Nginx监控 245

10.3.1 status监控 246

10.3.2 Ngxtop监控 247

10.4 Nginx负载均衡 251

10.4.1 负载均衡概述 251

10.4.2 Nginx负载均衡工作原理 251

10.4.3 设置Http负载均衡 252

10.4.4 负载均衡算法 253

10.4.5 设置服务器权重 255

10.4.6 慢启动 257

10.4.7 限制连接数 257

10.4.8 开启会话持久性 257

10.5 健康检查 259

10.5.1 被动式健康检查 259

10.5.2 主动式健康检查 260

10.5.3 强制健康检查 262

10.6 Nginx压缩与解压 263

10.6.1 启用压缩 264

10.6.2 启用解缩 265

10.6.3 发送压缩文件 266

10.7 Nginx缓存 266

10.7.1 启用响应缓存 266

10.7.2 与进程相关的缓存 268

10.7.3 指定缓存的请求 268

10.7.4 限制或禁用响应缓存 269

10.7.5 清除缓存内容 269

10.7.6 字节范围缓存 271

10.7.7 组合缓存配置实例 272

10.8 小结 273

第11章 MS SQL数据库监控与调优 274

11.1 监控SQL Server资源 274

11.1.1 瓶颈类型 274

11.1.2 内存瓶颈 275

11.1.3 瓶颈类型 277

11.1.4 磁盘瓶颈 277

11.1.5 Wait Statistics监控 278

11.2 SQL Server等待类型 279

11.2.1 SQL等待类型 279

11.2.2 如何跟踪等待 289

11.2.3 阻塞与锁 291

11.3 SQL Profiler监控查询 296

11.3.1 SQL Trace相关术语 296

11.3.2 SQL Trace选项 299

11.3.3 捕获阻塞事件 303

11.3.4 捕获Showplan XML数据 305

11.3.5 捕获死锁图 308

11.3.6 SQL Profiler识别长时间查询 311

11.3.7 Profile Trace与System Monitor关联 315

11.4 索引调优 317

11.4.1 索引原理 317

11.4.2 填充因子 317

11.4.3 聚集索引 318

11.4.4 非聚集索引 321

11.4.5 堆表 323

11.4.6 用DTA调校索引 323

11.4.7 索引维护 329

11.5 T-SQL调优 333

11.5.1 NOT IN和NOT EXISTS 333

11.5.2 谓词的使用 334

11.5.3 为中间结果使用临时表 335

11.6 小结 336

第12章 MySQL性能监控与调优 337

12.1 使用LoadRunner直接压测MySQL 337

12.2 慢查询 339

12.2.1 查看慢查询相关设置 339

12.2.2 启动和设置慢查询 340

12.2.3 慢查询日志文件分析 340

12.2.4 慢查询日志分析工具

mysqldumpslow 341

12.3 EXPLAIN语句 343

12.3.1 EXPLAIN语法 343

12.3.2 EXPLAIN Output Columns输出列 344

12.3.3 EXPLAIN Join Types连接方式 347

12.3.4 EXPLAIN Extra Information额外信息 349

12.4 profile语句 352

12.4.1 开启profile 352

12.4.2 show profile 352

12.5 索引 357

12.5.1 索引结构 357

12.5.2 索引常用策略 361

12.5.3 索引优缺点 372

12.6 查询执行过程 372

12.7 SQL执行顺序 376

12.8 优化数据类型和优化访问数据 378

12.8.1 优化数据类型 378

12.8.2 常见数据类型 379

12.8.3 优化访问数据 383

12.9 状态监控 384

12.9.1 SHOW STATUS语句 384

12.9.2 SHOW STATUS变量 386

12.10 配置文件 389

12.10.1 使用选项文件 389

12.10.2 配置文件常见设置 390

12.11 小结 396

第13章 Redis性能监控与调优 397

13.1 使用LoadRunner调用Redis API进行压测 397

13.2 Redis Slowlog 401

13.2.1 什么是Slowlog 401

13.2.2 设置Slowlog 401

13.2.3 查看Slowlog 402

13.3 持久化 403

13.3.1 RDB持久化 404

13.3.2 AOF持久化 408

13.3.3 RDB和AOF的优缺点 411

13.3.4 备份策略RDB与AOF相互协同 411

13.4 主从复制 413

13.4.1 配置主从复制 413

13.4.2 断开复制 415

13.4.3 主从复制工作原理 416

13.4.4 心跳 421

13.4.5 master关闭持久化,保证复制的安全性 422

13.4.6 Redis复制如何处理过期的key 423

13.4.7 允许只写入N个附加的副本 423

13.4.8 只读性质的slave 424

13.4.9 重新启动和故障转移后的部分同步 424

13.5 哨兵 425

13.5.1 为什么需要Sentinel 425

13.5.2 部署Sentinel 425

13.5.3 主观下线和客观下线 427

13.5.4 故障转移 428

13.5.5 Sentinel配置项 429

13.6 内存优化 430

13.6.1 获取内存数据 430

13.6.2 内存消耗模型 432

13.6.3 内存上限设置 434

13.6.4 回收内存策略 434

13.7 性能测试 436

13.7.1 性能测试工具redis-benchmark 436

13.7.2 延迟监控与分析 439

13.7.3 big key 446

13.7.4 Hot key 448

13.7.5 缓存粒度 451

13.7.6 缓存穿透 452

13.7.7 缓存击穿 454

13.7.8 缓存雪崩 456

13.8 小结 457

第14章 前端性能监控与调优 458

14.1 前端监控工具YSlow 458

14.1.1 安装YSlow 458

14.1.2 使用YSlow 459

14.2 23大前端性能规则 462

14.2.1 最小化HTTP请求 462

14.2.2 使用内容发布网络 463

14.2.3 添加Expires头 463

14.2.4 Gzip组件 465

14.2.5 将样式表放在顶部 465

14.2.6 将脚本放在底部 466

14.2.7 避免使用CSS表达式 468

14.2.8 将JavaScript和CSS置于外部 469

14.2.9 减少DNS查找 471

14.2.10 精简JavaScript和CSS 472

14.2.11 避免重定向 474

14.2.12 删除重复脚本 478

14.2.13 配置ETags 478

14.2.14 使AJAX可缓存 480

14.2.15 AJAX使用Get请求 481

14.2.16 减少DOM数 483

14.2.17 避免空链接 485

14.2.18 避免404错误 486

14.2.19 减少Cookie的大小 488

14.2.20 使用一些空闲Cookie的域 492

14.2.21 避免过滤器 494

14.2.22 不要缩放图片 496

14.2.23 使用icon格式图片和使用缓存 496

14.3 小结 497

下载地址

立即下载

(解压密码:www.teccses.org)

Article Title:《深入性能测试——LoadRunner性能测试、流程、监控、调优全程实战剖析(第二版)》
Article link:https://www.teccses.org/1404687.html