图书基本信息 |
图书名称 | 全栈性能测试修炼宝典 JMeter实战 |
作者 | ROAD_TESTING软件测试组 组稿 陈志勇 马利 |
定价 | 89.00元 |
出版社 | 人民邮电出版社 |
ISBN | 9787115437228 |
出版日期 | 2016-10-01 |
字数 | |
页码 | 448 |
版次 | 1 |
装帧 | 平装 |
开本 | 128开 |
商品重量 | 0.4Kg |
编辑推荐
《全栈性能测试修炼宝典 JMeter实战》是软件测试领域里程碑式的重要著作,由多位培养出经理级乃至总监级性能高手的大师联手创作,本书深入讲解了性能测试实践操作过程中诸多难题的调优心法,实现从理论到实操的升华。列出自学所需的性能技能目录树,助力测试小白迅速成长为技术大牛。从脚本到运维、公式到指标的运用掌握应有尽有,手把手教你性能测试技巧。此书在手,助你走出迷茫。 内容推荐 “基础篇”:欲练神功,不必自宫。打我基础,从此坦途。 “工具篇”:欲善其事,先利其器。神剑在手,天下任走。 “实践篇”:练武无功,到老皆空。有武有功,江湖轻松。 “提升篇”:江湖之大,无奇不有。融会贯通,相忘江湖 部分:基础篇 帮助初学者或想踏入这个行业的工程师迅速了解除工具以外的性能测试的真实本质。去伪求真,使读者能够把握性能测试要点和难点及职业规划有进一步的认识。不管你是内行还是外行,读完后必有所获。 第二部分:工具篇 可当JMeter工具书来进行查阅,是市面上目前为止比较全面的JMeter讲解工具。学会热门的负载工具JMeter,对各种常见协议的性能测试工作(包括自动化测试) 测试脚本不用愁。 第三部分:实践篇 可学到Linux、Windows平台的性能监控、诊断分析;炼就火眼金睛,见微知著的技能;性能问题快速定位。 适合中高级性能测试工程师阅读,掌握性能分析方法,学会如何调优,了解当前的性能调优手法。 可跟书中实例操作,掌握性能测试整个过程,包括需求分析、测试计划、脚本开发、测试数据制作、测试执行、测试结果诊断分析、性能调优整个过程,真正能够开始进行性能测试工作。 第四部分:提升篇 性能测试自动化(Jenkins+Ant+JMeter),能够很方便的实现性能测试回归。提高产率,更少的人力,更低的功耗,更高的生产率;老板怎么爱你都不算多。 另外,前端的性能表现会直接影响到客户体验,前端性能测试也将成为新的性能点,读者可以更深层的了解此方面的知识。
内容简介
本书全面介绍了进行软件性能测试的实战技术和JMeter的应用知识,本书内容分4部分:部分基础篇,主要讲解了当前性能测试状况及发展前景、性能测试的基础理论,让读者尽快入门学习;第二部分工具篇,讲解开源负载工具JMeter的体系结构、脚本开发、负载模拟、测试监听等内容,让读者可以从零开始学会使用一个主流的负载工具,此部分是市面上到目前为止对JMeter讲解较全面的内容,掌握其内容即可以进行性能测试脚本开发、性能测试执行等工作;第三和第四部分实践篇、提升篇,详细讲解了性能监控与诊断分析技术,通过项目实践引导读者学会性能测试工作,如诊断问题、分析调优等软件性能测试中的核心技术,并讲解了HTTP、端到端性能监控、性能测试自动化和JMeter常见问题解决等知识。 本书讲解通俗幽默,很适合读者阅读学习,本书适合测试工程师、测试项目负责人、开发工程师、性能测试爱好者阅读,也适合大专院校相关专业师生的学习用书和培训学校的教材。
作者简介
陈志勇(网名 天胜), 精通性能测试调优及性能工具开发、自动化测试、国际认证项目经理,先后负通用汽车、平安银行等知名企业系统性能及管理工作。性能测试专家,鲁德特邀讲师,备受学生喜爱。授课理论接合实际,专业性强,知识面广,备受腾讯公开课学生喜爱。
马利伟(网名MIKE), 全栈测试专家,性能测试专家,先后供职于阿里巴巴和分众传媒等公司,曾负责宝洁、可口可乐、蚂蚁金服、分众传媒屏幕等项目先后担任测试主管、数据库工程师、项目经理、BI总架构师兼部门经理。授课激发激情,逻辑清晰,热情澎湃,ROAD_Testing性能测试专业性能教材(10本总计5000多页A4纸)主编。
万龙(网名LONG), 先后任职于江西移动,西门子,诺基亚西门子等公司,现任淘宝架构师。从业以来,一直从事基于Linux平台的性能或自动化测试开发性能监控平台及持续平台工作.擅长大数据分析,企业级持续集成,系统性中间件级别配置、性能监控调优平台和自动化测试平台的开发设计。
目录
基础篇
第1章 性能方向职业发展 11.1 为什么选择软件测试 21.2 软件测试痛处 21.3 软件测试发展路线 31.4 不仅仅是性能测试 41.5 从招聘要求看岗位价值 51.6 性能测试技能树 81.6.1 测试工具 81.6.2 测试基础 91.6.3 代码 101.6.4 服务器性能诊断知识 101.6.5 性能调优技能 121.6.6 自动化/持续集成 131.6.7 云计算及虚拟化 131.7 本章小结 13第2章 性能测试初体验 142.1 性能测试的价值 152.2 性能测试流程 172.3 性能测试成功与失败要素 182.4 不同角色看性能 202.5 性能测试工具选择 212.6 性能测试相关术语 222.7 性能测试通过标准 232.8 性能测试趋势 242.9 本章小节 24工具篇第3章 JMeter体系结构 253.1 JMeter简介 263.2 JMeter体系结构 263.2.1 X1【取样器】 273.2.2 X1【断言】 283.2.3 X1【监听器】 283.2.4 X2【前置处理器】 293.2.5 X2【配置元件】 293.2.6 X2【后置处理器】 303.2.7 X3【控制器】 313.2.8 X4【定时器】 313.2.9 X5【线程组】 313.2.10 Test Fragment 323.2.11 工作台 323.3 JMeter运行原理 333.4 JMeter测试计划要素 343.5 JMeter环境介绍 353.6 JMeter与LoadRunner异同 373.7 本章小结 38第4章 JMeter脚本开发 394.1 JMeter工作区介绍 404.2 JMeter Http协议录制 414.2.1 Badboy进行录制 414.2.2 JMeter配置代理进行录制 494.3 JMeter 脚本调试 524.4 JMeter 关联 554.4.1 后置处理器 564.4.2 Regular ExpressionExtractor 564.5 JMeter 参数化 604.5.1 配置元件 604.5.2 CSV Data Set Config 604.5.3 函数助手 624.5.4 访问地址参数化 644.5.5 HTTP请求默认值 644.6 JMeter 检查点 654.6.1 断言 654.6.2 Response Assertion 664.7 JMeter事务 684.7.1 逻辑控制器 684.7.2 事务控制器 684.8 JMeter 集合点 694.8.1 定时器 694.8.2 同步定时器 694.9 JMeter元件运行顺序 704.10 本章小结 72第5章 JMeter负载与监听 745.1 场景设计 755.2 场景设置 755.3 场景运行 775.3.1 GUI运行 775.3.2 非GUI运行测试 795.4 性能参数配置 825.5 测试监听 835.5.1 JMeter监听器 835.5.2 开源监听插件 855.6 本章小结 85第6章 JMeter元件详解 866.1 逻辑控制器 876.1.1 ForEach Controller(循环控制器) 876.1.2 Simple Controller 896.1.3 Include Controller 906.1.4 Runtime Controller 906.1.5 Switch Controller 916.1.6 While Controller 916.1.7 Interleave Controller 916.1.8 Once Only Controller 926.1.9 Throughput Controller 936.1.10 If Controller 946.1.11 Module Controller 946.1.12 Random Controller 956.1.13 Random Order Controller 956.1.14 Loop Controller 966.1.15 Recording Controller 966.1.16 Transaction Controller 976.2 配置元件 986.2.1 FTP请求默认值 986.2.2 HTTP AuthorizationManager 996.2.3 HTTP Request Defaults 996.2.4 Java Request Defaults 996.2.5 JDBC ConnectionConfiguration 1006.2.6 Random Variable 1006.2.7 Counter 1006.2.8 Login Config Element 1016.3 定时器 1016.3.1 Gaussian Random Timer 1026.3.2 Constant Timer 1026.3.3 Synchronizing Timer 1026.3.4 Constant ThroughputTimer 1026.3.5 Uniform Random Timer 1036.3.6 Poisson Random Timer 1036.3.7 BeanShell Timer 1036.3.8 BSF Timer 1066.3.9 JSR223 Timer 1066.4 前置处理器 1066.4.1 BeanShell PreProcessor 1066.4.2 JSR223 PreProcessor 1076.4.3 BSF PreProcessor 1086.4.4 Regular User Parameter 1086.4.5 用户参数 1106.4.6 JDBC PreProcessor 1106.4.7 HTML链接解析器 1116.4.8 HTTP URL 重写修饰符 1146.5 后置处理器 1156.5.1 Debug PostProcessor 1156.5.2 JDBC PostProcessor 1166.5.3 Result Status ActionHandler 1166.5.4 XPath Extractor 1176.6 断言 1186.6.1 BeanShell Assertion 1186.6.2 Compare Assertion 1206.6.3 HTML Assertion 1206.6.4 Size Assertion 1216.6.5 XML Schema Assertion 1226.6.6 XML Assertion 1236.6.7 XPath Assertion 1236.6.8 Duration Assertion 1246.6.9 其他断言元件 1246.7 监听器 1246.7.1 监听器默认配置 1246.7.2 Aggregate Graph 1276.7.3 BeanShell Listener(BeanShell监听器) 1306.7.4 Distribution Graph(分布图) 1306.7.5 Response Time Graph(响应时间图形监听器) 1316.7.6 Simple Data Writer 1316.7.7 Spline Visualizer(样条线显示取样器) 1326.7.8 Summary Report(表格形式显示) 1336.7.9 Save Response to a file(存储服务器响应) 1336.7.10 View Results Tree(察看结果树) 1346.7.11 Assertion Results(断言结果) 1356.7.12 Generate Summary Results(窗口显示结果) 1366.7.13 View Results in Table(表格形式显示) 1366.7.14 Monitor Results 1376.7.15 Aggregate Report 1386.7.16 Mailer Visualizer 1386.8 函数助手 1396.8.1 __BeanShell脚本语言 1396.8.2 __char 1406.8.3 __counter 1416.8.4 __CSVRead 1426.8.5 __escapeHtml 1436.8.6 __escapeOroRegexChars 1436.8.7 __eval 1446.8.8 __evalVar 1446.8.9 __FileToString 1456.8.10 __intSum 1466.8.11 __longSum 1466.8.12 __ 1466.8.13 __jexl 1466.8.14 __log 1476.8.15 __logn 1486.8.16 __machineIP 1486.8.17 __machineName 1496.8.18 __P 1496.8.19 __property 1496.8.20 __Random 1506.8.21 __RandomString 1506.8.22 __regexFunction 1516.8.23 __samplerName 1516.8.24 __setProperty 1526.8.25 __split 1526.8.26 __StringFromFile 1536.8.27 __TestPlanName 1546.8.28 __threadNum 1546.8.29 __time 1546.8.30 __unescape 1556.8.31 __unescapeHtml 1556.8.32 __urldecode 1556.8.33 __urlencode 1556.8.34 __UUID 1556.8.35 __V 1556.8.36 __XPath 1566.9 本章小结 156第7章 JMeter常用脚本开发 1587.1 BeanShell Sampler 1597.2 Debug Sampler 1627.3 FTP请求 1637.4 Java请求 1647.5 JDBC请求 1717.5.1 JDBC连接池设置 1727.5.2 添加JDBC Request 1747.6 JUnit Request 1797.6.1 JUnit简介 1797.6.2 JUnit参数 1807.6.3 JMeter JUnit Request 1817.7 SOAP/XML-RPC Request 1827.8 本章小结 184第8章 JMeter开源测试组件 1858.1 线程组 1878.1.1 Ultimate Thread Group 1878.1.2 Stepping Thread Group 1888.2 逻辑控制器 1898.3 配置元件 1908.4 定时器 1908.5 监听器 1918.5.1 Transactions per Second 1918.5.2 Response Times OverTime 1928.5.3 Response Times vsThreads 1928.5.4 Graphs Generator 1928.6 服务器监控 1938.7 本章小结 195实战篇第9章 性能监控诊断 1969.1 操作系统性能分析介绍 1979.2 系统性能分析思路 1989.2.1 系统性能分析因素-CPU 1999.2.2 系统性能分析因素-内存 1999.2.3 系统性能分析因素-网络 2009.2.4 系统性能分析因素-I/O 2019.2.5 系统性能分析因素-总结 2019.3 瓶颈阈值分析思维导图与手册 2029.3.1 CPU定位分析 2029.3.2 内存定位分析 2039.3.3 网络定位分析 2039.3.4 IO定位分析 2049.4 Linux系统性能分析思路和实践 2049.4.1 系统负载监控分析实践 2059.4.2 系统监控分析实践 2069.5 Windows系统性能分析思路和实践 2179.5.1 性能监视器综述 2179.5.2 性能监视器工具介绍 2189.5.3 系统监控分析实践 2189.5.4 资源监视器介绍和实践 2269.6 Tomcat监控之Probe 2359.7 MySQL监控之MONyog 2389.8 JVM监控 2419.8.1 jps 2419.8.2 jstat 2439.8.3 jmap 2459.8.4 JVisualVM 2479.9 本章小结 250第10章 性能分析调优 25110.1 性能分析方法 25310.2 单机性能分析与调优 25410.2.1 性能分析流程 25410.2.2 系统性能关注点 25610.2.3 程序优化 26110.2.4 配置优化 26310.2.5 数据库连接池优化 26310.2.6 线程优化 26510.2.7 DB优化 26810.3 业务流程优化 26910.4 结构优化 26910.4.1 单机结构 26910.4.2 集群结构 27010.4.3 分布式结构 27110.5 本章小结 277第11章 综合实践之诊断分析与调优 27811.1 需求分析 28011.1.1 需求采集 28211.1.2 需求分析 28511.1.3 并发数计算 28911.2 测试模型 29111.3 测试计划 29111.4 环境搭建 29211.5 脚本开发 29511.5.1 浏览帖子 29511.5.2 回复帖子 29811.5.3 发帖 30111.6 数据准备 30111.6.1 主数据准备 30211.6.2 数据制作方法 30311.7 场景设计 30711.7.1 场景设计 30711.7.2 场景实现 30911.8 测试监控 31211.9 测试执行 31311.9.1 基准测试 31311.9.2 配置测试 31511.9.3 负载测试 31911.9.4 稳定性测试 32711.10 结果分析 32811.11 测试报告 32911.12 本章小结 330提升篇第12章 互联网测试知识——HTTP协议 33112.1 HTTP协议简介 33212.2 HTTP工作原理 33212.3 HTTP请求 33312.4 HTTP应答 33512.5 HTTP捕获 33612.6 Http Watch 33712.6.1 HttpWatch录制 33712.6.2 HttpWatch数据分析 33812.7 本章小结 341第13章 端到端性能监控平台 34213.1 为什么构建基于云的端到端性能监控平台 34313.2 端到端监控的意义 34313.3 前端监控常见策略 34313.4 基于httpWatch的自动捕获 34413.5 基于firebug的自动捕获 34513.5.1 自动导出瀑布图 34513.5.2 HARViewer部署 34613.5.3 基于Fiddler的自动捕获 34813.5.4 基于YSlow的前端评估体系 34813.5.5 基于PageSpeed的前端评估体系 35013.5.6 基于dynaTrace Ajax的前端评估体系 35113.6 构建基于Showslow的监控体系 35613.6.1 Showslow介绍 35613.6.2 Showslow环境搭建 35613.6.3 ShowSlow配置 35713.6.4 YSlow配置 35713.6.5 WebDriver驱动的定时监控体系 35913.7 本章小结 361第14章 性能测试自动化——Jenkins+Ant+ JMeter 36214.1 为什么要做性能测试自动化 36314.2 如何做性能测试自动化 36514.3 Ant+JMeter集成 36514.3.1 Ant下载 36614.3.2 Ant安装 36614.3.3 JMeter中配置XML文件来定义测试活动 36714.3.4 运行测试计划 36914.4 Jenkins+Ant集成 37114.4.1 Jenkins安装 37214.4.2 建立Slave节点 37414.4.3 JMeter任务配置 37714.5 如何运行复杂场景 38514.6 报告自动化 38514.6.1 配置TPS、响应时间等图表 38514.6.2 报告合成 38614.7 JMeter脚本拷贝自动化 39114.8 JMeter Agent自动化 39514.9 本章小结 398第15章 JMeter常见问题 39915.1 JMeter无法开启 40015.2 JMeter异常关闭 40015.3 JMeter无法产生负载 40115.4 JMeter日志输出控制 40115.5 记录测试结果影响Jmeter效率 40215.6 JMeter可以测试接口吗 40215.7 JMeter可以测试Dubbo接口吗 40315.8 JMeter可以测试RPC接口吗 40415.9 JMeter函数助手中函数不够用怎么办 40415.10 JMeter支持子事务的定义吗 40715.11 JMeter非GUI方式运行时如何传递运行参数 40815.12 运行场景时察看结果树为什么要关闭 40915.13 多个测试计划如何运行 40915.14 如何找导致CPU瓶颈的程序 41015.15 如何找导致内存瓶颈的程序 41015.16 如何找导致IO瓶颈的程序 41115.17 如何计算并发用户数 41115.18 JMeter可以做哪些测试 41215.19 性能测试的分析方法有哪些 41215.20 如何看懂Java线程栈信息 41315.21 能用本地负载环境测试“云环境”的性能吗 41315.22 性能测试环境和生产环境不一致 41415.23 本章小结 414附录A Jforum性能测试计划 415A.1 性能测试背景 416A.2 性能测试目标 416A.3 性能测试范围 416A.4 名词术语约定 416A.5 测试环境 417A.5.1 生产环境系统架构 417A.5.2 测试环境系统架构 418A.5.3 生产环境软硬件配置 418A.5.4 测试环境软硬件配置 419A.5.5 负载机软硬件配置 419A.6 需求分析 420A.6.1 业务模型 420A.6.2 性能指标 421A.7 测试策略 422A.7.1 测试执行策略 422A.7.2 测试监控策略 422A.8 测试场景 423A.9 测试准备 423A.9.1 测试工具准备 424A.9.2 测试脚本及程序准备 424A.9.3 测试数据准备 424A.9.4 测试环境准备 424A.10 测试组织架构 425A.11 交付清单 425A.12 项目风险 426A.13 附录 426附录B 性能测试报告 427B.1 性能测试背景 428B.2 性能测试目标 428B.3 性能测试范围 428B.4 名词术语约定 429B.5 测试环境 430B.5.1 生产环境系统架构 430B.5.2 测试环境系统架构 430B.5.3 生产环境软硬件配置 431B.5.4 测试环境软硬件配置 431B.5.5 负载机软硬件配置 431B.6 测试数据 432B.6.1 历史数据量 432B.6.2 主数据 432B.6.3 性能指标 432B.7 测试进度 433B.8 测试结果 433B.8.1 基准测试结果 433B.8.2 配置测试 434B.8.3 负载测试结果 438B.8.4 稳定性测试结果 445B.9 测试结论 447B.9.1 测试结论 447B.9.2 系统缺陷 448B.10 系统风险 448参考资料 449