性能测试诊断分析与优化

出版时间:2012-6  出版社:电子工业出版社  作者:陈能技,郭柏雅 著  页数:358  字数:489000  
Tag标签:无  

前言

  前言  软件系统是企业IT的核心,软件系统的质量影响着企业的运转、业务的开展,除了软件系统的功能正确性外,软件系统的质量还包括性能、安全性、可靠性等。  软件性能问题遍布各种行业领域的软件系统,例如金融业务服务系统、电子商务网站、移动互联应用系统、网络游戏、嵌入式软件系统等。在竞争日趋激烈的商业环境下,为了满足用户日益增加的体验需求,软件系统的性能优化被提到了前所未有的高度,您的软件系统比竞争对手快1秒,您就有可能比竞争对手多赚100万!  软件性能优化离不开性能测试,全面的性能优化需要全过程的性能测试解决方案,包括性能需求分析、性能设计、性能系统测试、性能诊断分析与调优。  在软件生命周期的需求分析阶段,需要对软件性能的需求作出定义,并进行需求分析,尤其是软件性能需求的可测试性分析,这有利于后续开展性能架构设计和性能测试的工作。  在设计阶段,尤其是架构设计阶段,应该对软件系统的性能架构进行充分设计、原型评估,必要时在这个阶段可进行小规模的性能验证性测试,以便论证系统架构在性能上的可扩展性。  在代码设计阶段,需要按照指定的开发规范进行软件开发。为了获得最佳的性能体验,需要从每个细节入手确保软件性能,及时进行代码性能检查和评估。  系统的性能测试可分为负载测试、压力测试、耐力测试、容量测试等多种类型,不同类型的性能测试侧重点不同,需要根据软件系统特点和项目类型进行选择。  软件系统的性能瓶颈可能出现在各个环节,例如数据库、中间件应用服务器、Web服务器、网络、代码层。性能瓶颈的定位和诊断分析需要熟悉软件系统的各个方面,通常需要多种项目成员角色配合一起完成,例如DBA、系统管理员、网络管理员、设计人员、测试人员等。  本书结合主流的性能测试工具Load Runner,讲解性能测试过程、方法和技术。另外,结合笔者多年性能测试和性能优化经验,详细讲解了软件系统常见的性能瓶颈,以及如何发现、诊断分析这些性能瓶颈,从而提出性能优化方案。  本书的内容安排  本书分为3篇,共10章,从软件性能测试的基本概念讲起,再进一步介绍性能测试的基本方法和流程,然后基于Load Runner介绍性能测试工具的使用方法、测试脚本的开发技巧,以及性能场景设计、性能测试结果分析,之后结合主流操作系统、Web服务器、应用服务器和数据库,从多方面、多角度出发详细讲解性能问题的诊断分析技巧。  第1篇性能测试基础篇(第1章和第2章)  讲述了性能测试的基础知识,性能测试基本流程。这两章内容是性能测试工程师必须具备的基础知识。  第2篇性能测试工具篇(第3章到第5章)  性能测试工具是性能测试工程师的基本“装备”,掌握性能测试工具的基本使用方法,才有可能顺利开展性能测试和性能监控,以及后续的性能分析诊断、性能优化工作。Load Runner作为业界主流的性能测试工具,是性能测试工程师必备的“利器”。第3章到第5章的内容涵盖Load Runner性能测试工具的使用、脚本开发、场景设计与运行、测试结果分析等内容。  第3篇性能问题诊断分析篇(第6章到第10章)  性能瓶颈可能出现在软件系统的各个方面,第6章到第10章的内容分别从Web服务器、应用服务器、数据库服务器、应用程序代码、操作系统等层面进行性能问题的分析诊断。让性能测试工程师可以借助笔者总结的丰富经验,应用于实际性能测试项目的性能问题诊断分析优化。  本书由浅入深,由理论到实践,尤其适合初级读者逐步学习和完善自己的性能测试方面的知识结构,加上Load Runner性能测试工具的应用技巧和性能瓶颈的分析诊断技巧,是性能测试团队和性能测试工程师的案头指南和最佳实践指导。  本书特色  本书在讲解性能测试过程、性能测试工具Load Runner的使用,以及性能问题诊断分析的过程中,通过详细的例子进行分析,让读者可以通过例子理解,并且可以自己进行尝试,非常适合独立学习和研究性能测试技术、性能优化技巧的初级测试工程师参考使用。  本书以循序渐进的方式讲解了性能测试的基本知识,结合Load Runner的使用,深入讲解性能测试脚本的开发,在讲解性能诊断分析技术时,涉及目前流行的Web服务器、应用服务器、数据库服务器等方面的内容,例如Apache、Tomcat、WebLogic、Oracle、Linux等。  在讲解性能诊断分析技术时,首先分析系统组件的架构原理,再介绍性能监控的方法,最后引出性能问题出现的原因和诊断分析的技巧,以及调优的方法。  适合阅读本书的读者  本书面向使用Load Runner等性能测试工具进行性能测试的测试工程师、QA,以及希望了解性能测试的测试员,希望掌握性能诊断分析技术的软件工程师。  编者  2012年3月

