搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
出版时间 :
软件自动化测试实战解析:基于Python3编程语言
0.00     定价 ¥ 89.00
泸西县图书馆
此书还可采购1本,持证读者免费借回家
  • ISBN:
    9787111685616
  • 作      者:
    徐西宁
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2021-07-01
收藏
荐购
编辑推荐

1.本书内容详实、深入浅出、案例生动、语言简练,是软件自动化测试工程师必备的参考资料,也可供相关专业的在校学生、手工测试工程师和希望提升技术水平的自动化测试工程师学习参考。

2.业内多个行业专家联袂推荐。

3.读者可以在微信公众号“Python阅码场”看到更多关于软件开发和测试相关的技术文章,也可通过公众号与作者交流互动。


展开
作者简介

徐西宁,毕业于华中科技大学计算机学院,资深全栈软件工程师,从事软件开发和测试工作15年,先后任职于Autodesk、EMC、每锐软件等公司,在自动化测试框架设计、自动化测试流程优化、持续集成、Web开发等方面有丰富的经验,是一位活跃的开源软件和技术分享实践者。

展开
内容介绍

本书由浅入深地对自动化软件测试进行了阐述,内容涵盖软件测试的基础知识、Python、PyTest、Selenium、面向对象编程、自动化测试框架的设计要点和测试自动化开发实践等,本书内容组织成入门、进阶和高阶三个逐步提高的版块,每个版块都有实战编程章节,清晰呈现了技术方案的打磨和改进的过程。

本书的内容分为三个大的版块。

第一个版块,从最基础的部分讲起,让基础薄弱的工程师对测试和编程语言有基本的认识,在此基础上开始了解PyTest测试框架的基础用法,以及如何用Selenium来做简单的Web UI的自动化测试。

通过这个版块的学习,测试工程师有能力把一些简单的测试工作用代码实现,减少手工重复劳动的比重,做到一定程度的测试自动化,这是对自动化测试工程师的入门要求。

第二个版块,夯实Python语言基础,讲解更深入的PyTest和Selenium特性,演示如何应用这些知识来改进测试用例的编写,改善测试框架,让测试自动化更加高效。

通过这个版块的学习,测试工程师对编程语言和测试工具会有更深入的了解,可以更高效地进行测试自动化的工作,有能力开始针对产品特性来设计自动化测试框架,这是工程团队对中级测试工程师的一般要求。

第三个版块,学习Python的高级特性、面向对象的思想、自动化测试工具和框架的高级特性、设计思路、以及存在的问题、限制及其改进思路、工程团队的高质量协作、实际项目中的最佳实践等更深入的内容,这个部分包含了大量实战中提炼出来的经验和总结。

通过这个版块的学习,测试工程师可以往高级工程师和架构师方向迈出坚实的一步,而具备这样的技术能力和思维方式后,测试工程师可以在整个软件工程团队中起到非常积极的正面影响,而不只限于测试团队。

每个版块的末尾都有一个实战章节,所有的实战章节围绕同一个测试场景展开,前后衔接呼应,有很强的延续性。每个实战章节都是针对相应的技术水平而设计的,读者可以非常直观地看到代码和设计如何随着技术水平的提升而改进。


展开
精彩书评

“人生苦短,请用Python”。现如今,Python已经广泛应用于Web开发、人工智能、数据分析、网络爬虫、游戏开发、云计算、自动化测试与运维等众多领域。相信本书必然会为促进Python,尤其是Python在软件领域的工程实践应用、提升一线开发人员的实战水平起到巨大的作用。

——宋宝华,知名Linux技术专家


展开
目录

