全栈自动化测试——基于Java和TestNG
  • 推荐0
  • 收藏1
  • 浏览174

全栈自动化测试——基于Java和TestNG

卢家涛 (作者) 

  • 书  号:ISBN 978-7-121-38382-3
  • 出版日期:2020-03-01
  • 页  数:
  • 开  本:
  • 出版状态:上市销售
  • 维护人:安娜
TestNG 作为Java 中举足轻重的测试框架,除可以替代JUnit 进行单元自动化测试外,还可以通过集成Selenium、Appium 和HttpClient 等框架做各种类型的自动化测试。本书首先对自动化测试进行了概述,接着对TestNG 的语法进行了讲解,核心部分是使用TestNG 进行单元自动化测试、接口自动化测试和界面自动化测试,最后介绍了持续集成、Mock 测试和代码覆盖率等扩展知识。
本书适合测试工程师、自动化测试工程师和测试管理者阅读。
本书是一本TestNG入门手册,可帮助读者快速上手,并在实践中使用TestNG测试框架。
卢家涛,2011年开始接触自动化测试,对基于Java和Python的自动化测试技术有深入研究。现于某公司担任高级测试工程师一职,负责整个公司的自动化测试方向研究和项目落地。
前言
写作背景
2011 年我接触了第一个自动化测试工具DeviceAnywhere,该工具将真实手机置于云端,通过录制回放执行自动化测试脚本,最终采用图片对比技术实现断言。自此之后,我对自动化测试技术产生了浓厚的兴趣,在之后的8 年多时间里,我不断学习自动化测试技术,并把它落实到实际项目中。
为什么是TestNG,而不是JUnit?
JUnit 主要用于单元测试,而TestNG 在JUnit 的基础上做了很多改进,更适合做全栈自动化测试的整体框架。

本书内容
本书的写作顺序不是由浅入深的,而是“自底向上”的,即按照单元自动化测试、接口自动化测试和界面自动化测试的顺序编写的。
本书首先对自动化测试进行了概述(第1 章);
接着对Java 和TestNG 语法进行了讲解(第2 章和第3 章);
核心部分是使用TestNG 进行单元自动化测试、接口自动化测试和界面自动化测试(第4章至第10 章);
最后介绍了持续集成、Mock 测试和代码覆盖率等扩展知识(第11 章)。
对于代码基础比较薄弱的读者,建议在阅读完前三章内容后,先阅读较为简单的第5、7、8 章,再阅读第4、6、9、10、11 章。

适合读者
测试工程师:本书可以从简单的Web 自动化测试(第7 章)带你走进自动化测试的大门。
自动化测试工程师:打通各个级别的自动化测试壁垒,帮助读者全面掌握单元自动化测试、接口自动化测试和界面自动化测试。
测试管理者:了解主流自动化测试技术,指导团队开展自动化测试,把握自动化测试的方向和目标。

致谢
感谢老婆的理解和支持,让我能全身心地编写本书。
感谢老大(陈恒骥)给我进入软件测试行业的机会,没有这个机会,我不可能在这个行业走得这么远。
感谢编辑安娜在本书出版过程中耐心的指导。
虽然书中的每个技术点都曾在实际项目中实践过,但由于时间仓促难免有误,敬请读者批评指正。
笔者的GitHub:https://github.com/lujiatao2/httpinterface/releases。
卢家涛
2019 年12 月20 日

目录

第1 章 自动化测试概述 1
1.1 自动化测试定义和分类 . 1
1.2 自动化测试的目的 . 3
1.2.1 提高软件质量 3
1.2.2 提高测试效率 5
1.3 自动化测试实施三要素 . 6
1.3.1 有明确的目标 6
1.3.2 有足够的资源 7
1.3.3 有合理的计划 8

第2 章 TestNG 语法 . 12
2.1 TestNG 简介 12
2.2 测试前的准备工作 . 12
2.2.1 配置Maven 12
2.2.2 创建工程 14
2.2.3 测试执行 16
2.3 TestNG 注解 19
2.3.1 前置条件和后置条件 20
2.3.2 数据驱动 24
2.3.3 测试用例 25
2.4 testng.xml. 28
2.4.1 28
2.4.2 . 30
2.4.3 标签 32

第3 章 单元自动化测试 34
3.1 编写待测程序 . 34
3.2 手工测试用例设计 . 35
3.2.1 分析待测程序 35
3.2.2 测试用例设计 35
3.3 设计自动化测试用例 . 36
3.3.1 基于JUnit 设计自动化测试用例 36
3.3.2 基于TestNG 设计自动化测试用例 38
3.4 Spring 的单元自动化测试 42
3.4.1 Java 企业级应用简介 42
3.4.2 编写待测程序 44
3.4.3 单元自动化测试 50

第4 章 HTTP 接口自动化测试 56
4.1 HTTP 简介 56
4.2 部署待测程序 . 57
4.3 手工测试用例设计 . 58
4.3.1 分析待测接口 58
4.3.2 测试用例设计 60
4.4 HttpClient 用法 . 62
4.4.1 HttpClient 简介 62
4.4.2 创建工程 63
4.4.3 发送HTTP 请求 64
4.4.4 处理服务器响应 66
4.4.5 设置请求头 68
4.5 TestNG 集成HttpClient 68
4.5.1 RESTful 接口自动化测试 . 69
4.5.2 SOAP 接口自动化测试 . 81

