书籍详情
接口自动化测试项目实战:Python 3.8+Requests+PyMySQL+pytest+J
作者:江楚 著
出版社:清华大学出版社
出版时间:2021-11-01
ISBN:9787302593751
定价:¥59.00
购买这本书可以去
内容简介
本书采用项目驱动模式,并通过Python库建立起一套基础的、实用的接口自动化测试框架。 本书共分为两部分,第一部分为接口自动化测试基础,包括第1~6章,先带读者部署被测系统, 然后分别讲解 HTTP 请求的发送(Requests 库)、目录及文件的操作(os 库)、日志信息的 记录与输出(logging 库)、数据库的操纵(PyMySQL 库)、pytest 框架的使用等,所用的库 都是设计接口自动化测试框架常用的基础库。第二部分为构建接口自动化测试框架,包括第 7 ~ 9 章,将应用第一部分的基础知识,带读者对 ZrLog 项目设计测试用例、搭建接口自动化 测试框架、实现接口自动化测试框架的持续集成等。 本书不但展示了设计接口自动化测试框架的整个过程,还讲解了设计接口自动化测试框 架所需的基础能力和思维。本书适合接口自动化测试的从业者阅读,也适合相关专业的院校 及各大培训机构作为教材。
作者简介
江楚 软件测试领域的一线讲师,曾就职于文思创新和彩讯科技等上市公司,先后担任高级测试工程师、测试经理等职位。著有畅销书《零基础快速入行入职软件测试工程师》。
目录
部分 接口自动化测试基础
第 1 章 部署被测系统 ...................................................................... 3
1.1 安装 Docker 服务 ........................................................................ 3
1.2 通过 Docker 部署 Tomcat 服务器 ............................................................ 4
1.3 通过 Docker 部署 MySQL 数据库 ........................................................... 5
1.4 通过 Docker 部署 ZrLog 项目包 .............................................................. 7
第 2 章 使用 Requests 库发送 HTTP 请求...................................... 10
2.1 Requests 库的安装 .......................................................................10
2.2 验证安装结果 .........................................................................................11
2.3 发送一个 GET 请求 ................................................................................12
2.4 发送一个 POST 请求 ..............................................................................13
2.5 携带 Headers 发送请求 ...........................................................................15
2.6 携带 cookies 发送请求 ............................................................................16
2.7 调用 request() 方法发送请求 ..................................................................19
第 3 章 使用 os 库操作目录及文件................................................. 21
3.1 通过 os 库方法获取平台信息 .................................................................21
3.1.1 使用os.sep()方法获取系统分隔符 ................................................................. 21
3.1.2 使用os.name()方法获取操作系统的平台类型 ............................................... 22
3.1.3 使用os.getcwd()方法获取当前工作目录 ....................................................... 23
3.2 通过 os 库方法对目录或文件进行增删改查 ..........................................23
3.2.1 使用os.listdir()方法查询目录下的文件列表 .................................................. 23
3.2.2 使用os.mkdir()方法创建目录文件 ................................................................. 25
3.2.3 使用os.rmdir()方法删除一个空目录 ............................................................. 26
3.2.4 使用os.remove()方法删除指定文件 .............................................................. 26
3.2.5 使用os.rename()方法重命名目录或文件 ....................................................... 27
3.3 通过 os.path 子模块来操作目录及文件 ..................................................28
3.3.1 使用__file__特殊成员返回当前文件的全路径 .............................................. 29
3.3.2 使用os.path.dirname()方法返回文件所在目录 .............................................. 30
3.3.3 使用os.path.abspath()方法返回文件路径 ............................................... 31
3.3.4 组合使用os.path.dirname()方法和os.path.abspath()方法 ............................... 31
3.3.5 使用os.path.join()方法进行路径拼接 ............................................................ 32
3.3.6 使用os.path.exists()方法判断路径是否存在 .................................................. 33
第 4 章 使用 logging 库记录日志信息............................................. 35
4.1 logging 库的基本使用 ............................................................................35
4.1.1 日志等级说明 ................................................................................................ 35
4.1.2 日志的常用函数 ............................................................................................ 36
4.1.3 日志常用的输出格式 ..................................................................................... 36
4.1.4 basicConfig()方法的使用 ............................................................................... 37
4.2 将日志输出到控制台和文件 ...................................................................38
4.2.1 将日志输出到控制台 ..................................................................................... 38
4.2.2 将日志输出到文件 ........................................................................................ 40
4.2.3 将日志同时输出到控制台和文件 .................................................................. 42
4.3 日志记录实例应用 ..................................................................................44
第 5 章 使用 PyMySQL 库操纵数据库............................................ 47
5.1 PyMySQL 库的安装 ...............................................................................47
5.2 验证 PyMySQL 库是否安装成功 ...........................................................47
5.3 连接数据库前的准备工作 ......................................................................48
5.4 通过 PyMySQL 库操纵 Zrlog 数据库实例 .............................................50
5.4.1 通过fetchone()方法读取表中数据 ................................................................. 50
5.4.2 通过execute()方法执行数据回写 .................................................................. 52
5.4.3 通过rollback()方法执行数据回滚.................................................................. 55
5.4.4 通过execute()方法执行数据删除 .................................................................. 58
第 6 章 应用 pytest 测试框架......................................................... 60
6.1 pytest 测试框架的安装 ...........................................................................60
6.2 验证 pytest 是否安装成功 .......................................................................61
6.3 函数和方法的执行规则 ..........................................................................62
6.3.1 函数的执行规则 ............................................................................................ 62
6.3.2 方法的执行规则 ............................................................................................ 64
6.4 参数化的应用 .........................................................................................65
6.4.1 单个参数的参数化应用 ................................................................................. 66
6.4.2 多个参数的参数化应用 ................................................................................. 70
6.5 使用 assert 原生断言...............................................................................75
6.6 pytest 的 setup 和 teardown 方法 ............................................................80
6.6.1 模块级别 ........................................................................................................ 80
6.6.2 函数级别 ........................................................................................................ 82
6.6.3 类级别 ........................................................................................................... 83
6.6.4 类方法级别 .................................................................................................... 85
6.6.5 类方法细化级别 ............................................................................................ 86
6.7 配置文件设置 .........................................................................................88
6.8 生成测试报告 .........................................................................................90
第二部分 构建接口自动化测试框架
第 7 章 设计 ZrLog 项目的测试用例............................................... 95
7.1 设计接口测试用例 ..................................................................................95
7.1.1 提取接口信息并分析 ..................................................................................... 95
7.1.2 根据接口信息设计测试用例 ....................................................................... 101
7.2 测试用例的存储方式 ............................................................................106
7.2.1 建立数据库实例 .......................................................................................... 107
7.2.2 建立主测试用例表 ...................................................................................... 108
7.2.3 建立配置信息表 .......................................................................................... 114
7.2.4 建立执行结果记录表 ................................................................................... 116
7.2.5 通过Excel文件导入测试用例 ...................................................................... 118
第 8 章 设计 ZrLog 项目接口自动化测试框架 ............................... 122
8.1 ZrLog 接口测试框架的环境 .................................................................122
8.2 ZrLog 接口测试框架设计的流程图 ......................................................123
8.3 ZrLog 接口测试框架的层次结构 ..........................................................124
8.4 ZrLog 接口测试框架基础层级设计 ......................................................125
8.4.1 新建ZrLog接口自动化项目 ......................................................................... 125
8.4.2 建立config层并封装settings.py文件 ............................................................ 127
8.4.3 建立report层存储测试报告 ......................................................................... 129
8.4.4 建立log层存储日志信息 .............................................................................. 130
8.4.5 建立utils层存储工具类 ................................................................................ 131
8.4.6 封装日志工具类 .......................................................................................... 131
8.4.7 封装数据库工具类 ...................................................................................... 135
8.4.8 封装测试用例读取工具类 ........................................................................... 138
8.4.9 封装HTTP请求工具类 ................................................................................. 142
8.4.10 新建pytest.ini配置文件 .............................................................................. 147
8.5 ZrLog 接口测试框架核心层级设计 ......................................................148
8.5.1 建立common核心层并封装base.py文件 ...................................................... 148
8.5.2 建立testcase核心层并封装test_run.py文件 ................................................. 152
8.5.3 通过pytest框架运行test _run.py文件 ........................................................... 162
8.5.4 通过log层查看运行日志 .............................................................................. 163
8.5.5 通过report层查看测试报告 ......................................................................... 163
第 9 章 接口自动化的持续集成 .................................................... 165
9.1 持续集成所涉及的环境 ........................................................................165
9.2 持续集成运行的流程图 ........................................................................166
9.3 注册并建立远程仓库 ............................................................................166
9.4 安装并使用 Git 版本管理工具 ..............................................................168
9.4.1 安装Git客户端 ............................................................................................. 168
9.4.2 初始化Git本地仓库 ..................................................................................... 169
9.4.3 建立与远程仓库的信任关系 ....................................................................... 171
9.4.4 通过Git命令提交代码到远程仓库 ............................................................... 173
9.5 通过 Docker 部署 Jenkins 容器 .............................................................176
9.6 通过 Jenkins 容器部署 Python 3.8.5 环境 .............................................177
9.7 通过 Jenkins 构建定时任务,并实现持续集成 ....................................179
9.7.1 访问Jenkins平台 .......................................................................................... 179
9.7.2 建立Jenkins与远程仓库的信任关系 ............................................................ 181
9.7.3 通过Jenkins平台设置定时任务 ................................................................... 184
9.7.4 查看定时任务执行结果 ............................................................................... 187
9.8 通过 Jenkins 安装测试报告插件 ...........................................................188
第 1 章 部署被测系统 ...................................................................... 3
1.1 安装 Docker 服务 ........................................................................ 3
1.2 通过 Docker 部署 Tomcat 服务器 ............................................................ 4
1.3 通过 Docker 部署 MySQL 数据库 ........................................................... 5
1.4 通过 Docker 部署 ZrLog 项目包 .............................................................. 7
第 2 章 使用 Requests 库发送 HTTP 请求...................................... 10
2.1 Requests 库的安装 .......................................................................10
2.2 验证安装结果 .........................................................................................11
2.3 发送一个 GET 请求 ................................................................................12
2.4 发送一个 POST 请求 ..............................................................................13
2.5 携带 Headers 发送请求 ...........................................................................15
2.6 携带 cookies 发送请求 ............................................................................16
2.7 调用 request() 方法发送请求 ..................................................................19
第 3 章 使用 os 库操作目录及文件................................................. 21
3.1 通过 os 库方法获取平台信息 .................................................................21
3.1.1 使用os.sep()方法获取系统分隔符 ................................................................. 21
3.1.2 使用os.name()方法获取操作系统的平台类型 ............................................... 22
3.1.3 使用os.getcwd()方法获取当前工作目录 ....................................................... 23
3.2 通过 os 库方法对目录或文件进行增删改查 ..........................................23
3.2.1 使用os.listdir()方法查询目录下的文件列表 .................................................. 23
3.2.2 使用os.mkdir()方法创建目录文件 ................................................................. 25
3.2.3 使用os.rmdir()方法删除一个空目录 ............................................................. 26
3.2.4 使用os.remove()方法删除指定文件 .............................................................. 26
3.2.5 使用os.rename()方法重命名目录或文件 ....................................................... 27
3.3 通过 os.path 子模块来操作目录及文件 ..................................................28
3.3.1 使用__file__特殊成员返回当前文件的全路径 .............................................. 29
3.3.2 使用os.path.dirname()方法返回文件所在目录 .............................................. 30
3.3.3 使用os.path.abspath()方法返回文件路径 ............................................... 31
3.3.4 组合使用os.path.dirname()方法和os.path.abspath()方法 ............................... 31
3.3.5 使用os.path.join()方法进行路径拼接 ............................................................ 32
3.3.6 使用os.path.exists()方法判断路径是否存在 .................................................. 33
第 4 章 使用 logging 库记录日志信息............................................. 35
4.1 logging 库的基本使用 ............................................................................35
4.1.1 日志等级说明 ................................................................................................ 35
4.1.2 日志的常用函数 ............................................................................................ 36
4.1.3 日志常用的输出格式 ..................................................................................... 36
4.1.4 basicConfig()方法的使用 ............................................................................... 37
4.2 将日志输出到控制台和文件 ...................................................................38
4.2.1 将日志输出到控制台 ..................................................................................... 38
4.2.2 将日志输出到文件 ........................................................................................ 40
4.2.3 将日志同时输出到控制台和文件 .................................................................. 42
4.3 日志记录实例应用 ..................................................................................44
第 5 章 使用 PyMySQL 库操纵数据库............................................ 47
5.1 PyMySQL 库的安装 ...............................................................................47
5.2 验证 PyMySQL 库是否安装成功 ...........................................................47
5.3 连接数据库前的准备工作 ......................................................................48
5.4 通过 PyMySQL 库操纵 Zrlog 数据库实例 .............................................50
5.4.1 通过fetchone()方法读取表中数据 ................................................................. 50
5.4.2 通过execute()方法执行数据回写 .................................................................. 52
5.4.3 通过rollback()方法执行数据回滚.................................................................. 55
5.4.4 通过execute()方法执行数据删除 .................................................................. 58
第 6 章 应用 pytest 测试框架......................................................... 60
6.1 pytest 测试框架的安装 ...........................................................................60
6.2 验证 pytest 是否安装成功 .......................................................................61
6.3 函数和方法的执行规则 ..........................................................................62
6.3.1 函数的执行规则 ............................................................................................ 62
6.3.2 方法的执行规则 ............................................................................................ 64
6.4 参数化的应用 .........................................................................................65
6.4.1 单个参数的参数化应用 ................................................................................. 66
6.4.2 多个参数的参数化应用 ................................................................................. 70
6.5 使用 assert 原生断言...............................................................................75
6.6 pytest 的 setup 和 teardown 方法 ............................................................80
6.6.1 模块级别 ........................................................................................................ 80
6.6.2 函数级别 ........................................................................................................ 82
6.6.3 类级别 ........................................................................................................... 83
6.6.4 类方法级别 .................................................................................................... 85
6.6.5 类方法细化级别 ............................................................................................ 86
6.7 配置文件设置 .........................................................................................88
6.8 生成测试报告 .........................................................................................90
第二部分 构建接口自动化测试框架
第 7 章 设计 ZrLog 项目的测试用例............................................... 95
7.1 设计接口测试用例 ..................................................................................95
7.1.1 提取接口信息并分析 ..................................................................................... 95
7.1.2 根据接口信息设计测试用例 ....................................................................... 101
7.2 测试用例的存储方式 ............................................................................106
7.2.1 建立数据库实例 .......................................................................................... 107
7.2.2 建立主测试用例表 ...................................................................................... 108
7.2.3 建立配置信息表 .......................................................................................... 114
7.2.4 建立执行结果记录表 ................................................................................... 116
7.2.5 通过Excel文件导入测试用例 ...................................................................... 118
第 8 章 设计 ZrLog 项目接口自动化测试框架 ............................... 122
8.1 ZrLog 接口测试框架的环境 .................................................................122
8.2 ZrLog 接口测试框架设计的流程图 ......................................................123
8.3 ZrLog 接口测试框架的层次结构 ..........................................................124
8.4 ZrLog 接口测试框架基础层级设计 ......................................................125
8.4.1 新建ZrLog接口自动化项目 ......................................................................... 125
8.4.2 建立config层并封装settings.py文件 ............................................................ 127
8.4.3 建立report层存储测试报告 ......................................................................... 129
8.4.4 建立log层存储日志信息 .............................................................................. 130
8.4.5 建立utils层存储工具类 ................................................................................ 131
8.4.6 封装日志工具类 .......................................................................................... 131
8.4.7 封装数据库工具类 ...................................................................................... 135
8.4.8 封装测试用例读取工具类 ........................................................................... 138
8.4.9 封装HTTP请求工具类 ................................................................................. 142
8.4.10 新建pytest.ini配置文件 .............................................................................. 147
8.5 ZrLog 接口测试框架核心层级设计 ......................................................148
8.5.1 建立common核心层并封装base.py文件 ...................................................... 148
8.5.2 建立testcase核心层并封装test_run.py文件 ................................................. 152
8.5.3 通过pytest框架运行test _run.py文件 ........................................................... 162
8.5.4 通过log层查看运行日志 .............................................................................. 163
8.5.5 通过report层查看测试报告 ......................................................................... 163
第 9 章 接口自动化的持续集成 .................................................... 165
9.1 持续集成所涉及的环境 ........................................................................165
9.2 持续集成运行的流程图 ........................................................................166
9.3 注册并建立远程仓库 ............................................................................166
9.4 安装并使用 Git 版本管理工具 ..............................................................168
9.4.1 安装Git客户端 ............................................................................................. 168
9.4.2 初始化Git本地仓库 ..................................................................................... 169
9.4.3 建立与远程仓库的信任关系 ....................................................................... 171
9.4.4 通过Git命令提交代码到远程仓库 ............................................................... 173
9.5 通过 Docker 部署 Jenkins 容器 .............................................................176
9.6 通过 Jenkins 容器部署 Python 3.8.5 环境 .............................................177
9.7 通过 Jenkins 构建定时任务,并实现持续集成 ....................................179
9.7.1 访问Jenkins平台 .......................................................................................... 179
9.7.2 建立Jenkins与远程仓库的信任关系 ............................................................ 181
9.7.3 通过Jenkins平台设置定时任务 ................................................................... 184
9.7.4 查看定时任务执行结果 ............................................................................... 187
9.8 通过 Jenkins 安装测试报告插件 ...........................................................188
猜您喜欢