《全栈性能测试修炼宝典 JMeter实战》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:ROAD_TESTING软件测试组组稿,陈志勇,马利伟,万龙
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2016
  • ISBN:9787115437228
  • 页数:449 页
图书介绍:在技术上,它不只是全面、深入地讲解了性能测试和性能优化,而且还讲解了安全测试;在工具上,不只是讲解了JMeter,还讲解了受欢迎的开源工具Apache ab;在内容上,不只是讲解了软件测试,还为测试人员的职业规划和发展指明了方向,从某种程度上讲,这比技术更有价值;在实操性上,它绝不是“纸上谈兵”,解决了很多书让读者无法学以致用的弊端,以大企业的真实项目为基础,融技术讲解于项目实战;   

基础篇 1

第1章 性能方向职业发展 1

1.1为什么选择软件测试 2

1.2软件测试痛处 2

1.3软件测试发展路线 3

1.4不仅仅是性能测试 4

1.5从招聘要求看岗位价值 5

1.6性能测试技能树 8

1.6.1测试工具 8

1.6.2测试基础 9

1.6.3代码 10

1.6.4服务器性能诊断知识 10

1.6.5性能调优技能 12

1.6.6自动化/持续集成 13

1.6.7云计算及虚拟化 13

1.7本章小结 13

第2章 性能测试初体验 14

2.1性能测试的价值 15

2.2性能测试流程 17

2.3性能测试成功与失败要素 18

2.4不同角色看性能 20

2.5性能测试工具选择 21

2.6性能测试相关术语 22

2.7性能测试通过标准 23

2.8性能测试趋势 24

2.9本章小节 24

工具篇 25

第3章 JMeter体系结构 25

3.1 JMeter简介 26

3.2 JMeter体系结构 26

3.2.1 X1【取样器】 27

3.2.2 X1【断言】 28

3.2.3 X1【监听器】 28

3.2.4 X2【前置处理器】 29

3.2.5 X2【配置元件】 29

3.2.6 X2【后置处理器】 30

3.2.7 X3【控制器】 31

3.2.8 X4【定时器】 31

3.2.9 X5【线程组】 31

3.2.10 Test Fragment 32

3.2.11工作台 32

3.3 JMeter运行原理 33

3.4 JMeter测试计划要素 34

3.5 JMeter环境介绍 35

3.6 JMeter与LoadRunner异同 37

3.7本章小结 38

第4章 JMeter脚本开发 39

4.1 JMeter工作区介绍 40

4.2 JMeter Http协议录制 41

4.2.1 Badboy进行录制 41

4.2.2 JMeter配置代理进行录制 49

4.3 JMeter脚本调试 52

4.4 JMeter关联 55

4.4.1后置处理器 56

4.4.2 Regular ExpressionExtractor 56

4.5 JMeter参数化 60

4.5.1配置元件 60

4.5.2 CSV Data Set Config 60

4.5.3函数助手 62

4.5.4访问地址参数化 64

4.5.5 HTTP请求默认值 64

4.6 JMeter检查点 65

4.6.1断言 65

4.6.2 Response Assertion 66

4.7 JMeter事务 68

4.7.1逻辑控制器 68

4.7.2事务控制器 68

4.8 JMeter集合点 69

4.8.1定时器 69

4.8.2同步定时器 69

4.9 JMeter元件运行顺序 70

4.10本章小结 72

第5章 JMeter负载与监听 74

5.1场景设计 75

5.2场景设置 75

5.3场景运行 77

5.3.1 GUI运行 77

5.3.2非GUI运行测试 79

5.4性能参数配置 82

5.5测试监听 83

5.5.1 JMeter监听器 83

5.5.2开源监听插件 85

5.6本章小结 85

第6章 JMeter元件详解 86

6.1逻辑控制器 87

6.1.1 ForEach Controller(循环控制器) 87

6.1.2 Simple Controller 89

6.1.3 Include Controller 90

6.1.4 Runtime Controller 90

6.1.5 Switch Controller 91

6.1.6 While Controller 91

6.1.7 Interleave Controller 91

6.1.8 Once Only Controller 92

6.1.9 Throughput Controller 93

6.1.10 If Controller 94

6.1.11 Module Controller 94

