Sparkle CodesSparkle
项目 / APP测试

用 POM 分层、关键字封装和数据驱动搭建 Appium 自动化测试框架

x
xpx
Mar 09, 2025
Editorial Insight
#Allure#Appium#Pytest#YAML#数据驱动#测试开发

用 POM 分层、关键字封装和数据驱动搭建 Appium 自动化测试框架

系列导航
  • Appium 自动化入门:为什么要从线性脚本走向 POM 分层
  • Appium 登录自动化:Page、Object 与 Module 的拆分实践
  • Appium 自动化数据驱动:Excel、Pytest 参数化与断言分流
  • Appium 自动化框架进阶:YAML、Allure 与读书屋搜索案例

做 App 自动化时,最容易低估的不是定位元素本身,而是代码在第二阶段开始失控的速度。

第一版脚本通常都能跑,但一旦走到下面这些场景,维护成本会突然上来:

  • 登录、搜索、表单这类流程开始反复出现;
  • 一个功能既要测成功路径,也要测空值、错误值、边界值;
  • 测试数据不再只有一组;
  • 需要更清楚地知道失败发生在哪一步;
  • 开始希望把 UI 结果和数据库、配置文件、报告系统接起来。

真正决定自动化测试质量的,往往不是某一个 API,而是代码是按什么方式组织起来的。

我后来回头看这类自动化代码,发现真正值得写进博客的,不是“会不会调 Appium API”,而是下面这条演进路线:

  1. 先解决为什么线性脚本很快会失控;
  2. 再用登录案例把 page -> object -> module 这套拆分真正落地;
  3. 接着把单场景测试扩展到 Excel + pytest.mark.parametrize 的多场景执行;
  4. 最后把 YAML、Allure 和读书屋搜索案例接进来,形成更接近框架化的形态。

一条更可维护的 Appium 自动化路线

Appium 自动化入门:为什么要从线性脚本走向 POM 分层

如果只是写一两个验证脚本,线性代码已经够用;但只要开始追求复用和维护,分层思维就会变得必要。

这篇会解释:

  • 线性脚本到底会在哪里开始失控;
  • POM 在这里真正拆开的是什么;
  • 为什么“元素、动作、流程、数据、断言”应该分开思考。

Appium 登录自动化:Page、Object 与 Module 的拆分实践

分层思维如果没有案例,很容易停留在概念层。这一篇直接用登录流程把 Page、Object 和 Module 三层拆开。

核心内容包括:

  • 元素定位如何集中到 Page 层;
  • 基础动作和业务步骤如何封到 Object 层;
  • 用例流程和断言如何留在 Module 层。

Appium 自动化数据驱动:Excel、Pytest 参数化与断言分流

一条登录成功用例并不能代表真实测试工作。真正有价值的,是把它扩展成多组输入、多种预期、不同断言分支。

这一篇会把 Excel、Pandas、pytest.mark.parametrize 和断言分流放在一起讲清楚。

Appium 自动化框架进阶:YAML、Allure 与读书屋搜索案例

当前面的分层和数据驱动已经具备之后,框架就会自然走到更重的阶段:配置、报告、SQL 校验,以及跨场景复用。

YAML、Allure 和搜索案例真正值得放在一起的原因,是它们都在回答同一个问题:当自动化测试不再只是几个能跑的脚本时,怎样把配置、执行过程和结果验证收进同一套框架视角里。

如果只看其中一篇,登录案例通常最容易落地;如果想把这套东西继续做厚,数据驱动和框架化那两篇会更接近真实项目里的维护问题。

BACK TO BLOG
The End of Interaction