《JMeter核心技术、性能测试与性能分析》是一本由清华大学出版社出版的图书,JMeter是一款基于Java的压力测试工具,可用于对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。本书详解JMeter性能测试和性能分析的方法,配套PPT课件、教学大纲与作者微信群答疑服务。

本书共分11章,内容包括认识JMeter、认识性能测试、初识JMeter元件、JMeter主要元件详细介绍、常见JMeter性能测试脚本编写案例、BeanShell、JMeter中如何编写自定义的取样器、性能分析、电商网站的秒杀系统性能测试与性能分析案例、JMeter性能测试的最佳实践、大模型辅助性能测试。最后还给出一个JMeter属性配置项的附录供读者参考。

本书既适合JMeter性能测试初学者、性能测试与分析人员、性能测试解决方案设计师、软件性能测试经理,也适合高等院校或高职高专院校学习软件测试课程的学生。

本书目的

本书针对性能测试中遇到的常见问题,帮助读者掌握性能测试的基础知识、JMeter性能测试工具的使用、JMeter性能测试的执行方法与案例,以及遇到性能瓶颈时分析和解决问题的技巧。

本书作者

张永清、张永松

作者简介

张永清,从事功能测试、自动化测试、性能测试、Java软件开发、大数据开发、架构师等工作近二十年,在自动化测试设计、性能测试设计、性能诊断、性能调优、分布式架构设计等方面积累了多年经验。参与过的系统涉及公安、互联网、移动互联网、大数据、人工智能等领域。先后任职于江苏飞搏软件、苏宁大数据研发中心、苏宁研究院、苏宁人工智能研发中心、紫金普惠研发中心、福特汽车工程研究有限公司,历任测试经理、技术经理、部门经理、高级架构师等职位。重点关注大数据、图像处理、高性能分布式架构设计等领域。著有图书《数据资产管理核心技术与应用》《软件性能测试、分析与调优实践之路》《软件性能测试、分析与调优实践之路 (第2版)》《Robot Framework自动化测试框架核心指南》。

本书内容

第1、2章,主要介绍JMeter的基础知识以及性能测试的基础概念,帮助读者建立起对性能测试的知识框架,并快速入门性能测试领域。

第3、4章,主要介绍如何使用JMeter提供的各种强大的测试功能,帮助读者掌握JMeter的使用方法。

第5~7章,主要介绍如何使用JMeter来完成性能测试脚本的编写。这几章提供了多个性能测试脚本编写案例,帮助读者将第3、4章讲解的JMeter测试功能运用到脚本编写实践中去。

第8章,主要介绍软件性能分析与调优的理论知识以及调优思想等。本章还会对常见的性能问题做了分析和总结。

第9章,主要剖析了一个完整的性能测试与性能分析调优的案例。通过该案例,帮助读者把前面章节中学习到的知识进行一个完整的实践。读者通过这个案例的实践,在拿到一个性能测试需求时,可以自己有条有理地去完成性能测试的整个过程。

第10章,主要是JMeter性能测试的实践要点。本章包括确定编写脚本的场景、设计用户思考时间、脚本编写主意事项、执行性能测试时的注意事项,以及性能测试时的监控指标。

第11章,简单讲解一下大模型辅助性能测试的应用场景,帮助读者提高性能测试工作的效率。

附录,主要讲解JMeter属性配置项,方便读者在做性能测试时随手查阅。

本书学习方法

(1)本书精心设计的实践示例和案例,可以帮助读者深入掌握JMeter性能测试的方法和技巧。因此,建议读者在学习的时候一定要动手实践本书的示例和案例。

(2)本书每章的最后一节给出了读者必须掌握的重点内容,读者可以根据提示快速回顾每章的关键知识点,掌握本章内容之后再进行下一章的学习。

(3)本书讲解的性能测试基础知识,是完成性能测试的指导思想,建议读者熟记。

(4)多做JMeter操作练习,碰到问题多加思考,将理论知识运用到性能测试实践之中,并通过实践加深对性能测试与性能分析方法的理解。

本书读者

本书既适合JMeter性能测试初学者、性能测试与分析人员、性能测试解决方案设计师、软件性能测试经理,也适合高等院校或高职高专院校软件性能测试课程的学生。

本书目录

第1章  认识JMeter······················································································· 1

1.1  JMeter基本介绍······································································································· 1

1.2  性能测试的发展······································································································· 3

1.3  性能测试工具的发展································································································· 4

