通过案例玩转JMeter 评分 1.0
评分
1.0
1次评价
作者: 顾翔
出版社: 清华大学出版社
发行年月: 2022-11
装帧: 平装
版次: 2022-11第一版第一次印刷
页数: 280
定价: 69元
ISBN: 9787302618232
评价:
点个赞,支持一下吧~
作者介绍

顾翔 (小老鼠)
目录

第1章测试软件和被测产品/1

1.1JMeter概述/1

1.2JMeter的安装/2

1.2.1JMeter的单机环境安装/2

1.2.2JMeter的分布式环境安装/4

1.3进入JMeter的世界/5

1.3.1JMeter的目录结构及多语言版本/5

1.3.2JMeter的界面/7

1.3.3JMeter的九大元件组/11

1.4被测产品: 电子商务系统/13

1.4.1被测产品的介绍/13

1.4.2被测产品的安装/14

1.4.3被测产品的模块/15

1.4.4被测产品的安全机制/19

第2章HTTP/HTTPS/21

2.1HTTP的工作原理/21

2.2HTTP的请求包和响应包/22

2.2.1HTTP的请求包/22

2.2.2HTTP的响应包/24

2.3HTTP的无连接性和无状态性/24

2.3.1HTTP的无连接性/24

2.3.2HTTP的无状态性/25

第3章测试脚本初始化/27

3.1测试脚本的初始化生成/27

3.1.1利用工具录制JMeter测试脚本/28

3.1.2录制HTTPS下的脚本/37

3.1.3自己建立JMeter测试脚本/43

3.2录制结果的验证/45

3.3脚本初始化中使用的JMeter基本元件/46

3.3.1“测试计划”元件/46

3.3.2“HTTP Cookie管理器”元件/48

3.3.3“HTTP信息头管理器”元件/49

3.3.4“用户定义的变量”元件/50

3.3.5“HTTP请求默认值”元件/50

3.3.6“HTTP代理服务器”元件/53

3.3.7“线程组”元件/56

3.3.8“setUp线程组”和“tearDown线程组”元件/58

3.4脚本初始化中使用的取样器/59

3.4.1“HTTP请求”元件/59

3.4.2“调试取样器”元件/61

3.5脚本初始化中使用的逻辑控制器/63

3.5.1“录制控制器”元件/63

3.5.2“循环控制器”元件/63

3.6脚本初始化中使用的监听器/64

3.6.1“察看结果树”元件/64

3.6.2“简单数据写入器”元件/68

3.6.3“用表格察看结果”元件/68

目录

第4章建立登录接口测试脚本/69

4.1登录接口测试脚本的建立/69

4.1.1生成密码的SHA256散列值/69

4.1.2对CSRF token的处理/70

4.1.3建立测试断言/75

4.1.4用户名和密码的参数化/79

4.1.5建立“setUp线程组”元件与“tearDown线程组”元件/84

4.2J2EE版本商品列表的接口测试脚本/90

4.3登录接口测试脚本中使用的散列函数/94

4.4登录接口测试脚本中使用的断言/96

4.4.1“响应断言”元件/96

4.4.2“BeanShell断言”元件/98

4.4.3与XML相关的断言/100

4.5登录接口测试脚本中使用的提取器/102

4.5.1“正则表达式提取器”元件/102

4.5.2“边界提取器”元件/103

4.5.3“XPath提取器”元件/104

4.5.4XPath2 Extractor元件/105

4.6登录接口测试脚本中使用的配置元件/106

4.6.1CSV Data Set Config元件/106

4.6.2JDBC Connection Configuration元件/108

4.6.3“计数器”元件/110

4.7登录接口测试脚本中使用的取样器/111

第5章建立其他接口测试脚本/113

5.1与注册相关的测试脚本/113

5.1.1建立正常注册功能的接口测试脚本/113

5.1.2建立异常注册功能的接口测试脚本/117

5.1.3清理注册功能测试产生的垃圾数据/121

5.1.4处理与登录相关的元件/122

5.2与商品相关的接口测试脚本/122

5.2.1查询商品接口测试脚本/123

5.2.2Django版本查看商品详情接口测试脚本/124

5.2.3J2EE版本查看商品详情接口测试脚本/127

5.2.4通过后台添加商品测试脚本/132

5.3与购物车相关的接口测试脚本/136

5.3.1添加购物车的接口测试脚本/136

5.3.2查看购物车的接口测试脚本/138

