多态本身不直接构建执行框架,但能提升关键模块的可扩展性与解耦能力;通过抽象基类与子类实现、testexecutor接口、recoverystrategy策略等设计,实现控件操作、多平台执行和异常恢复的统一抽象与动态切换。

多态特性本身不直接用于“执行框架”的构建,但它能显著提升框架中关键模块的可扩展性与解耦能力——尤其是当测试行为需要根据被测对象类型动态切换时。真正起作用的是面向对象设计中对多态的合理运用,而非单纯套用语法特性。
用多态解耦执行逻辑与具体操作
在UI自动化中,不同控件(按钮、输入框、下拉框)有各自的交互方式,但对外都应提供统一的操作接口。这时可定义抽象基类 BaseElement,声明 click()、input(text)、select(value) 等方法;再为每类控件实现子类(ButtonElement、InputElement、SelectElement),各自重写对应方法。测试脚本只需调用通用方法,无需关心底层是哪种控件。
- 避免在测试用例里写 if-else 判断控件类型,把判断逻辑下沉到元素工厂或定位器中
- 新增控件类型时,只增加一个子类和工厂注册,不影响已有用例和执行引擎
- 配合 Page Object 模式,页面类中声明的字段类型为 BaseElement,运行时自动注入具体子类实例
用多态支持多平台/多协议测试执行
同一业务流程可能需在 Web、App、API 三端验证。可抽象出 TestExecutor 接口,定义 runStep(step) 和 verify(expected) 方法;分别实现 WebExecutor、AppExecutor、ApiExecutor。测试用例描述层保持一致(如 “登录 → 查看首页 → 验证欢迎语”),执行时由配置决定注入哪个 Executor 实例。
Figma Make 是 Figma AI 体系中的核心创作引擎,旨在将文本指令直接转化为可编辑的 UI 设计稿。它不仅能帮助设计师快速跨越“空白画布”阶段,还能根据简单的 Prompt 生成包含布局、组件和初步交互的原型,是提升设计探索效率的终极加速器。
- 用例编写者不用重复写三套脚本,只需关注业务动作语义
- 环境切换只需改配置或启动参数,不修改测试逻辑代码
- 各 Executor 内部可复用相同的数据驱动、断言工具和日志机制,体现高内聚
用多态统一异常处理与恢复策略
不同场景下的失败恢复行为不同:UI 测试可能需要刷新页面或关闭弹窗,API 测试可能需要重发 Token,数据库测试可能需要回滚事务。可定义 RecoveryStrategy 抽象类,提供 recover(context) 方法;按场景实现 UiRecovery、ApiRecovery、DbRecovery。执行引擎捕获异常后,根据当前测试类型自动调用对应策略,而不是在 try-catch 块里堆砌各种恢复代码。
- 异常处理逻辑与测试步骤分离,便于单独维护和单元测试
- 策略可组合使用(如先 UiRecovery 再 ApiRecovery),通过装饰器或责任链模式增强灵活性
- 失败日志自动标记所用策略,辅助快速定位恢复是否生效
注意:多态不是银弹,要配合其他原则
仅靠多态无法保证高内聚。它必须嵌入整体架构中:每个子类职责单一(只管一种控件或一种执行环境),方法间依赖最小(低耦合),且共用的工具类(如日志、配置读取、报告生成)独立成模块,不随多态分支变化。否则容易出现“子类越写越多,公共逻辑越散越乱”的反模式。










