计算机
类型
可以朗读
语音朗读
275千字
字数
2021-07-01
发行日期
展开全部
主编推荐语
由浅入深解析软件自动化测试的痛点问题,基于Python语言的工程实例,帮助读者掌握自动化测试开发技巧。
内容简介
本书由浅入深地对自动化软件测试进行了阐述,内容涵盖软件测试的基础知识、Python、PyTest、Selenium、面向对象编程、自动化测试框架的设计要点和测试自动化开发实践等,本书内容组织成入门、进阶和高阶三个逐步提高的版块,每个版块都有实战编程章节,清晰呈现了技术方案的打磨和改进的过程。
目录
- 版权信息
- 序一
- 序二
- 前言
- 第1章 软件测试基础
- 1.1 什么是软件测试
- 1.2 软件测试的类型
- 1.2.1 按测试对象的颗粒度划分
- 1.2.2 按内部逻辑的透明度划分
- 1.2.3 按执行阶段划分
- 1.2.4 按执行方式划分
- 1.3 敏捷开发模式
- 1.4 测试经济学
- 1.4.1 测试是必需的吗
- 1.4.2 放弃追求完美
- 1.4.3 关注核心功能
- 1.4.4 等价类划分
- 1.4.5 边界值分析
- 1.4.6 用机器取代人工
- 1.5 自动化测试不容易
- 1.6 本章小结
- 第2章 Python入门
- 2.1 世界上最好的两种编程语言
- 2.2 别问我怎么安装
- 2.3 解释器是什么
- 2.4 初识变量
- 2.5 函数基础
- 2.6 代码缩进和代码块
- 2.7 字符串
- 2.7.1 拼接和格式化
- 2.7.2 下标访问
- 2.7.3 更多常见操作
- 2.8 数值类型
- 2.8.1 数值类型的基本运算
- 2.8.2 浮点数的常见运算
- 2.9 布尔值和条件判断
- 2.9.1 条件判断的组合
- 2.9.2 条件判断的短路
- 2.9.3 条件判断的链式表达
- 2.10 日期和时间
- 2.10.1 生成时间对象
- 2.10.2 格式化日期字符串
- 2.11 list基础
- 2.11.1 下标访问
- 2.11.2 插入元素
- 2.11.3 删除元素
- 2.11.4 简单排序
- 2.11.5 更多常见操作
- 2.11.6 遍历
- 2.11.7 元素类型
- 2.12 dict基础
- 2.12.1 读取
- 2.12.2 插入和更新
- 2.12.3 合并
- 2.12.4 删除
- 2.12.5 遍历
- 2.12.6 key的选择
- 2.13 循环
- 2.13.1 while循环
- 2.13.2 for循环
- 2.13.3 多重循环
- 2.13.4 循环的终止
- 2.13.5 递归
- 2.14 异常
- 2.14.1 基本语法
- 2.14.2 异常的类型
- 2.14.3 捕获特定类型的异常
- 2.14.4 主动抛出异常
- 2.15 断言
- 2.15.1 assertion
- 2.15.2 AssertionError
- 2.15.3 assert
- 2.16 pip的基础用法
- 2.17 本章小结
- 第3章 PyTest入门
- 3.1 框架是什么
- 3.2 测试框架
- 3.2.1 筛选测试源文件
- 3.2.2 筛选测试函数
- 3.2.3 测试函数的启动
- 3.2.4 成功还是失败
- 3.2.5 测试报告
- 3.2.6 测试前的环境配置
- 3.2.7 测试后的现场清理
- 3.2.8 核心功能的扩充
- 3.2.9 主流测试框架
- 3.3 PyTest是什么
- 3.4 自动发现
- 3.4.1 自动发现测试源文件
- 3.4.2 自动发现测试函数
- 3.5 使用断言
- 3.6 测试结果解读
- 3.7 测试报告
- 3.8 本章小结
- 第4章 Selenium入门
- 4.1 Selenium是什么
- 4.1.1 Selenium IDE
- 4.1.2 Selenium Grid
- 4.1.3 Web Driver
- 4.2 Selenium的安装配置
- 4.3 用Web Driver驱动网页
- 4.4 页面元素的定位
- 4.4.1 简单定位
- 4.4.2 CSS定位
- 4.5 页面元素的常见操作
- 4.6 本章小结
- 第5章 实战12306之入门篇
- 5.1 测试用例设计文档
- 5.2 代码实战
- 5.3 代码解析
- 5.3.1 审视测试逻辑
- 5.3.2 用变量澄清代码逻辑
- 5.3.3 DRY原则
- 5.3.4 改善代码可读性
- 5.4 本章小结
- 第6章 Python进阶
- 6.1 基本数据类型的深入了解
- 6.1.1 转义字符
- 6.1.2 字符串的不可变性
- 6.1.3 深入了解布尔类型
- 6.1.4 set
- 6.1.5 tuple
- 6.1.6 整型数的设计很优秀
- 6.1.7 浮点数为什么算不准
- 6.1.8 Decimal,准!
- 6.2 深入了解函数
- 6.2.1 函数的调用
- 6.2.2 函数的返回
- 6.2.3 不支持函数重载
- 6.2.4 默认参数
- 6.2.5 可变参数
- 6.3 关于时间
- 6.3.1 时间差
- 6.3.2 UTC时间
- 6.4 面向对象基础
- 6.4.1 面向对象到底是什么意思
- 6.4.2 类和对象
- 6.4.3 初始化函数
- 6.5 模块是什么
- 6.6 高级排序
- 6.6.1 list的排序
- 6.6.2 dict的排序
- 6.6.3 自定义对象序列的排序
- 6.7 复杂的遍历场景
- 6.7.1 一边遍历一边修改
- 6.7.2 一边遍历一边删除
- 6.8 文件和文件系统操作基础
- 6.8.1 路径的正确操作方式
- 6.8.2 文件系统的基本操作
- 6.8.3 文本文件的读
- 6.8.4 文本文件的写
- 6.8.5 文本文件的关闭
- 6.8.6 CSV文件的读写
- 6.8.7 Excel文件的读写
- 6.9 浅拷贝与深拷贝
- 6.10 深入了解import
- 6.11 变量的作用域
- 6.12 局部变量和全局变量的冲突
- 6.13 __name__和__main__
- 6.14 注释
- 6.15 pip的工程用法
- 6.16 本章小结
- 第7章 PyTest进阶
- 7.1 自动发现测试类
- 7.2 测试集合
- 7.3 标记
- 7.3.1 忽略执行
- 7.3.2 条件执行
- 7.3.3 期待失败的发生
- 7.3.4 限时执行
- 7.3.5 自定义标签
- 7.4 参数化测试
- 7.5 测试用例的ID
- 7.6 Fixture初探
- 7.7 PyTest的插件机制
- 7.7.1 Hook函数
- 7.7.2 PyTest插件
- 7.7.3 多级conftest协同
- 7.7.4 第三方插件
- 7.8 本章小结
- 第8章 Selenium进阶
- 8.1 页面元素的XPath定位
- 8.2 页面元素的等待
- 8.2.1 隐式等待
- 8.2.2 显式等待
- 8.3 Selenium的局限
- 8.4 本章小结
- 第9章 实战12306之进阶篇
- 9.1 PO设计模式
- 9.2 更有针对性的显式等待
- 9.3 更健壮的代码逻辑
- 9.4 函数单一职责原则
- 9.5 测试单一职责原则
- 9.6 本章小结
- 第10章 Python高阶
- 10.1 面向对象设计思想
- 10.1.1 继承
- 10.1.2 封装
- 10.1.3 多态
- 10.2 对类的深入了解
- 10.2.1 析构函数
- 10.2.2 访问权限控制
- 10.2.3 self不是关键字
- 10.2.4 实例属性和类属性
- 10.2.5 成员方法和类方法
- 10.2.6 类方法和静态方法
- 10.3 重写
- 10.3.1 如何重写
- 10.3.2 重写中的代码复用
- 10.3.3 重写__str__方法
- 10.3.4 重写运算符
- 10.4 深入了解函数
- 10.4.1 函数也是一种对象
- 10.4.2 内嵌函数
- 10.4.3 函数装饰器
- 10.4.4 不只是会装饰
- 10.4.5 用Property装饰器改进设计
- 10.5 None是什么
- 10.6 Enum是什么
- 10.7 Python不支持常量
- 10.8 随机数据和时间戳
- 10.9 自定义异常类型
- 10.10 需要用强类型吗
- 10.11 日志
- 10.12 本章小结
- 第11章 测试框架的设计和演进
- 11.1 代码的可读性
- 11.1.1 统一的代码风格
- 11.1.2 丑陋的函数名
- 11.1.3 糟糕的变量名
- 11.2 友好的函数设计
- 11.2.1 简洁的接口
- 11.2.2 操作状态的处理
- 11.2.3 不要过度设计
- 11.2.4 防呆
- 11.3 有效管理测试资源
- 11.3.1 封装微服务
- 11.3.2 统一的资源入口
- 11.3.3 资源的延迟加载
- 11.3.4 保证资源的释放
- 11.3.5 支持多环境测试
- 11.3.6 容忍不稳定的测试环境
- 11.4 不要引入getter和setter
- 11.5 一次收集多个断言错误
- 11.6 日志的支持和改进
- 11.7 减少重复执行的负面影响
- 11.8 数据驱动测试的设计
- 11.8.1 让PyTest支持中文ID
- 11.8.2 更优雅的参数化测试
- 11.8.3 用YML取代JSON
- 11.8.4 面向对象的测试数据
- 11.9 接受一定程度的重复代码
- 11.10 本章小结
- 第12章 实战12306之高阶篇
- 12.1 就近原则
- 12.2 用Enum澄清设计意图
- 12.3 支持链式表达
- 12.4 简化函数名
- 12.5 封装复杂逻辑
- 12.6 单例设计模式
- 12.7 异常和断言的使用场景的区别
- 12.8 测试用例的维护
- 12.9 本章小结
- 术语表
- 后记
展开全部
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。