第1章 概述
1.1 当前软件测试的趋势
1.2 为何要开展自动化测试
1.3 为何要开展UI自动化测试
1.4 UI自动化测试的流程
1.4.1 需求分析
1.4.2 方案选择
1.4.3 环境准备
1.4.4 系统设计
1.4.5 编码规范确定
1.4.6 编码
1.5 深入思考
第2章 iOS基础知识
2.1 移动操作系统概览
2.2 App的类型与区别
2.3 iOS App测试框架概览
第3章 测试环境部署
3.1 辅助环境部署
3.1.1 安装Xcode
3.1.2 安装Homebrew工具
3.1.3 安装Node.js和NPM
3.1.4 安装libimobiledevice
3.1.5 安装Carthage
3.1.6 安装ios-deploy
3.2 编程环境部署
3.2.1 安装Python
3.2.2 Python虚拟环境
3.2.3 安装PyCharm
3.3 Appium环境部署
3.3.1 安装Appium Server GUI
3.3.2 安装Appium Server
3.3.3 安装Appium-Python-Client
3.3.4 初始化WebDriverAgent
3.3.5 安装Appium Inspector
3.3.6 安装Appium-doctor
3.4 自动化测试示例项目
3.5 测试环境及其部署总结
第4章 Appium基本操作
4.1 Appium的组件与工作原理
4.1.1 Appium的组件
4.1.2 Appium的工作原理
4.2 Xcode基本操作
4.2.1 Xcode模拟器的下载
4.2.2 Xcode运行项目
4.2.3 模拟器安装WDA
4.3 Appium Desktop基本操作
4.4 Appium Inspector基本操作
4.4.1 Inspector参数设置
4.4.2 Inspector定位元素
第5章 Appium终端操作
5.1 Capabilities简介
5.2 第 一个Appium测试脚本
5.3 Appium报错与解决方案
5.4 Appium终端基本操作
5.4.1 安装App
5.4.2 判断App是否安装
5.4.3 将App切换到后台运行
5.4.4 移除App
5.4.5 激活App
5.4.6 终止App运行
5.4.7 获取App的运行状态
5.4.8 获取当前窗口的宽和高
第6章 Appium中的元素定位
6.1 元素定位方法概览
6.2 通过ACCESSIBILITY_ID定位元素
6.3 通过CLASS_NAME定位元素
6.4 通过IOS_CLASS_CHAIN定位元素
6.5 通过IOS_PREDICATE定位元素
6.6 通过XPath定位元素
6.7 使用相对方式定位元素
6.8 定位组元素
6.9 使用坐标单击元素
第7章 Appium中的元素操作
7.1 元素的基本操作
7.1.1 单击操作
7.1.2 输入操作
7.1.3 清除操作
7.1.4 提交操作
7.2 元素的状态判断
7.3 元素的属性值获取
7.3.1 获取元素的id
7.3.2 获取元素的text值
7.3.3 获取元素的位置
7.3.4 获取元素的其他信息
第8章 Appium高级操作
8.1 Appium Server 1.x中的触控操作
8.1.1 轻触坐标点
8.1.2 轻触目标元素
8.1.3 长按操作
8.1.4 长按、拖动操作
8.1.5 多点触控
8.2 Appium Server 2.x中的触控操作
8.3 软键盘操作
8.4 屏幕滑动操作
8.5 屏幕截图操作
8.6 Toast定位
8.7 处理NSAlert
第9章 Appium等待机制
9.1 影响元素加载的外部因素
9.2 强制等待
9.3 隐式等待
9.4 显式等待
9.4.1 WebDriverWait类
9.4.2 WebDriverWait类提供的方法
9.4.3 expected_conditions类提供的条件
9.4.4 自定义等待条件
第10章 Pytest测试框架
10.1 Pytest简介
10.2 Pytest测试固件
10.3 Pytest组织测试用例和断言的方法
10.4 Pytest框架测试执行
10.5 测试用例重试
10.6 标记机制
10.6.1 对测试用例进行分级
10.6.2 跳过某些测试用例
10.7 全局设置
10.7.1 准备测试目录
10.7.2 执行全局测试
10.8 测试报告
10.8.1 pytest-html测试报告
10.8.2 Allure测试报告
10.9 Pytest与Appium
10.10 Pytest参数化
第11章 项目实战
11.1 真机环境部署
11.2 自动化测试用例开发
11.2.1 测试用例设计
11.2.2 测试用例代码实现
11.2.3 测试用例执行
11.3 代码分析
第12章 项目代码优化
12.1 提高测试用例的灵活性
12.1.1 YAML
12.1.2 YAML文件操作
12.1.3 配置数据和代码的分离
12.2 减少代码冗余
12.2.1 conftest.py
12.2.2 前置、后置代码的分离
12.3 提高测试用例的可扩展性
12.3.1 CSV文件
12.3.2 CSV文件操作
12.3.3 测试数据和代码的分离
12.4 提高测试用例的可维护性
12.4.1 页面对象实践
12.4.2 “危机”应对
12.4.3 新增的缺点
第13章 自动化测试框架开发
13.1 自动化测试框架设计
13.2 优化目录层级
13.2.1 Python的os模块
13.2.2 调整模块引用
13.3 增加日志信息
13.3.1 日志概述
13.3.2 logging的用法
展开