5.4与订单相关的接口测试脚本/139

5.4.1与订单相关的接口测试脚本初始化/139

5.4.2创建与订单相关的接口测试脚本/141

5.5与注册、商品、购物车、订单相关的接口测试脚本中使用的逻辑控制器/145

5.5.1“仅一次控制器”元件/145

5.5.2“简单控制器”元件/145

5.5.3“如果(If)控制器”元件/146

5.6与注册、商品、购物车、订单相关的接口测试脚本中使用的函数助手/147

5.6.1随机函数/147

5.6.2CSVRead函数/148

5.7与注册、商品、购物车、订单相关的接口测试脚本中使用的提取器/149

5.7.1“CSS/JQuery提取器”元件/149

5.7.2与JSON相关的提取器/151

5.8与注册、商品、购物车、订单相关的接口测试脚本中使用的断言/161

5.8.1“JSON断言”元件/162

5.8.2JSON JMESPath Assertion元件/162

5.9与注册、商品、购物车、订单相关的接口测试脚本中使用的取样器/163第6章JMeter二次开发/166

6.1JMeter二次开发的3种方法/166

6.1.1开发BeanShell调用外部JAR文件实现SHA256散列处理/166

6.1.2开发函数助手实现SHA256散列处理/169

6.1.3利用Java请求实现SHA256散列处理/173

6.2JMeter二次开发中使用的元件/181

6.2.1前置/后置处理器/181

6.2.2取样器: “Java请求”元件/183

第7章建立安全测试脚本及运行/185

7.1暴力破解测试方法及预防措施/185

7.1.1暴力破解的原理和预防措施/185

7.1.2暴力破解的测试方法/186

7.2篡改找回密码的邮件地址和手机号码的测试方法/189

7.2.1篡改找回密码的邮件地址的测试方法/189

7.2.2篡改找回密码的手机号码的测试方法/190

7.3横向越权和纵向越权的测试方法/191

7.3.1横向越权的测试方法/191

7.3.2纵向越权的测试方法/196

7.4安全测试中使用的逻辑控制器/197

7.4.1“模块控制器”元件/198

7.4.2“ForEach控制器”元件/198

7.5安全测试中使用的“测试片段”元件/199

第8章建立及运行性能测试脚本/200

8.1单场景性能测试的搭建/200

8.2多场景性能测试的搭建/203

8.2.1搭建Django版本的多场景性能测试/203

8.2.2搭建Django版本与J2EE版本共同的多场景性能测试/205

8.3性能测试的执行/206

8.3.1并发负载测试的执行/206

8.3.2容量负载测试的执行/211

8.3.3疲劳性测试的执行/213

8.3.4强度测试的执行/213

8.4性能测试中使用的逻辑控制器: “吞吐量控制器”元件/214

8.5性能测试中使用的断言: “断言持续时间”元件/215

8.6性能测试中使用的配置元件: “HTTP缓存管理器”元件/216

8.7性能测试中使用的定时器/217

8.7.1“同步定时器”元件/217

8.7.2“固定定时器”元件/218

8.7.3“统一随机定时器”元件/218

8.7.4“高斯随机定时器”元件/218

8.7.5“泊松随机定时器”元件/219

8.8性能测试中使用的监控器/220

8.8.1“聚合报告”元件/220

8.8.2“汇总报告”元件/221

8.8.3“汇总图”元件/222

8.8.4“响应时间图”元件/223

8.8.5“图形结果”元件/225

第9章JMeter性能测试的运行与监控/226

9.1通过JMeter自带的工具运行JMeter性能测试/226

9.2通过Apache Ant运行JMeter性能测试/227

9.3通过Taurus运行JMeter/231

9.4性能测试监控/232

9.4.1压测端监控工具组: JMeter+InfluxDB+Grafana/232

9.4.2被测端监控工具组: Exporter+Prometheus+Grafana/241

9.4.3全链路监控工具: SkyWalking/247

9.5性能测试监控中使用的元件: 后端监听器/252

第10章JMeter的其他元件/255

10.1逻辑控制器/255

10.1.1“While控制器”元件/255

10.1.2“Switch控制器”元件/256

10.1.3“交替控制器”元件/257

10.1.4“Runtime控制器”元件/258

10.1.5“随机控制器”元件/258

10.1.6“随机顺序控制器”元件/258

10.2断言/259

10.2.1“大小断言”元件/259

10.2.2“HTML断言”元件/260

10.2.3“MD5Hex断言”元件/261