序一
序二
前言
第1章 软件测试基础 1
11 什么是软件测试1
12 软件测试的类型2
121 按测试对象的颗粒度划分2
122 按内部逻辑的透明度划分3
123 按执行阶段划分4
124 按执行方式划分4
13 敏捷开发模式5
14 测试经济学6
141 测试是必需的吗6
142 放弃追求完美7
143 关注核心功能8
144 等价类划分8
145 边界值分析9
146 用机器取代人工10
15 自动化测试不容易12
16 本章小结12
第2章 Python入门 13
21 世界上最好的两种编程语言13
22 别问我怎么安装14
23 解释器是什么14
24 初识变量16
25 函数基础17
26 代码缩进和代码块18
27 字符串19
271 拼接和格式化21
272 下标访问22
273 更多常见操作23
28 数值类型26
281 数值类型的基本运算27
282 浮点数的常见运算29
29 布尔值和条件判断32
291 条件判断的组合33
292 条件判断的短路34
293 条件判断的链式表达35
210 日期和时间36
2101 生成时间对象37
2102 格式化日期字符串38
211 list基础39
2111 下标访问40
2112 插入元素40
2113 删除元素41
2114 简单排序42
2115 更多常见操作43
2116 遍历44
2117 元素类型46
212 dict基础47
2121 读取48
2122 插入和更新49
2123 合并50
2124 删除51
2125 遍历53
2126 key的选择55
213 循环56
2131 while循环57
2132 for循环58
2133 多重循环59
2134 循环的终止60
2135 递归63
214 异常63
2141 基本语法64
2142 异常的类型67
2143 捕获特定类型的异常68
2144 主动抛出异常71
215 断言72
2151 assertion72
2152 AssertionError73
2153 assert73
216 pip的基础用法74
217 本章小结76
第3章 PyTest入门 77
31 框架是什么77
32 测试框架77
321 筛选测试源文件77
322 筛选测试函数78
323 测试函数的启动79
324 成功还是失败80
325 测试报告80
326 测试前的环境配置81
327 测试后的现场清理81
328 核心功能的扩充82
329 主流测试框架82
33 PyTest是什么83
34 自动发现84
341 自动发现测试源文件84
342 自动发现测试函数84
35 使用断言85
36 测试结果解读86
37 测试报告88
38 本章小结89
第4章 Selenium入门 90
41 Selenium是什么90
411 Selenium IDE91
412 Selenium Grid97
413 Web Driver98
42 Selenium的安装配置99
43 用Web Driver驱动网页100
44 页面元素的定位102
441 简单定位102
442 CSS定位107
45 页面元素的常见操作108
46 本章小结112
第5章 实战12306之入门篇 113
51 测试用例设计文档113
52 代码实战114
53 代码解析116
531 审视测试逻辑116
532 用变量澄清代码逻辑117
533 DRY原则118
534 改善代码可读性120
54 本章小结122
第6章 Python进阶 123
61 基本数据类型的深入了解123
611 转义字符123
612 字符串的不可变性124
613 深入了解布尔类型126
614 set128
615 tuple131
616 整型数的设计很优秀132
617 浮点数为什么算不准133
618 Decimal,准!134
62 深入了解函数137
621 函数的调用137
622 函数的返回138
623 不支持函数重载139
624 默认参数141
625 可变参数142
63 关于时间144
631 时间差144
632 UTC时间146
64 面向对象基础148
641 面向对象到底是什么意思148
642 类和对象148
643 初始化函数149
65 模块是什么151
66 高级排序153
661 list的排序153
662 dict的排序157
663 自定义对象序列的排序159
67 复杂的遍历场景160
671 一边遍历一边修改160
672 一边遍历一边删除162
68 文件和文件系统操作基础165
681 路径的正确操作方式165
682 文件系统的基本操作168
683 文本文件的读169
684 文本文件的写170
685 文本文件的关闭171
686 CSV文件的读写172
687 Excel文件的读写174
69 浅拷贝与深拷贝176
610 深入了解import179
611 变量的作用域182
612 局部变量和全局变量的冲突185
613 __name__和__main__186
614 注释188
615 pip的工程用法190
616 本章小结192
第7章 PyTest进阶 19

第7章 PyTest进阶 193

7.1 自动发现测试类193

7.2 测试集合194

7.3 标记195

7.3.1 忽略执行195

7.3.2 条件执行197

7.3.3 期待失败的发生199

7.3.4 限时执行201

7.3.5 自定义标签201

7.4 参数化测试204

7.5 测试用例的ID206

7.6 Fixture初探207

7.7 PyTest的插件机制209

7.7.1 Hook函数209

7.7.2 PyTest插件210

7.7.3 多级conftest协同210

7.7.4 第三方插件212

7.8 本章小结213

第8章 Selenium进阶 214

8.1 页面元素的XPath定位214

8.2 页面元素的等待215

8.2.1 隐式等待216

8.2.2 显式等待216

8.3 Selenium的局限218

8.4 本章小结219

第9章 实战12306之进阶篇 220

9.1 PO设计模式220

9.2 更有针对性的显式等待223

9.3 更健壮的代码逻辑224

9.4 函数单一职责原则225

9.5 测试单一职责原则226

9.6 本章小结227

第10章 Python高阶 228

10.1 面向对象设计思想228

10.1.1 继承228

10.1.2 封装230

10.1.3 多态232

10.2 对类的深入了解233

10.2.1 析构函数233

10.2.2 访问权限控制235

10.2.3 self不是关键字236

10.2.4 实例属性和类属性239

10.2.5 成员方法和类方法240

10.2.6 类方法和静态方法242

10.3 重写244

10.3.1 如何重写244

10.3.2 重写中的代码复用247

10.3.3 重写__str__方法249

10.3.4 重写运算符249

10.4 深入了解函数252

10.4.1 函数也是一种对象252

10.4.2 内嵌函数254

10.4.3 函数装饰器255

10.4.4 不只是会装饰259

10.4.5 用Property装饰器改进设计261

10.5 None是什么264

10.6 Enum是什么265

10.7 Python不支持常量267

10.8 随机数据和时间戳268

10.9 自定义异常类型270

10.10 需要用强类型吗271

10.11 日志272

10.12 本章小结277

第11章 测试框架的设计和演进 278

11.1 代码的可读性278

11.1.1 统一的代码风格279

11.1.2 丑陋的函数名280

11.1.3 糟糕的变量名282

11.2 友好的函数设计283

11.2.1 简洁的接口283

11.2.2 操作状态的处理285

11.2.3 不要过度设计287

11.2.4 防呆288

11.3 有效管理测试资源290

11.3.1 封装微服务290

11.3.2 统一的资源入口295

11.3.3 资源的延迟加载296

11.3.4 保证资源的释放298

11.3.5 支持多环境测试300

11.3.6 容忍不稳定的测试环境302

11.4 不要引入getter和setter304

11.5 一次收集多个断言错误306

11.6 日志的支持和改进308

11.7 减少重复执行的负面影响310

11.8 数据驱动测试的设计311

11.8.1 让PyTest支持中文ID311

11.8.2 更优雅的参数化测试314

11.8.3 用YML取代JSON316

11.8.4 面向对象的测试数据317

11.9 接受一定程度的重复代码319

11.10 本章小结320

第12章 实战12306之高阶篇 321

12.1 就近原则321

12.2 用Enum澄清设计意图322

12.3 支持链式表达324

12.4 简化函数名325

12.5 封装复杂逻辑326

12.6 单例设计模式328

12.7 异常和断言的使用场景的区别331

12.8 测试用例的维护333

12.9 本章小结334

术语表 335

参考文献 336

后记 337

展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录

点击获取验证码
登录