导读
自动化测试环境搭建
- Python安装及配置
- Pycharm安装及配置
- Appium安装及配置
- 新建项目EasyUiAutotest,安装Appium-Python-Client
- Android模拟器的安装和adb连接
- EasyUiAutotest项目目录设置及说明
- 编写第一个APP自动化脚本 appium_helloworld ,将脚本跑起来
Pytest 基础讲解
- pytest基础讲解
- pytest常用命令行参数
- pytest参数化测试
- pytest前置后置操作
- pytest断言异常
- pytest中fixture固件机制
- 使用 conftest.py 文件自定义命令行参数
- 使用 pytest.ini 文件控制输出log日志
appium_helloworld 优化
- 使用 pytest 相关特性重构 appium_helloworld
- init_appium_and_devices 的实现思路分析
- os_util 工具类和方法的实现
- 通过代码启动 appium server
- 通过代码启动模拟器 emulator
- 通过代码启动 uiautomatorviewer
- 启动 driver 时,自动安装 app …待更新
- 优化: 使用 AppiumService 类,启动 appium server …待更新
- 优化: 使用 EmulatorDeviceManager 类,批量启动模拟器…待更新
- 小技巧: 使用 DeskPins 将窗口钉在桌面 …待更新
- 思考:如何正确地使用面向对象
- 思考:如何正确地输出logger日志
Appium 基础讲解
Appium 二次封装
- 基于EventFiringWebDriver进行二次封装… 待更新
- 封装RetryWebDriver, 增强元素定位的健壮性… 待更新
- 封装InitWebDriver, 添加默认启动参数… 待更新
- 解决id定位、class定位,属性值为复合属性定位失败的问题… 待更新
- 封装find_element_by_xpath_axis,解决复杂元素的定位问题… 待更新
- 封装find_element_by_text方法,实现通过text定位元素… 待更新
- 封装swipe_to方法,让滑动页面更简单… 待更新
- 封装get_toast方法,获取toast信息… 待更新
- 封装EasyWebElement, 增加元素常用操作方法… 待更新
ADB 常用操作封装
- 封装ADBRunner,用于执行ADB常用操作… 待更新
- 封装get_connected_device_udids方法,获取所有已连接设备的udid… 待更新
- 封装turn_usb_debug_to_wifi_debug方法,摆脱usb的束缚允许设备进行远程调试… 待更新
- 封装get_app_package_and_activity方法,获取app包名和活动页面名称… 待更新
- 封装pull_apk_from_device方法,从设备中将apk文件拉取至本地… 待更新
- 封装get_apk_infos方法,获取apk的常用信息… 待更新
混合应用、小程序自动化
- 原生app和webview相互切换的实践… 待更新
- 封装switch_to_webview方法,简化切换至webview的操作… 待更新
- 封装switch_to_native方法,简化切换至原生app的操作… 待更新
- 封装handle_in_webview方法,简单操作webview中的元素… 待更新
- 微信小程序自动化的基本思路讲解… 待更新
- 封装WechatMiniProgramDriver,使微信小程序更简单… 待更新
基于 PO 模式的框架实现
- PO模式核心思想讲解… 待更新
- PageElement,对页面元素进行封装… 待更新
- PageHandler,对元素操作进行封装… 待更新
- PageLogic,对业务流程进行封装… 待更新
- PO局限性和用途… 待更新
基于数据驱动的框架实现
- 数据驱动核心思想讲解… 待更新
- 封装ExcelParser,解析测试用例数据… 待更新
- 封装ParamsReplacer,实现数据参数化… 待更新
- 封装CaseDataProvider,负责提供用例数据… 待更新
- 封装EventHandler,调用底层Driver提供事件支持… 待更新
- 封装CaseRunner,批量执行测试用例… 待更新