热门关键字:  听力密码  听力密码  新概念美语  单词密码  巧用听写练听力

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

中国水利水电出版社
    【作 者】何月顺 黄文高 编著 【I S B N 】978-7-5170-0994-8 【责任编辑】张玉玲 【适用读者群】科技 【出版时间】2013-08-15 【开 本】16开 【装帧信息】平装(光膜) 【版 次】第1版第1次印刷 【页 数】528 【千字数】765 【印 张】33 【定 价】88 【丛 书】暂无分类 【备注信息】
图书详情

    本书主要介绍如何使用LoadRunner进行性能测试工作,主要包括四大部分:入门篇、提高篇、监控篇和实战篇。入门篇主要讲述性能测试的基础知识,对LoadRunner进行简单介绍,让读者从整体上了解LoadRunner。提高篇主要讲述性能测试工具LoadRunner三大组件的使用技巧,以及测试过程中需要注意的细节。监控篇主要讲述在整个性能测试过程中应该如何监控系统资源、Web服务器和数据库,以及常用的调优技巧,并就性能测试的流程进行详细的介绍。实战篇通过两个案例:C/S架构和B/S架构来介绍性能测试的整个过程。

    本书适合性能测试工程师、资深测试工程师、测试经理、测试总监使用。

    熟练掌握性能测试工具LoadRunner

    本书详细讲解了LoadRunner的使用,通过案例特别突出了关键知识点的讲解(如关联、参数化等)。

    ●深入理解与掌握监控和调优技术

    有经验的读者也许更希望看到这部分内容。本书系统且深入地介绍了监控与调优的方法和技巧,并包含了监控与调优的详细步骤和讲解。

    ●深入理解与掌握性能测试流程

    很多做性能测试的朋友都会遇到这样的问题:性能测试工具LoadRunner使用很熟练,但在实际的性能测试过程中,却不知如何着手,理不清头绪,这主要是因为对性能测试的流程不熟悉。本书深入详细地介绍了性能测试的流程,可以帮助读者更好地规范性能测试流程。

    12306,你懂的

    每逢过年过节大家订票回家或出差旅游时,铁路12306订票网站几乎都会出现故障。很多人尤其是软件开发人员都在想一个问题:12306订票网的性能怎么就这么差呢?不错,这是用户对这个网站的直观感受,这个性能表现的现象就是大家无法订票,而官方给出的系统每日的点击量超过14亿,这相当于全中国每个人都点击了一次,如果单纯从这个数据来看,似乎订不了票不是12306网站的错,而是订票人太多的缘故,但仔细分析一下会发现这样一个问题,虽然12306网站被频繁地点击,但是每当登录的人很多时都会出现这样的提示:“当前访问用户过多,请稍后重试!”,这就相当于门外有很多人敲门,但屋子里的人一直不开门一样,所以服务器根本就没有承受那么大的压力,又一次被忽悠了,其实市民的要求很简单,直接把每天从12306网站订出票的张数公布出来就可以,这可以直接反映出系统处理业务的能力,好理解又很简单,不用费脑子去思考“点击量”是什么意思。

    从12306网站事件不难看出,在现在的软件质量体系中软件性能的重要性,而软件的性能必须依赖性能测试来验证,所以性能测试在未来软件测试体系中的地位显然是越来越重要,也越来越受企业重视的。

    性能测试学习过程中的典型误区

    在性能测试学习过程中最容易遇到以下两个典型误区:

    (1)学好LoadRunner就等于学好性能测试。

    很多朋友认为性能测试主要是学习性能测试工具,其实并不是这么回事,性能测试工具只能说是性能测试的一个组成部分,并不能与性能测试等同,其实随着自身对性能测试的认识,你会发现性能测试工具更多的是用于模拟客户端产生压力的工具,其在性能分析和调优方面给出的数据支持相对来说较弱,所以仅仅靠性能测试工具是远远不够的,还需要使用其他一些监控和调优工具,才能做好性能测试。此外,性能测试计划也很重要,如果计划不当,那么测试出来的性能数据就不准确,所以性能测试不仅仅是工具,还有计划、监控和调优。

    (2)忽视性能测试过程。

    对于一些有性能测试相关工作经验的性能测试工程师来说,很多人花很多时间去学习性能调优,当然这个并没有什么错,但是当调优的技能积累到一定程度后,又会发现自己在进行性能测试时总是缺少了点什么,导致性能测试总是做得不理想,而这部分被“缺失”的内容就是性能测试过程或者说是性能测试流程,这也可能是很多读者比较容易忽视的一部分内容。性能测试过程是进行性能测试前的准备阶段,试想如果在进行性能测试之前没有一个好的性能测试方案来指导如何进行性能测试,那么就将导致测试出来的性能数据是错误的,而测试的数据都出现了错误,那么调优也就失去了意义。所以读者不应该忽视性能测试的过程,在学习性能测试过程中需要对性能测试的流程有一个很深刻的理解,这样才能帮助我们做出正确的测试方案,特别是业务模型和场景模型的定义,这是性能测试过程中的重中之重,并且只有对性能测试的流程有了相当程度的了解后,才能有序地梳理性能测试的过程,不至于让整个性能测试团队的工作处于混乱状态之中,才能更好地提高性能测试的效果。

    关于本书

    (1)本书解决读者哪些学习问题。

    读者朋友买书都希望在书中学到一些可以使用的东西或笔者思考问题的方式,那么本书主要帮助读者解决哪些问题呢?

     通过对本书的学习,可以熟练地使用性能测试工具LoadRunner。书中详细介绍了LoadRunner的使用,特别突出了关键知识点(如关联、参数化等)的介绍,并且使用很多案例来介绍这些知识点的使用,这样可以更好地解决实际测试过程中的问题。

     帮助读者提高监控和调优的技能,对一些有经验的朋友更希望看到该部分内容,而本书系统且全面地介绍了这方面的内容,并就其监控和调优的步骤进行了详细描述,这样可以更好地帮助读者掌握性能测试的技能。

     熟悉性能测试流程,帮助读者更好地规范性能测试流程。笔者在与做性能测试的朋友交流时,发现很多朋友都会提及这样一个问题:对性能测试工具LoadRunner使用得很熟练,在性能测试过程中会进行监控和调优,但感觉还是有点乱,有点没有条理的感觉,其实很大的一个原因就是对性能测试的流程不熟悉,导致总是没有一个规范的流程来指导如何进行性能测试。本书详细介绍了性能测试的流程,希望可以更好地帮助读者规范性能测试过程。

    (2)本书的4个特点。

     结构清晰,内容安排由浅入深,对初学者来说可以很轻松地入门,并且在描述概念的过程时尽量使用生活中的案例,便于读者对相关内容的理解。书中还详细描述了性能测试的流程、性能测试过程中如何监控与调优等,最大限度帮助那些有性能测试经验的读者朋友。本书包括四大部分:入门篇、提高篇、监控篇和实战篇,具体章节结构如下图所示。

     一些更关注于提高、调优方面的书籍并未对性能测试工具LoadRunner的使用进行详细描述,而本书详细描述了性能测试工具LoadRunner的使用,并就使用过程中需要注意的问题进行了详细讲解。

     丰富了性能测试过程中监控和调优的内容。本书主要从系统资源、Web服务器和数据库3个方面介绍了性能测试过程中的监控和调优技术,并将这几个方面的内容全面地展现出来,不仅仅是某个单方面的内容。

     详细地介绍了性能测试的流程。在同类书中均未详细介绍性能测试的流程,但性能测试流程是规范性能测试、提高性能测试效率的一个重要环节,所以本书对这部分内容进行了详细阐述。

    学习是一个漫长的过程,并且必须每天坚持,只有这样才能让自己不断地进步,而坚持是一个很痛苦的过程,所以有句话是这样说的:“成功必须要超越寂寞”。在学习过程中应该学会思考、善于总结,而不仅仅是看书,还要学会问为什么,笔者同样希望读者朋友在看此书的过程中将工作中的实践情况与本书中描述的内容相结合,将知识与工作经验更好地结合起来,这样才是我们真正需要的看书过程,希望读者朋友在本书中学到一些工作中需要的知识,祝读者朋友们学习愉快。

    致谢

    经过一年的努力,书稿终于完成,在这里我感谢那些曾经帮助、支持和鼓励过我的朋友和家人。

    由于笔者水平有限,书中出现错误在所难免,欢迎广大读者批评指正。读者在阅读本书的过程中如有任何不清楚的问题和批评建议,可以发邮件到arivnhuang@163.com,作者将尽力给您答疑解惑。

    最后,感谢您购买本书,希望您能在书中找到那些正在困扰着您的问题的答案,祝大家阅读愉快。

    黄文高

    2013年5月

    前言
    第一部分 入门篇

    第1章 性能测试基础知识 2
    1.1 软件性能概述 2
    1.2 性能测试相关术语 4
    1.2.1 响应时间 4
    1.2.2 并发用户数 4
    1.2.3 吞吐量 5
    1.2.4 吞吐率 7
    1.2.5 TPS 7
    1.2.6 点击率 7
    1.2.7 资源利用率 7
    1.2.8 性能计数器 7
    1.2.9 思考时间 8
    1.3 性能测试划分 9
    1.3.1 负载测试 9
    1.3.2 压力测试 9
    1.3.3 配置测试 10
    1.3.4 并发测试 10
    1.3.5 可靠性测试 10
    1.3.6 基准测试 10
    1.3.7 各类测试执行阶段 11
    1.4 性能测试应用领域 11
    1.4.1 能力验证 11
    1.4.2 规划能力 12
    1.4.3 性能调优 12
    1.4.4 缺陷发现 12
    1.5 小结 13
    第2章 LoadRunner基础知识 14
    2.1 LoadRunner简介 14
    2.2 LoadRunner工作原理 16
    2.3 LoadRunner工作过程 17
    2.4 LoadRunner内部结构 18
    2.5 LoadRunner 11.0特性 20
    2.6 LoadRunner性能测试步骤 21
    2.7 小结 25
    第3章 Vuser发生器 26
    3.1 脚本录制 26
    3.1.1 如何选择协议 27
    3.1.2 开始录制脚本 31
    3.2 Recording Options设置 34
    3.2.1 Recording选项卡 34
    3.2.2 Advanced选项卡 43
    3.2.3 Correlation选项卡 44
    3.3 Run-Time Settings设置 44
    3.3.1 Run Logic选项卡 45
    3.3.2 Pacing选项卡 46
    3.3.3 Think Time选项卡 47
    3.3.4 Miscellaneous选项卡 49
    3.3.5 Log选项卡 50
    3.4 脚本完善 52
    3.4.1 插入事务 52
    3.4.2 插入集合点 57
    3.4.3 插入注释 57
    3.5 小结 58
    第4章 Controller控制器 59
    4.1 场景类型介绍 59
    4.1.1 手动测试场景 59
    4.1.2 面向目标测试场景 61
    4.2 场景设计 62
    4.2.1 手动场景Schedule配置 62
    4.2.2 面向目标场景Schedule配置 67
    4.2.3 配置View Script 72
    4.2.4 配置Load Generator 73
    4.3 场景执行 76
    4.3.1 场景控制 76
    4.3.2 场景执行期间查看场景 80
    4.4 场景监视 85
    4.4.1 关于联机监控 85
    4.4.2 监控器与度量 89
    4.4.3 联机监视器 93
    4.5 小结 96
    第5章 Analysis分析器 97
    5.1 Analysis简介 97
    5.1.1 Analysis基础知识 97
    5.1.2 设置选项 99
    5.1.3 Analysis图 103
    5.2 摘要报告 105
    5.2.1 概要部分 105
    5.2.2 统计部分 106
    5.2.3 事务统计部分 106
    5.2.4 SLA 108
    5.2.5 HTTP响应统计 115
    5.3 Analysis常见图分析 118
    5.3.1 Vuser图 118
    5.3.2 点击率图 119
    5.3.3 平均事务响应时间图 120
    5.3.4 吞吐量图 121
    5.4 Analysis报告 122
    5.4.1 HTML报告 122
    5.4.2 SLA报告 123
    5.4.3 自定义报告 124
    5.4.4 使用报告模板定义报告 126
    5.5 小结 126

    第二部分 提高篇

    第6章 脚本编写 128
    6.1 检查点 128
    6.1.1 插入检查点的原因 128
    6.1.2 插入检查点 132
    6.1.3 检查点函数 139
    6.1.4 通过检查点判断事务结束状态 141
    6.2 Block(块)技术 144
    6.3 参数化技术 148
    6.3.1 参数化的原因及条件 148
    6.3.2 创建参数 149
    6.3.3 参数类型属性 151
    6.3.4 数据文件 155
    6.3.5 导入数据 161
    6.4 关联技术 165
    6.4.1 关联的原理 166
    6.4.2 录制中关联 167
    6.4.3 录制后关联 170
    6.4.4 手动关联 172
    6.4.5 关联函数介绍 176
    6.4.6 关联技术的经典使用 182
    6.4.7 关联与参数化的区别 185
    6.5 小结 186
    第7章 场景设计实践 187
    7.1 集合点 187
    7.1.1 集合点设置 187
    7.1.2 集合点与事务的关系 190
    7.2 IP欺骗技术 192
    7.2.1 IP Spoofer设置 192
    7.2.2 Controller中启动IP Spoofer 195
    7.3 负载均衡技术 197
    7.4 RTS设置 200
    7.5 执行路径转换 200
    7.5.1 路径转换介绍 200
    7.5.2 编辑路径转换表 201
    7.6 在LoadRunner中使用功能测试脚本 203
    7.6.1 QuickTest创建GUI Vuser脚本 204
    7.6.2 WinRunner创建GUI Vuser脚本 205
    7.6.3 场景中使用GUI Vuser脚本 206
    7.7 小结 207
    第8章 结果分析实践 208
    8.1 分析图合并 208
    8.1.1 分析图合并原理 208
    8.1.2 实例讲解 210
    8.2 分析图关联 212
    8.2.1 分析图关联原理 212
    8.2.2 实例讲解 214
    8.3 页面细分 216
    8.3.1 页面细分原理 216
    8.3.2 实例讲解 219
    8.4 钻取技术 221
    8.4.1 钻取技术原理 221
    8.4.2 实例讲解 222
    8.5 导入外部数据 223
    8.5.1 导入数据工具 223
    8.5.2 自定义文件格式 226
    8.6 使用HTTPWatch分析响应时间 228
    8.6.1 HTTP消息格式 228
    8.6.2 Request Grid 230
    8.6.3 Request View 231
    8.6.4 Summary View 238
    8.6.5 其他功能 239
    8.7 小结 240

    第三部分 监控篇

    第9章 操作系统性能监控与调优 242
    9.1 Windows操作系统监控 242
    9.1.1 LoadRunner直接监控 242
    9.1.2 Windows性能工具监控 243
    9.1.3 Windows计数器 249
    9.2 Linux/UNIX操作系统监控 255
    9.2.1 CPU监控 255
    9.2.2 内存监控 260
    9.2.3 磁盘监控 264
    9.2.4 网络监控 269
    9.3 nmon系统资源监控工具 273
    9.3.1 nmon工作流程 273
    9.3.2 nmon命令 274
    9.3.3 结果分析 283
    9.4 小结 284
    第10章 Web服务器监控与调优 285
    10.1 Apache监控 285
    10.2 Apache调优 291
    10.2.1 硬件与操作系统方面 291
    10.2.2 运行时的配置 291
    10.2.3 编译时的配置 296
    10.3 Tomcat监控 301
    10.3.1 Status页监控 302
    10.3.2 JConsole监控 304
    10.4 Tomcat调优 316
    10.4.1 JVM调优 316
    10.4.2 Tomcat配置 323
    10.4.3 连接器配置 326
    10.4.4 APR配置 332
    10.5 小结 336
    第11章 MS SQL数据库监控与调优 337
    11.1 监控SQL Server资源 337
    11.1.1 瓶颈类型 337
    11.1.2 内存瓶颈 338
    11.1.3 CPU瓶颈 340
    11.1.4 磁盘瓶颈 341
    11.1.5 Wait Statistics监控 341
    11.2 SQL Server等待类型 342
    11.2.1 SQL等待类型 342
    11.2.2 跟踪等待 352
    11.2.3 阻塞与锁 354
    11.3 SQL Profiler监控查询 359
    11.3.1 SQL Trace相关术语 359
    11.3.2 SQL Trace选项 363
    11.3.3 捕获阻塞事件 367
    11.3.4 捕获Showplan XML数据 369
    11.3.5 捕获死锁图 372
    11.3.6 SQL Profiler识别长时间查询 375
    11.3.7 Profile Trace与System Monitor
    关联 380
    11.4 索引调优 382
    11.4.1 索引原理 382
    11.4.2 填充因子 383
    11.4.3 聚集索引 384
    11.4.4 非聚集索引 386
    11.4.5 堆表 388
    11.4.6 用DTA调校索引 389
    11.4.7 索引维护 395
    11.5 T-SQL调优 399
    11.5.1 NOT IN和NOT EXISTS 399
    11.5.2 谓词的使用 399
    11.5.3 为中间结果使用临时表 401
    11.6 小结 402
    第12章 特殊协议 403
    12.1 Windows Sockets(WinSock)协议 403
    12.1.1 Windows Sockets录制选项设置 404
    12.1.2 Windows Sockets录制 405
    12.1.3 Windows Sockets数据操作 409
    12.1.4 关于LRS函数 413
    12.2 邮件服务协议 418
    12.2.1 邮件服务协议简介 418
    12.2.2 邮件服务协议录制 420
    12.2.3 脚本分析 426
    12.2.4 关于SMTP和POP3函数 428
    12.3 小结 430
    第13章 性能测试过程 431
    13.1 性能测试过程概述 431
    13.2 性能测试设计 432
    13.2.1 需求调研 432
    13.2.2 业务模型 433
    13.2.3 场景模型 435
    13.2.4 数据设计 437
    13.2.5 环境设计 438
    13.3 性能测试构建 439
    13.3.1 脚本开发 440
    13.3.2 场景设计 441
    13.3.3 搭建测试环境 441
    13.3.4 准备数据 441
    13.4 性能测试过程执行 442
    13.5 性能测试分析、诊断、调节 442
    13.6 小结 443

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册