|app自动化测试之Appium 源码修改定制分析

本文深入探讨了 Appium 的框架结构,重点分析了 appium-uiautomator2-server,解释了其启动过程,并介绍了如何扩展 Appium 的功能。文章还涵盖了 AppiumServlet 的工作原理,以及项目构建和 APK 安装的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Appium 是由 Node.js 来实现的 HTTP 服务,它并不是一套全新的框架,而是将现有的优秀的框架进行了集成,在 Selenium WebDriver 协议(JsonWireProtocol/Restful web service)的基础上增加了移动端的支持,使 Appium 满足多方面的需求。
官方提供更详细的 Appium 结构说明:https://appium.io/docs/en/contributing-to-appium/appium-packages/

Appium 框架结构

Appium 是由多个子项目构成的,github 访问如下图:

Appium 由 Appium 以及其它的工作引擎包括:appium-xcuitest-driver、appium-android-driver、appium-ios-driver、appium-uiautomator2-server、appium-base-driver 等组成。下载 Appium 这个项目进行分析,发现 Appium 有着非常复杂的目录结构,如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EeOqfsrB-1651124068251)(https://ceshiren.com/uploads/default/original/3X/d/5/d5c1562f967194b84ce4c26f9f3feef679ae8da3.png)]
其中重要的目录如下:

项目中有个文件 package.json ,这个文件是项目的描述文件。对项目或者模块包的描述,比如项目名称,项目版本,项目执行入口文件,项目贡献者等等。npm install命令会根据这个文件下载所有依赖模块,查看这个文件可以看到如下的信息:

"dependencies": {
    "@babel/runtime": "^7.6.0",
        "appium-android-driver": "^4.20.0",
            "appium-base-driver": "^5.0.0",
                "appium-espresso-driver": "^1.0.0",
                    "appium-fake-driver": "^0.x",
                        "appium-flutter-driver": "^0",
                            "appium-ios-driver": "4.x",
                                "appium-mac-driver": "1.x",
                                    "appium-support": "2.x",
                                        "appium-tizen-driver": "^1.1.1-beta.4",
                                            "appium-uiautomator2-driver": "^1.37.1",
                                                "appium-windows-driver": "1.x",
                                                    "appium-xcuitest-driver": "^3.0.0",
                                                        ...
                                                          },

dependencies 表示此模块依赖的模块和版本信息。从这

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值