1.4  选择JMeter的原因··································································································· 5

1.5  JMeter的安装部署···································································································· 7

1.6  JMeter的元件·········································································································· 9

1.7  JMeter的运行模式·································································································· 13

1.7.1  GUI模式····································································································· 13

1.7.2  命令行模式·································································································· 13

1.7.3  服务器模式·································································································· 15

1.8  本章总结·············································································································· 18

第2章  认识性能测试··················································································· 19

2.1  性能的基本概念····································································································· 19

2.1.1  什么是性能·································································································· 19

2.1.2  性能测试的意义···························································································· 21

2.1.3  常见的性能指标···························································································· 21

2.2  性能测试的基本概念······························································································· 24

2.2.1   性能测试的种类··························································································· 24

2.2.2  性能测试的场景···························································································· 25

2.3  性能测试的流程····································································································· 25

2.3.1  性能需求分析······························································································· 26

2.3.2  指定性能测试计划························································································· 26

2.3.3  编写性能测试方案························································································· 27

2.3.4  编写性能测试案例························································································· 30

2.3.5  搭建性能测试环境························································································· 30

2.3.6  构造性能测试数据························································································· 30

2.3.7  编写性能测试脚本························································································· 31

2.3.8  执行性能测试······························································································· 31

2.3.9  编写性能测试报告························································································· 31

2.4  本章总结·············································································································· 32

第3章  初识JMeter元件··············································································· 33

3.1  测试计划·············································································································· 34

3.2  线程组················································································································· 36

3.3  配置元件·············································································································· 38

3.3.1  常用配置元件······························································································· 38

3.3.2  JDBC Connection Configuration配置项详情·························································· 40

3.3.3  TCP取样器配置详情······················································································ 42

3.3.4  HTTP授权管理器配置详情·············································································· 43

3.4  前置处理器··········································································································· 44

3.5  定时器················································································································· 47

3.6  取样器················································································································· 49

3.7  后置处理器··········································································································· 67

3.8  断言···················································································································· 72

3.9  监听器················································································································· 75

3.10  开始一个性能测试脚本的编写案例············································································ 80

3.11  本章总结············································································································· 83

第4章  JMeter主要元件详解·········································································· 85

4.1  配置元件·············································································································· 85

4.1.1  CSV数据文件设置························································································· 85

4.1.2  HTTP Cookie管理器······················································································· 87

4.1.3  HTTP 信息头管理器······················································································· 88

4.2  函数助手·············································································································· 89

4.3  逻辑控制器··········································································································· 94

4.4  取样器················································································································ 101

4.4.1  WebSocket取样器························································································ 102

4.4.2  Dubbo取样器······························································································ 105

4.5  本章总结············································································································· 107

第5章  常见JMeter性能测试脚本的编写案例··················································· 108

5.1  用户需先登录,然后再请求别的接口········································································· 108

5.2  前一个请求返回的结果作为后一个请求的入参····························································· 111

5.3  使用JMeter对MySQL数据进行性能测试··································································· 117

5.3.1  利用JMeter为MySQL数据库构造测试数据······················································· 117

5.3.2  利用JMeter对MySQL数据库查询进行性能测试················································· 123

5.4  本章总结············································································································· 126

第6章  BeanShell······················································································ 127

6.1  BeanShell的安装··································································································· 128

6.2  BeanShell的基础语法····························································································· 130

6.2.1  变量和数据类型·························································································· 130

6.2.2  运算符······································································································ 132

6.2.3  控制流语句································································································ 133

6.2.4  函数和方法································································································ 138

6.2.5  异常处理··································································································· 139

6.2.6  文件操作··································································································· 140

6.3  BeanShell中如何使用JMeter内置变量······································································· 145

6.3.1  ctx············································································································ 146

6.3.2  vars·········································································································· 147

6.3.3  props········································································································· 148

6.3.4  prev·········································································································· 150

6.3.5  sampler······································································································ 155

6.3.6  log············································································································ 156

6.3.7  data·········································································································· 156

6.3.8  sampleEvent································································································ 157

6.3.9  sampleResult······························································································· 158

6.3.10  ResponseMessage和ResponseCode·································································· 158

6.3.11  ResponseData和ResponseHeaders··································································· 159

6.3.12  RequestHeaders·························································································· 160

6.3.13  Failure和FailureMessage·············································································· 161

6.3.14  Parameters和FileName················································································ 162

6.3.15  SampleLabel······························································································ 163