6.1.12 Random Controller 95

6.1.13 Random Order Controller 95

6.1.14 Loop Controller 96

6.1.15 Recording Controller 96

6.1.16 Transaction Controller 97

6.2配置元件 98

6.2.1 FTP请求默认值 98

6.2.2 HTTP Authorization Manager 99

6.2.3 HTTP Request Defaults 99

6.2.4 Java Request Defaults 99

6.2.5 JDBC Connection Configuration 100

6.2.6 Random Variable 100

6.2.7 Counter 100

6.2.8 Login Config Element 101

6.3定时器 101

6.3.1 Gaussian Random Timer 102

6.3.2 Constant Timer 102

6.3.3 Synchronizing Timer 102

6.3.4 Constant Throughput Timer 102

6.3.5 Uniform Random Timer 103

6.3.6 Poisson Random Timer 103

6.3.7 BeanShell Timer 103

6.3.8 BSF Timer 106

6.3.9 JSR223 Timer 106

6.4前置处理器 106

6.4.1 BeanShell PreProcessor 106

6.4.2 JSR223 PreProcessor 107

6.4.3 BSF PreProcessor 108

6.4.4 Regular User Parameter 108

6.4.5用户参数 110

6.4.6 JDBC PreProcessor 110

6.4.7 HTML链接解析器 111

6.4.8 HTTP URL重写修饰符 114

6.5后置处理器 115

6.5.1 Debug PostProcessor 115

6.5.2 JDBC PostProcessor 116

6.5.3 Result Status Action Handler 116

6.5.4 XPath Extractor 117

6.6断言 118

6.6.1 BeanShell Assertion 118

6.6.2 Compare Assertion 120

6.6.3 HTML Assertion 120

6.6.4 Size Assertion 121

6.6.5 XML Schema Assertion 122

6.6.6 XML Assertion 123

6.6.7 XPath Assertion 123

6.6.8 Duration Assertion 124

6.6.9其他断言元件 124

6.7监听器 124

6.7.1监听器默认配置 124

6.7.2 Aggregate Graph 127

6.7.3 BeanShell Listener(BeanShell监听器) 130

6.7.4 Distribution Graph(分布图) 130

6.7.5 Response Time Graph(响应时间图形监听器) 131

6.7.6 Simple Data Writer 131

6.7.7 Spline Visualizer(样条线显示取样器) 132

6.7.8 Summary Report(表格形式显示) 133

6.7.9 Save Response to a file(存储服务器响应) 133

6.7.10 View Results Tree(察看结果树) 134

6.7.11 Assertion Results(断言结果) 135

6.7.12 Generate Summa Results(窗口显示结果) 136

6.7.13 View Results in Table(表格形式显示) 136

6.7.14 Monitor Results 137

6.7.15Aggregate Report 138

6.7.16 Mailer Visualizer 138

6.8函数助手 139

6.8.1 _BeanShell脚本语言 139

6.8.2 _char 140

6.8.3 _counter 141

6.8.4 _CSVRead 142

6.8.5 _escapeHtml 143

6.8.6 _escapeOroRegexChars 143

6.8.7 _eval 144

6.8.8 _evalVar 144

6.8.9 _FileToString 145

6.8.10 _intSum 146

6.8.11 _longSum 146

6.8.12 _javaScript 146

6.8.13 _jexl 146

6.8.14 _log 147

6.8.15 _logn 148

6.8.16 _machineIP 148

6.8.17 _machineName 149

6.8.18 _P 149

6.8.19 _property 149

6.8.20 _Random 150

6.8.21 _RandomString 150

6.8.22 _regexFunction 151

6.8.23 _samplerName 151

6.8.24 _setProperty 152

6.8.25 _split 152

6.8.26 _StringFromFile 153

6.8.27 _TestPlanName 154

6.8.28 _threadNum 154

6.8.29 _time 154

6.8.30 _unescape 155

6.8.31 _unescapeHtml 155

6.8.32 _urldecode 155

6.8.33 _urlencode 155

6.8.34 _UUID 155

6.8.35 _V 155

6.8.36 _XPath 156

6.9本章小结 156

第7章 JMeter常用脚本开发 158

7.1 BeanShell Sampler 159

7.2 Debug Sampler 162

