Appium 是由 Node.js 来实现的 HTTP 服务,它并不是一套全新的框架,而是将现有的优秀的框架进行了集成,在 Selenium WebDriver 协议(JsonWireProtocol/Restful web service)的基础上增加了移动端的支持,使 Appium 满足多方面的需求。
官方提供更详细的 Appium 结构说明:Appium Package Structure - Appium
Appium 框架结构
Appium 是由多个子项目构成的,github 访问如下图:
Appium 由 Appium 以及其它的工作引擎包括:appium-xcuitest-driver、appium-android-driver、appium-ios-driver、appium-uiautomator2-server、appium-base-driver 等组成。下载 Appium 这个项目进行分析,发现 Appium 有着非常复杂的目录结构,如下图:
其中重要的目录如下:
项目中有个文件 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