6.4  JMeter中使用BeanShell的案例················································································ 163

6.5  本章总结············································································································· 171

第7章  JMeter中如何编写自定义的取样器······················································· 172

7.1  JavaSamplerClient取样器抽象接口介绍······································································ 173

7.2  自定义的取样器的编写案例····················································································· 176

7.3  本章总结············································································································· 185

第8章  性能分析与调优··············································································· 186

8.1  性能分析与调优模型······························································································ 186

8.2  性能分析与调优思想······························································································ 188

8.2.1  分层分析··································································································· 188

8.2.2  科学论证··································································································· 189

8.2.3  问题追溯与归纳总结···················································································· 190

8.3  性能调优技术······································································································· 190

8.3.1  缓存调优··································································································· 190

8.3.2  同步转异步推送·························································································· 192

8.3.3  削峰填谷··································································································· 193

8.3.4  拆分········································································································· 194

8.3.5  任务分解与并行计算···················································································· 195

8.3.6  索引与分库分表·························································································· 196

8.3.7  层层过滤··································································································· 198

8.4  常见性能问题分析总结··························································································· 199

8.5  本章总结············································································································· 203

第9章  电商网站的秒杀系统性能测试与性能分析案例········································· 205

9.1  性能需求分析······································································································· 205

9.2  制定性能测试计划································································································· 209

9.3  编写性能测试方案································································································· 211

9.4  编写性能测试案例································································································· 214

9.5  搭建性能测试环境································································································· 216

9.6  构造性能测试数据································································································· 219

9.7  编写性能测试脚本································································································· 223

9.7.1 性能测试涉及的3个接口··············································································· 223

9.7.2  单场景-商品查询性能测试脚本的编写······························································ 224

9.8  执行性能测试······································································································· 235

9.8.1 单场景-商品查询性能压测·············································································· 235

9.8.2  混合场景-商品查询-订单提交性能压测····························································· 246

9.9  完成性能测试报告································································································· 256

9.10  本章总结··········································································································· 260

第10章  JMeter性能测试的最佳实践······························································ 261

10.1  确定要编写脚本的关键业务场景············································································· 261

10.2  如何设计真实的用户思考时间················································································ 262

10.3  JMeter编写性能测试脚本的注意事项······································································· 265

10.4  JMeter执行性能测试时的注意事项·········································································· 266

10.4.1  JMeter运行内存设置··················································································· 266

10.4.2  操作系统参数的设置··················································································· 268

10.5  性能测试时,通常需要做哪些监控·········································································· 272

10.6  本章总结··········································································································· 273

第11章  大模型辅助性能测试········································································ 274

11.1  人工智能大模型的发展························································································· 274

11.2  大模型辅助性能测试···························································································· 276

11.2.1  大模型辅助性能测试脚本的编写···································································· 276

11.2.2  大模型辅助性能测试数据的构造···································································· 278

11.2.3  大模型辅助性能瓶颈问题的分析···································································· 280

11.3  本章总结··········································································································· 282

附录  JMeter属性配置················································································· 283

