展开全部

主编推荐语

由浅入深解析软件自动化测试的痛点问题,基于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 本章小结
  • 术语表
  • 后记
展开全部

评分及书评

评分不足
1个评分

出版方

机械工业出版社有限公司

机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。