内容概要

  《测试实践丛书:性能测试诊断分析与优化》是软件系统健康持续运行的前提,在软件系统上线之前,必须由性能测试工程师采用合理的测试策略,设计相应的性能测试方案,对软件系统实施性能测试、压力测试、负载测试等。性能测试往往能在软件系统上线前揭露软件系统的性能问题,如何诊断分析软件系统的性能瓶颈是软件开发团队实施性能优化的关键。
  《测试实践丛书:性能测试诊断分析与优化》结合主流性能测试工具LoadRunner,讲解性能测试过程、方法和技术;结合笔者丰富的性能诊断调优经验,讲解如何有效分析和诊断性能问题、发现性能瓶颈。
  本书分为3篇,第1篇是性能测试基础篇,主要介绍性能测试的基础知识;第2篇是性能测试工具篇,主要介绍如何使用主流的性能测试工具LoadRunner进行性能脚本设计、性能场景设计和性能结果分析;第3篇是性能问题诊断分析篇,主要介绍如何分析、定位性能瓶颈,涵盖Web服务器、应用服务器、数据库、应用代码、操作系统等层面的诊断分析。

作者简介

陈能技,资深软件测试专家,广州亿能测试技术服务有限公司(www.gdtesting_com)创始人。10年软件测试和质量管理经验。熟悉软件自动化测试、性能测试、安全测试及相关工具的应用。曾主导多个大型软件项目的测试和质量保证工作,包括:飞机维修跟踪管理系统、IETM技术资料管理系统、物流管理系统等。为多家企业进行软件测试方面的培训和咨询顾问,包括:上海阿尔斯通、施耐德、深圳空管站、广电运通、中国南车、厦门35互联、广州数控、易方达、贵州电网、环球市场集团等。著有《软件测试技术大全》、《.NET软件测试实战技术大全》、《QTP自动化测试进阶》、《软件自动化测试成功之道》等多本畅销书。 郭柏雅,来自美丽的海上花园城市厦门的一个平凡的软件测试工程师,是7dtest、禄泽测试论坛版主、禄泽教育特约高级讲师。多年来一直致力于研究银行业商业智能数据服务、数据类型项目测试和软件性能测试诊断分析优化技术工作。多次帮助商业银行客户解决生产故障问题,为他们提供测试咨询支持工作。目前担任公司测试主管,具有丰富的测试团队管理、自动化测试工作经验。一直以来受当地多家IT公司邀请提供软件性能测试和诊断分析优化技术指导培训工作,多次受当地高校邀请为毕业生做就业培训指导工作。

书籍目录

第1篇 性能测试基础篇
第1章 性能测试基础
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章 性能测试流程
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 性能测试报告
第2篇 性能测试工具篇
第3章 LoadRunner脚本开发
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章 LoadRunner场景设计与运行
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章 LoadRunner测试结果分析
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生成测试报告
第3篇 性能问题诊断分析篇
第6章 Web服务性能问题诊断分析
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章 应用服务性能问题诊断分析
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章 数据库服务性能问题诊断分析
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章 应用代码性能诊断分析
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章 操作系统性能问题诊断分析
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网络性能分析
附录 参考书目和资源

章节摘录