10.3定时器/261

10.3.1“常数吞吐量定时器”元件/262

10.3.2“准确的吞吐量定时器”元件/262

10.4取样器/263

10.4.1“FTP取样器”元件/263

10.4.2“OS进程取样器”元件/264

10.4.3“JUnit取样器”元件/267

10.5配置元件/270

10.5.1“FTP默认请求”元件/270

10.5.2“Java默认请求”元件/270

10.5.3简单配置元件/270

10.5.4“随机变量”元件/271

附录AJMeter元件中英文术语对照/273

内容介绍

软件测试从测试方向上分为功能测试和非功能测试。功能测试以外的测试均为非功能测试。非功能测试又可分为易用性测试、性能测试、安全性测试、可靠性测试、可维护性测试等。

软件测试从测试方法上可分为自动化测试和非自动化测试。自动化测试既可以自己编写测试脚本,也可以使用已有的测试工具;非自动化测试通过手工的方式进行测试。在非功能测试中,性能测试必须使用自动化测试工具,这是因为在性能测试中并发测试是非常重要的一个测试内容。如果不使用自动化测试工具,性能测试是很难实现的。性能测试可以自己构建,也可以使用现有的性能测试产品构建。

前些年,自动化测试最热门的工具是HP公司的LoadRunner。近几年来,在移动互联网对并发量要求越来越高的情况下,开源的性能测试工具JMeter越来越受到软件测试工程师的认可。另外,由于JMeter是基于协议的测试工具,所以也可以进行接口测试(一种不考虑GUI,仅考虑协议的功能测试技术)和安全测试。然而,JMeter毕竟是一个开源的测试工具,其易用性远远比不上LoadRunner。现在市面上关于JMeter的图书比较少,而仅有的几种图书也主要是对JMeter工具本身进行介绍。许多读者反映,阅读了这些书,仅仅知道了JMeter的各个元件的功能,还是不知道如何将JMeter结合到实际工作中。为此,我编写了本书,基于案例手把手地帮助读者掌握JMeter的使用方法。

书评

本书内容可以分为5部分。

第1部分为本书的第1、2章,是入门内容。第1章介绍JMeter基础知识和安装方法,并介绍被测产品——电子商务系统,这个被测产品将贯穿本书的始终;第2章介绍在JMeter中用得最多的协议——HTTP/HTTPS。

第2部分为本书的第3~6章,主要介绍测试脚本的建立。第3章介绍测试脚本初始化;第4章介绍如何建立登录接口测试脚本;第5章介绍如何建立其他接口测试脚本,包括与注册、商品、购物车和订单相关的接口测试脚本;第6章介绍JMeter的二次开发,即针对复杂业务建立测试脚本的方法。

第3部分为本书的第7章,介绍如何利用JMeter进行安全测试。

第4部分为本书的第8、9章,介绍性能测试。第8章介绍如何在接口测试的基础上进行性能测试;第9章介绍如何运行JMeter和进行性能测试监控。

第5部分为本书的第10章,简要介绍在前面各章中没有提及的比较重要的JMeter元件。

对于工具的介绍,大部分图书采取的方式是先介绍工具涉及的理论知识,然后介绍工具本身。编者认为这种方式不便于初学者快速掌握工具的使用。反过来,先对工具进行一系列操作,对工具有了一定的感性认识,再学习理论,才会对工具的使用有更深入的了解。建议读者在学习完理论知识以后,再回过头来想一想开始时这样操作的原因,这样的学习方法对于掌握工具更有好处。基于这样的思路,本书第2~8章的内容都是按照先操作再介绍产品的顺序组织的。

另外,本书的主要内容都配有微视频课程以及相关的代码和JMeter脚本。

在下面的二维码中,有本书配套微视频课程、相关代码和JMeter脚本的观看方式,以及作者的公众号和本书的讨论群信息。

116.9° /1169阅读/10点赞 发表评论

登录 后发表评论
认领图书 分享图书
出版社介绍

清华大学出版社成立于1980年6月,是教育部主管、清华大学主办的综合性大学出版社。2009年4月由国有独资全民所有制企业改制为有限责任公司。2014年10月成立清华大学出版集团。作为国内领先的综合性教育与专业出版机构,清华社先后荣获 “先进高校出版社”“全国优秀出版社”“全国百佳图书出版单位”“中国版权最具影响力企业”“首届全国教材建设奖全国教材建设先进集体”等荣誉。