34.Appium 源码修改定制

发布时间 2023-12-26 11:11:11作者: 想要暴富的小男孩

为什么需要改造开源框架

  • bug fix
  • 增强功能
  • 提升性能

改造方式

  • 直接改造:直接改造开源框架,创建特性分支
  • 二次封装:不修改原有项目,直接进行上层封装
  • 插件改造:利用已有项目的插件或者扩展机制进行定制
  • 外挂改造:不修改原有代码的情况打补丁,利用 mock、hook 方法

维护开源项目的方式

  • fork 原有项目
  • 拉出新的分支进行修改
  • 通过 github、gitlab 平台发起 merge/pull request

appium 改造实例

  • fork 原始项目到远程个人仓库
  • clone 原始项目到本地
  • checkout 新的 feature 分支进行代码更新维护
  • push 到远程个人仓库进行代码版本化管理
  • 重新构建打包
  • 使用定制版本的 appium 完成自动化测试
  • 发起 pull/merge request 给原始仓库(可选)

底层结构

appium 的核心代码

  • appium: appium的核心代码,负责与底层引擎通讯,nodejs项目,npm构建
  • appium-uiautomator2-server: Android自动化引擎,java项目,gradle构建
  • wda: iOS自动化引擎

appium 项目

Java 项目

构建 npm 项目

npm run build

构建 gradle 项目

./gradlew clean assembleServerDebug assembleServerDebugAndroidTest

如何提升代码改造能力

  • 静态分析:深入阅读开源框架的源代码
  • 动态分析:掌握动态分析代码执行的能力
  • 设计经验:了解经典设计模式、数据结构与算法