【图书预售】清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》开始预售了的更多相关文章

  1. 《Linux企业应用案例精解》一书已由清华大学出版社出版

    <Linux企业应用案例精解>简介 650) this.width=650;" border="0" alt="223754878.jpg" ...

  2. JavaScript从入门到精通(附光盘1张):作者:明日科技出版社:清华大学出版社出版时间:2012年09月

    本书介绍 一:本书 pdf 获取信息 本书下载:请申请加入本群 (QQ群:668345923),   并联系群主. 本群主有:本书pdf 全文教材 及附带的 光盘内容 二:本书目录介绍 第1篇  基 ...

  3. 踢爆IT劣书出版黑幕——由清华大学出版社之《C语言入门很简单》想到的(1)

    1.前言与作者 首先声明,我是由于非常偶然的机会获得<C语言入门很简单>这本书的,绝对不是买的.买这种书实在丢不起那人. 去年这书刚出版时,在CU论坛举行试读推广,我当时随口说了几句(没说 ...

  4. 郑捷2017年电子工业出版社出版的图书《NLP汉语自然语言处理原理与实践》

    郑捷2017年电子工业出版社出版的图书<NLP汉语自然语言处理原理与实践> 第1章 中文语言的机器处理 1 1.1 历史回顾 2 1.1.1 从科幻到现实 2 1.1.2 早期的探索 3 ...

  5. 《C语言入门1.2.3—一个老鸟的C语言学习心得》—清华大学出版社炮制的又一本劣书及伪书

    <C语言入门1.2.3—一个老鸟的C语言学习心得>—清华大学出版社炮制的又一本劣书及伪书 [薛非评] 区区15页,有80多个错误. 最严重的有: 通篇完全是C++代码,根本不是C语言代码. ...

  6. 《JavaWeb从入门到精通》(明日科技,清华大学出版社)

    <JavaWeb从入门到精通>(明日科技,清华大学出版社)

  7. 4月27号开学! 第6期《jmeter实战接口自动化+性能》课程,零基础也能学

    2019年 第6期<jmeter实战接口自动化+性能>课程,4月27号开学! 主讲老师:飞天小子 上课方式:QQ群视频在线教学 本期上课时间:4月27号-6月9号,每周六.周日晚上20:0 ...

  8. jmeter如何玩之badboy + jmeter并发性能测试

    今天下班时公司安排了一个同事来对项目做集群性能测试,怀着对性能测试的好奇心,下班后没有着急离开,而是等待 那位同事的到来,然后在旁边学习了下如何使用Badboy和jmeter做性能测试. 1. 软件介 ...

  9. jenkins+ant+jmeter自动化性能测试平台

    jenkins+ant+jmeter自动化性能测试平台 Jmeter是性能测试的工具,java编写.开源,小巧方便,可以图形界面运行也可以在命令行下运行.网上已经有人使用ant来运行,http://w ...

  10. Jmeter:性能测试指南(转)

    http://yukinami.github.io/2015/11/26/%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95%E6%8C%87%E5%8D%97/ 性能测试指南 ...

随机推荐

  1. NextJS CVE-2025-29927 安全漏洞

    NextJS CVE-2025-29927 安全漏洞 CVE-2025-29927 是一个存在于 Next.js 框架中的关键安全漏洞.该漏洞允许攻击者通过伪造或篡改 x-middleware-sub ...

  2. 【Linux】3.10 进程管理(重点)

    进程管理 1. 进程管理基础 在Linux中,每个执行的程序(代码)都称为一个进程.每个进程都分配一个ID号 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程.例如www服务器. 每个进 ...

  3. Let’s Encrypt & Certbot 浅谈

    前言 当我们想给网站启用HTTPS, 通常需要从证书颁发机构购买证书, 并配置到现有的HTTP服务上来实现HTTPS. 这里暗藏的痛点是: 我们需要花钱(买证书) 证书颁发机构(质量参差不齐, 不一定 ...

  4. 思绪碎片:一个INFP的自我对话

    ## 关于存在与意义 > "我写一些东西,不是为了让别人看见,而是为了未来的我." -- 阮一峰 - 未知带来的心慌持续蔓延 - **根本症结**:自身的弱小,无法坦然面对生 ...

  5. jeecgboot前端按钮角色权限控制(是否隐藏)

    官方文档 http://doc.jeecg.com/2044038 解决办法 首先需要修改前端代码,在想获得权限控制的按钮组件中使用指令 v-has="''". 代码示例: < ...

  6. 前端艺术实践:用Storybook构建交互式组件文档

    对于前端来说,组件话已经从热门话题变成了基础能力,自定义组件或自建组件库已是再常见不过的事了.在实际工作中组件库的文档直接决定开发体验和效率,文档建设的重要性不言而喻.今天要推荐的工具叫Storybo ...

  7. .net core基础(一):安装并创建第一个webapi

    一..net介绍 .net是一个开发者平台的统称,用它可以构建多种类型的应用程序. .net平台下的开发语言:C#,F#,Visual Basic .net平台标准:.NET Standard .ne ...

  8. kettle实时增量同步mysql数据

    ** 本文主要介绍运用kettle实时增量同步mysql数据 ** Debezium介绍 官网地址:https://debezium.io/documentation/ Debezium是一个开源项目 ...

  9. 2025dsfz集训Day10:区间、树形DP

    Day10:区间.树形DP 区间DP 区间类型动态规划是线性动态规划的拓展,它在分阶段划分问题时,与阶段中元素出现的顺序和由前一阶段的哪些元素合并而来有很大的关系.(例:\(f[i][j]=f[i][ ...

  10. 备份一个有的时候,可能需要把其它exe或者dll包含在主程序中....

    1.选中附件,右键生成操作选择  嵌入的资源,例如:handle.exe 2.FileUtil 1 using System.IO; 2 using System.Reflection; 3 4 na ...