版权页:   插图:   2.研发人员眼中的软件性能 作为研发人员,他们会更关注软件系统架构设计的合理性、数据库的设计是否存在问题、代码是否存在性能方面问题、内存使用方式是否正确、线程同步方式是否合理、是否存在不合理的资源竞争等。 3.测试人员眼中的软件性能 测试人员是软件性能质量的把关者,在软件性能生命周期中占据至关重要的位置,软件性能测试工程师要对性能问题进行监控、分析及模拟实际使用过程中所出现的性能问题。还要跟各个角色做好沟通工作,对测试出的各种性能问题,要提供充分有力的数据,为后续的分析和定位性能问题、性能优化工作做好充分的准备。 1.1.31秒的性能对于顾客的意义 根据2008年Aberdeen Group的研究报告,对于Web网站,1秒的页面加载延迟相当于少了11%的PV (page view),相当于降低了16%的顾客满意度。如果从金钱的角度计算,就意味着:如果一个网站每天挣10万元,那么一年下来,由于页面加载速度比竞争对手慢1秒,可能导致总共损失25万元的销售额。 Compuware公司分析了超过150个网站和150万个浏览页面,发现页面响应时间从2秒增长到10秒,会导致38%的页面浏览放弃率。 由此可见,网站性能与业务目标有着直接的关系,对网站进行负载测试非常重要。 1.2软件性能的生命周期 影响软件性能的要素有很多,在需求阶段就应该对软件性能进行分析,在设计阶段要充分考虑软件架构设计对性能的影响,在测试阶段要充分验证软件的性能表现是否满足需求。 1.2.1需求阶段的性能分析 从业务角度分析,如果一个系统上线后使用人数比较多,而且后期数据量比较大(如电信、金融证券等对外开放的系统),就有必要做好性能测试,因为这些系统对于实时性交互要求比较高,对系统的响应时间、并发用户数等要求都比较高,并且从数据角度分析,系统上线几年后存量数据一般都是千万级数据量,因此前期性能设计与验证对业务系统的后期正常运行维护至关重要。 在软件开发前期的需求分析阶段,需求分析师与客户业务人员沟通时,要明确提出各项性能指标,包括系统业务交易的使用频度、系统并发用户量、业务数据量评估等各项指标。然后对系统的响应时间、用户数和资源使用进行分析。

编辑推荐

《性能测试诊断分析与优化》是Web性能测试的专业工具书,是软件测试工程师的良师益友。既适合性能测试工程师、软件开发工程师、系统设计工程师阅读,也可作为高等院校相关专业师生的参考书。

名人推荐

当前的软件性能测试领域,不光要关注如何在前端通过分析AUT的业务场景来构建负载模型,更需要在后端系统的监控、性能诊断和调优方面做更多有价值的工作。这本百科全书式的性能测试书籍,尤其在这方面做了非常有特点的探索和实践经验总结,相当值得一读。 ——夏海涛 今日在线科技发展有限公司副总经理兼技术总监 本书深入分析介绍软件性能测试各阶段如何介入工作,对于准备在公司组建性能测试体系流程管理的以及对于热衷于性能诊断分析优化技术的朋友提供了很好的引导方向,是一本很有实用价值的书! ——zee 7dtest创建者 在企业级应用软件开发过程中,为了提升应用版本上线质量,引入第三方测试咨询团队已成为趋势。作为一本全面系统地介绍应用性能测试诊断分析与优化的书,相信本书的出版,将给更多有志于性能测试方向的工程师提供指引。 ——程永新 新炬网络常务副总经理

图书封面

图书标签Tags

评论、评分、阅读与下载


    性能测试诊断分析与优化 PDF格式下载


