目 录
第1章 新的起点—自动化测试 1
1.1 经典自动化测试实例 1
1.1.1 环境搭建 1
1.1.2 PyCharm 6
1.1.3 UI自动化测试的延续—Selenium WebDriver 8
1.2 更多自动化测试战术体验 10
1.2.1 利用unittest组织测试脚本 10
1.2.2 测试用例的数据驱动 12
1.2.3 生成漂亮的测试报告 15
1.3 本章小结 18
第2章 关键识别技术及常见控件的使用 19
2.1 自动化测试的核心—对象识别 19
2.1.1 如何快速抓取页面上的元素属性 19
2.1.2 学会如何高效地使用XPath定位对象 22
2.1.3 CSS选择器—另一种不得不学的定位方式 27
2.1.4 XPath与CSS选择器的对比 29
2.1.5 FindElement与FindElements各显“神通” 33
2.2 同步点—让测试脚本更稳定 37
2.2.1 同步点的重要性 37
2.2.2 智能全局等待 38
2.2.3 私人订制等待 39
2.3 项目中常用Web控件 45
2.3.1 WebElement—WebDriver的基层元素 45
2.3.2 WebTextbox—针对文本框的处理 48
2.3.3 WebListbox—关于下拉列表的操作 54
2.3.4 WebCheckbox—复选框的应用 58
2.3.5 WebTable—表格的处理 60
2.4 本章小结 65
第3章 移动端自动化测试实例与核心原理剖析 66
3.1 引言 66
3.2 Desired Caps与Driver-Selenium的原理 66
3.2.1 无所不能的Desired Caps 66
3.2.2 不同驱动器的底层实现原理 66
3.2.3 Selenium的运行原理 67
3.2.4 利用Standalone Server远程执行测试脚本 67
3.2.5 添加Chrome浏览器的支持 70
3.2.6 使用Selenium Grid进行跨浏览器测试 73
3.2.7 Sauce Labs—想你所想,无所不能 77
3.3 Appium移动端自动化测试工作机制 89
3.3.1 Appium的运作原理 89
3.3.2 iOS自动化测试的好帮手—XCUITest 92
3.3.3 WebDriverAgent—搭建iOS自动化桥梁的“功臣” 96
3.3.4 UIAutomator2—搭建Android自动化测试桥梁的“功臣” 103
3.4 Appium-Desktop—从依赖到放弃 105
3.4.1 为什么需要依赖Appium-Desktop 105
3.4.2 为什么不要完全依赖Appium-Desktop 110
3.5 从一个经典的官方实例开启移动端自动化测试Appium之旅 113
3.6 本章小结 114
第4章 自动化实战项目原型设计 115
4.1 充分的准备工作让你事半功倍 115
4.1.1 自动化测试真的合适吗 115
4.1.2 优秀的测试策略能让自动化测试成功率达到80% 115
4.1.3 新的开始 116
4.2 让自动化测试脚本更加稳健 119
4.2.1 编写易维护、易扩展的测试脚本 119
4.2.2 用可重用的结构降低脚本的维护成本 122
4.2.3 编写有弹性的测试脚本 125
4.2.4 追求实用 128
4.3 灵活与智能化地执行测试 131
4.3.1 本地跨浏览器测试 131
4.3.2 云端跨浏览器测试 133
4.3.3 加快执行速度 136
4.3.4 灵活地对测试进行分组 138
4.4 测试的自动化 140
4.4.1 需要一个7×24小时全年无休的“工人” 140
4.4.2 需要“工人”在完工后给出反馈 144
4.4.3 需要“工人”与“工人”之间紧密合作 146
4.5 本章小结 149
第5章 接口测试 150
5.1 引言 150
5.2 什么是接口 151
5.3 接口的类型 151
5.4 接口的本质和工作原理 151
5.5 接口测试的定义 152
5.6 接口测试的必要性 152
5.7 怎样做接口测试 152
5.8 接口测试的测试点 153
5.9 做接口测试需要掌握的知识 156
5.10 本章小结 158
第6章 Python Requests接口测试实战 159
6.1 API自动化测试任务 159
6.2 Python 3+unittest+HTMLReport+DDT框架 162
6.2.1 项目介绍 162
6.2.2 python_api_test_automation.py 164
6.2.3 public_func.py 176
6.2.4 run_test.py 180
6.3 本章小结 185
附录A JMeter接口测试实战 187
附录B 移动端网络抓包 199