7.3 FTP请求 163

7.4 Java请求 164

7.5 JDBC请求 171

7.5.1 JDBC连接池设置 172

7.5.2添加JDBC Request 174

7.6 JUnit Request 179

7.6.1 JUnit简介 179

7.6.2 JUnit参数 180

7.6.3 JMeter JUnit Request 181

7.7 SOAP/XML-RPC Request 182

7.8本章小结 184

第8章 JMeter开源测试组件 185

8.1线程组 187

8.1.1 Ultimate Thread Group 187

8.1.2 Stepping Thread Group 188

8.2逻辑控制器 189

8.3配置元件 190

8.4定时器 190

8.5监听器 191

8.5.1 Transactions per Second 191

8.5.2 Response Times Over Time 192

8.5.3 Response Times vs Threads 192

8.5.4 Graphs Generator 192

8.6服务器监控 193

8.7本章小结 195

实战篇 196

第9章 性能监控诊断 196

9.1操作系统性能分析介绍 197

9.2系统性能分析思路 198

9.2.1系统性能分析因素-CPU 199

9.2.2系统性能分析因素-内存 199

9.2.3系统性能分析因素-网络 200

9.2.4系统性能分析因-I/O 201

9.2.5系统性能分析因素-总结 201

9.3瓶颈阈值分析思维导图与手册 202

9.3.1 CPU定位分析 202

9.3.2内存定位分析 203

9.3.3网络定位分析 203

9.3.4 IO定位分析 204

9.4 Linux系统性能分析思路和实践 204

9.4.1系统负载监控分析实践 205

9.4.2系统监控分析实践 206

9.5 Windows系统性能分析思路和实践 217

9.5.1性能监视器综述 217

9.5.2性能监视器工具介绍 218

9.5.3系统监控分析实践 218

9.5.4资源监视器介绍和实践 226

9.6 Tomcat监控之Probe 235

9.7 MySQL监控之MONyog 238

9.8 JVM监控 241

9.8.1 jps 241

9.8.2 jstat 243

9.8.3 jmap 245

9.8.4 JVisualVM 247

9.9本章小结 250

第10章 性能分析调优 251

10.1性能分析方法 253

10.2单机性能分析与调优 254

10.2.1性能分析流程 254

10.2.2系统性能关注点 256

10.2.3程序优化 261

10.2.4配置优化 263

10.2.5数据库连接池优化 263

10.2.6线程优化 265

10.2.7 DB优化 268

10.3业务流程优化 269

10.4结构优化 269

10.4.1单机结构 269

10.4.2集群结构 270

10.4.3分布式结构 271

10.5本章小结 277

第11章 综合实践之诊断分析与调优 278

11.1需求分析 280

11.1.1需求采集 282

11.1.2需求分析 285

11.1.3并发数计算 289

11.2测试模型 291

11.3测试计划 291

11.4环境搭建 292

11.5脚本开发 295

11.5.1浏览帖子 295

11.5.2回复帖子 298

11.5.3发帖 301

11.6数据准备 301

11.6.1主数据准备 302

11.6.2数据制作方法 303

11.7场景设计 307

11.7.1场景设计 307

11.7.2场景实现 309

11.8测试监控 312

11.9测试执行 313

11.9.1基准测试 313

11.9.2配置测试 315

11.9.3负载测试 319

11.9.4稳定性测试 327

11.10结果分析 328

11.11测试报告 329

11.12本章小结 330

提升篇 331

第12章 互联网测试必备知识——HTTP协议 331

12.1 HTTP协议简介 332

12.2 HTTP工作原理 332

12.3 HTTP请求 333

12.4 HTTP应答 335

12.5 HTTP捕获 336

12.6 HttpWatch 337

12.6.1 HttpWatch录制 337

12.6.2 HttppWatch数据分析 338

12.7本章小结 341

第13章 端到端性能监控平台 342

13.1为什么构建基于云的端到端性能监控平台 343

13.2端到端监控的意义 343

13.3前端监控常见策略 343

13.4基于httpWatch的自动捕获 344

13.5基于firebug的自动捕获 345

13.5.1自动导出瀑布图 345

13.5.2 HARViewer部署 346

13.5.3基于Fiddler的自动捕获 348

