书籍详情

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

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

作者:黄文高 著

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

出版时间:2022-09-01

ISBN:9787522609690

定价:¥118.00

购买这本书可以去
内容简介
  本书主要深入系统地讲解性能测试及性能调优相关技术。全书紧紧围绕企业现阶段性能测试的核心内容进行编排,囊括了性能测试的三大核心内容,即性能测试过程、脚本开发、服务器监控与调优。其中,性能测试过程的内容主要包括性能测试流程、性能工作负载建模和生产环境下的性能测试;脚本开发的内容包括特殊协议的脚本开发、接口性能的脚本开发以及全链路性能测试的脚本开发;服务器监控与调优的内容主要包括操作系统资源的监控与调优、Apache服务器监控与调优、Tomcat服务器监控与调优、Nginx服务器监控与调优、MS SQL服务器监控与调优、MySQL服务器监控与调优、Redis服务器监控与调优和前端性能优化的23大规则。 本书适用于测试工程师或已经在做性能测试的朋友,为了让一些想进入性能测试领域工作但缺少性能测试相关基础知识的朋友也能使用本书,作者免费提供了《性能测试基础—LoadRunner完全讲义》电子书,可通过扫描本书前言后面的二维码获取,通过二维码还可获取本书所有的相关代码等学习资源。希望本书能带领大家畅游性能测试的精彩世界。
作者简介
暂缺《深入性能测试: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
猜您喜欢

读书导航