第5 章 RPC 接口自动化测试 . 87
5.1 RPC 简介 . 87
5.2 部署待测程序 . 88
5.3 手工测试用例设计 . 90
5.3.1 分析待测接口 90
5.3.2 测试用例设计 91
5.4 TestNG Dubbo 接口自动化测试 92
5.4.1 基于XML 方式 . 94
5.4.2 基于API 方式 99
5.4.3 基于注解方式 100
5.4.4 泛化调用 102

第6 章 Web 自动化测试 . 107
6.1 Web 自动化测试工具(框架)简介 . 107
6.2 部署待测程序 . 108
6.3 Selenium 用法 . 109
6.3.1 准备 109
6.3.2 元素操作 110
6.3.3 鼠标事件 115
6.3.4 键盘事件 118
6.3.5 浏览器操作 119
6.3.6 JavaScript 对话框处理 121
6.3.7 等待处理 124
6.4 TestNG 集成Selenium 129

第7 章 Android 自动化测试 133
7.1 Android 自动化测试工具(框架)简介 . 133
7.2 安装待测应用 . 134
7.3 Appium 用法 . 134
7.3.1 准备 134
7.3.2 初始化参数 136
7.3.3 元素操作 139
7.3.4 应用操作 145
7.3.5 系统操作 146
7.3.6 使用Android 模拟器 . 147
7.4 TestNG 集成Appium 148

第8 章 iOS 自动化测试 151
8.1 iOS 自动化测试工具(框架)简介 151
8.2 待测应用开发 . 151
8.2.1 工程创建 152
8.2.2 界面开发 152
8.2.3 逻辑开发 155
8.3 Appium 的用法 . 159
8.3.1 准备 159
8.3.2 初始化参数 160
8.3.3 元素操作 161
8.3.4 应用操作 167
8.3.5 系统操作 169
8.3.6 使用iOS 模拟器 169
8.4 TestNG 集成Appium 171

第9 章 自动化测试实战 174
9.1 实战项目部署安装 . 174
9.1.1 JForum 论坛部署 . 174
9.1.2 AnExplorer 文件管理器安装 177
9.2 Web 自动化测试实战 . 177
9.2.1 分层和解耦 177
9.2.2 公共函数和业务函数封装 180
9.2.3 自动化测试用例编写 186
9.2.4 测试数据准备 189
9.3 Android 自动化测试实战 . 192
9.3.1 工程准备 192
9.3.2 Page Object 设计模式 193
9.3.3 页面对象层封装 195
9.3.4 业务逻辑层封装 203
9.3.5 自动化测试用例编写 204
9.4 进一步优化 . 207

第10 章 持续集成 208
10.1 持续集成、持续交付和持续部署 208
10.2 Jenkins 的重要功能简介 209
10.2.1 Jenkins 部署 . 209
10.2.2 任务管理 211
10.2.3 构建管理 212
10.2.4 节点管理 213
10.2.5 插件管理 213
10.2.6 用户管理 215
10.3 TestNG 集成到Jenkins . 216
10.3.1 TestNG 工程创建 . 216
10.3.2 SVN 部署及使用 . 218
10.3.3 JDK 和Maven 配置 . 220
10.3.4 把TestNG 集成到Jenkins . 221

第11 章 Mock 测试和代码覆盖率 . 225
11.1 单元Mock 测试 225
11.1.1 单元Mock 测试简介 . 225
11.2.2 Mockito 用法 225
11.2 接口Mock 测试 230
11.2.1 接口Mock 测试简介 . 230
11.2.2 RAP2 用法 . 230
11.3 代码覆盖率简介 234
11.4 JaCoCo 用法 235
11.4.1 JaCoCo 计数器 . 235
11.4.2 使用EclEmma 插件. 236
11.4.3 Maven 集成JaCoCo. 239

读者评论

相关图书

看漫画学Python:有趣、有料、好玩、好用(全彩版)

关东升、赵大羽 (作者)

Python是一门既简单又强大的编程语言,被广泛应用于数据分析、大数据、网络爬虫、自动化运维、科学计算和人工智能等领域。Python也越来越重要,成为国家计算机...

 

游戏设计师的Playlist:激发创造力的必玩游戏

Zack Hiwiller (作者) 李天颀 (译者)

在本书中,作者基于多年的游戏设计及教授经验,用诙谐幽默的语言向读者传授了一个又一个重要的游戏设计理念。书中的每一章均有一个明确的主题,涉及随机性、叙事、挑战、机...

¥99.00

基金投资百问百答小红书(双色精装)

韩超 (作者)

投资从来不是一件轻松的事,投入与回报往往也不成正相关关系。随着经济高速发展、社会竞争日趋激烈、生活节奏越来越快,个人投资者能花在投资上的时间越来越少。而指数基金...

¥99.00

增长起跑线:数字营销实战指南

吴英劼 刘丹 (作者)

本书从数字时代的企业增长困境切入,创新性的提出了数字时代企业增长三大黄金要素:品牌、渠道、用户,让读者从纷杂的数字营销理论中,找到帮助企业增长的最快、最重要的核...

¥69.00

Julia高性能科学计算 : 第2版

Changhyun Kwon ( 权昌贤) (作者) 徐国栋 李琦 (译者)

Julia 像C一样快,像MATLAB 一样方便,并且像Python 一样通用。在Julia 开发者,特别是JuMP 包开发者的大力支持下,Julia 为运筹学...

 

带你成为股权激励项目专家——股权激励项目实战

高建华 (作者)

1)从写作视角上:站在了一个更高的角度,作者不是像市场在售的几乎是所有股权激励类图书,将关注点放在股权激励方案本身,而是从真正实际操作的角度,将股权激励 视作项...

¥89.00