13.5.4基于YSlow的前端评估体系 348

13.5.5基于PageSpeed的前端评估体系 350

13.5.6基于dynaTrace Ajax的前端评估体系 351

13.6构建基于Showslow的监控体系 356

13.6.1 Showslow介绍 356

13.6.2 Showslow环境搭建 356

13.6.3 ShowSlow配置 357

13.6.4 YSlow配置 357

13.6.5 WebDriver驱动的定时监控体系 359

13.7本章小结 361

第14章 性能测试自动化——Jenkins+Ant+JMeter 362

14.1为什么要做性能测试自动化 363

14.2如何做性能测试自动化 365

14.3 Ant+JMeter集成 365

14.3.1 Ant下载 366

14.3.2 Ant安装 366

14.3.3 JMeter中配置XML文件来定义测试活动 367

14.3.4运行测试计划 369

14.4 Jenkins+Ant集成 371

14.4.1 Jenkins安装 372

14.4.2建立Slave节点 374

14.4.3 JMeter任务配置 377

14.5如何运行复杂场景 385

14.6报告自动化 385

14.6.1配置TPS、响应时间等图表 385

14.6.2报告合成 386

14.7 JMeter脚本拷贝自动化 391

14.8 JMeter Agent自动化 395

14.9本章小结 398

第15章 JMeter常见问题 399

15.1 JMeter无法开启 400

15.2 JMeter异常关闭 400

15.3 JMeter无法产生负载 401

15.4 JMeter日志输出控制 401

15.5记录测试结果影响Jmeter效率 402

15.6 JMeter可以测试接口吗 402

15.7 JMeter可以测试Dubbo接口吗 403

15.8 JMeter可以测试RPC接口吗 404

15.9 JMeter函数助手中函数不够用怎么办 404

15.10 JMeter支持子事务的定义吗 407

15.11 JMeter非GUI方式运行时如何传递运行参数 408

15.12运行场景时察看结果树为什么要关闭 409

15.13多个测试计划如何运行 409

15.14如何找导致CPU瓶颈的程序 410

15.15如何找导致内存瓶颈的程序 410

15.16如何找导致IO瓶颈的程序 411

15.17如何计算并发用户数 411

15.18 JMeter可以做哪些测试 412

15.19性能测试的分析方法有哪些 412

15.20如何看懂Java线程栈信息 413

15.21能用本地负载环境测试“云环境”的性能吗 413

15.22性能测试环境和生产环境不一致 414

15.23本章小结 414

附录A Jforum性能测试计划 415

A.1性能测试背景 416

A.2性能测试目标 416

A.3性能测试范围 416

A.4名词术语约定 416

A.5测试环境 417

A.5.1生产环境系统架构 417

A.5.2测试环境系统架构 418

A.5.3生产环境软硬件配置 418

A.5.4测试环境软硬件配置 419

A.5.5负载机软硬件配置 419

A.6需求分析 420

A.6.1业务模型 420

A.6.2性能指标 421

A.7测试策略 422

A.7.1测试执行策略 422

A.7.2测试监控策略 422

A.8测试场景 423

A.9测试准备 423

A.9.1测试工具准备 424

A.9.2测试脚本及程序准备 424

A.9.3测试数据准备 424

A.9.4测试环境准备 424

A.10测试组织架构 425

A.11交付清单 425

A.12项目风险 426

A.13附录 426

附录B 性能测试报告 427

B.1性能测试背景 428

B.2性能测试目标 428

B.3性能测试范围 428

B.4名词术语约定 429

B.5测试环境 430

B.5.1生产环境系统架构 430

B.5.2测试环境系统架构 430

B.5.3生产环境软硬件配置 431

B.5.4测试环境软硬件配置 431

B.5.5负载机软硬件配置 431

B.6测试数据 432

B.6.1历史数据量 432

B.6.2主数据 432

B.6.3性能指标 432

B.7测试进度 433

B.8测试结果 433

B.8.1基准测试结果 433

B.8.2配置测试 434

B.8.3负载测试结果 438

B.8.4稳定性测试结果 445

B.9测试结论 447

B.9.1测试结论 447

B.9.2系统缺陷 448

B.10系统风险 448

参考资料 449