用户评论 (总计52条)

 
 

  •   性能测试诊断分析与优化,很不错的一本书
  •   很全面,很精辟的讲解了测试性能的优化等知识 值得一读
  •   很全面,很精辟的讲解了测试性能的优化等知识
  •   书不错,值得一读,了解了性能如何优化
  •   内容适合有点基础的测试人阅读,不错
  •   刚收到书籍,就在书中找到了一个解决问题的方法,很兴奋,因为这个问题请教老师都没有解答。呵呵,真高兴。
  •   内容讲解的不错,工作中能用的上,挻好!
  •   总的来说介绍的比较广,没有很深入,具体深入还需要参考别的书。
  •   之前买过一本入门的。现在这本正是我需要的。
  •   适合初学者学习,对于有一定基础的读者不是很适合,想要学习更多的内容还是需要多阅读更深层次的书籍。对于初学者真的算是一本很好的书籍。
  •   对实际操作很有帮助,推荐阅读
  •   不错的一本书,快递也很给力,赞一个
  •   还可以有一定参考价值
  •   有可供参考的内容,但感觉都写得不够深入
  •   我非常喜欢,写的东西也非常的实用
  •   看到书,就很有读书的欲望,我会认真把他吃下去的··哈哈·
  •   整体还是不错的,还没有正式看
  •   书不错,送货也很快,价格再便宜点就好了,看了下和京东价格是一样的
  •   翻了一下,存在有用信息
  •   帮同事买的,听说很不错,推荐
  •   挺好,就是价格高
  •   确实是一本不错的书,正在看,希望能有所帮助
  •   经典图书,不错
  •   一直很关注陈能计的书,这本书又是他的一个大作了,平民化的实用理论主义者,感觉很实用现在性能测试分析和调优的空缺。个人感觉不错,但是感觉本书有宣传soplitlight的嫌疑,soptlight工具没用过,不过商业的东西都有他的价值。
  •   书的纸张不是很好,没有我之前买的书纸张好,还有就是书的内容讲的不是很深入,少了一些实例项目性能测试分析的,继续研读中
  •   性能分析不是一本书能解决的。
  •   比较实用,想研究性能测试的朋友可以读一下。
  •   介绍了不少工具,慢慢学习
  •   随便翻了下,比较基础,适合初学者
  •   写的还行,可以翻翻看看。
  •   纸张质量不是很好,有些页面的内容显示不清晰。
  •   大概浏览了一下,还不错,可以作为参考
  •   还可以,需要有一定基础的人阅读
  •   总体感觉还好,第二本书有点折痕,书中的图不怎么清晰,书的侧面还有一点脏。
  •   送货速度真心的快
  •   内容详细,值得一读
  •   刚收到,送货速度挺快,还没开始看,应该还不错吧!
  •   昨天帮同事定的,今天就送到了。赞一个。
  •   内容适合没有测试基础的测试人阅读,大部分都是其他书上面提到的。没有新颖实用感
  •   好多内容都是网上的,无法解决实际的问题,书的版式太不合理,明显在凑字,比如一个小章节,全是脚本,没有任何注释,内容稀疏,没有实战性的东西。
  •   一直在寻找一本专门讲解性能测试诊断与优化的书籍,但是买下这本书后让我大失所望,书名为《性能测试诊断分析与优化》,作者用了两大篇来讲述性能测试的基础知识和Loadrunner工具,严重怀疑有充字数的嫌疑,本书的核心性能问题的诊断与优化却只有一篇,一篇就算了,看了一下Tomcat的性能监控分析,那叫一个粗浅,通篇没见到一个例子来进行分析,全是百度上东拼西凑的,毫无自己的见解和分析。如果作者就这水平的话,不要出书了,笑死人。
  •   还可以,就是工作用的
  •   是我想要的书,但是讲的很不详细,工具工具只是非常简单的过了下,性能调优也只是简单的过了下,不知道他打的重点想讲什么,性能诊断部分虽然讲了很多方面,但都是蜻蜓点水。作为了解基本入门目录的书吧,从它身上除了看出性能调优应该从哪些方面去诊断外,其他的怎么去诊断与优化根本没讲什么,就是个大体的架构
  •   速度蛮快的,书也不错,刚开始学习,还比较适合看了
  •   这本书非常不错,但是又有大篇幅的讲解LR的基础使用,显得有些必要性不大。总体来说,还是不错滴。
  •   结构很好,由浅入深,不论是初学者还是资深的测试工程师,都能从这本书找到有用的知识!特别是第三章性能问题诊断分析篇,发现自己平时测试过程中遇到的问题都可以从这里找到解决方法,可见作者很花心思总结了之前自己遇到的问题,并写出来给大家分享,非常谢谢!
  •   这本书挺不错的~知识覆盖面较广~还没有看完~继续研读中~
  •   51test系列还是不错的
  •   公司采购用于软件开发的书籍
  •   测试实践丛书:性能测试诊断分析与优化
  •   性能测试的经典书,值得看看
  •   打包一起购买的,很受用
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7