Appium appium 的技术架构

cmlanche · April 11, 2019 · Last by Dorom replied at April 25, 2019 · 712 hits

appium是基于nodejs来打包、发布的,也用它来管理各个driver,如下图所示,它的结构图如下:

image-20190411154231747

从上图就可以看到:android的自动化比iOS的要难多了!

appium主程序,依赖各个driver程序,其中,安卓的自动化有3个driver,分别是:

  1. appium-android-driver - 用于驱动UIAutomator1
  2. appium-uiautomator2-driver - 用于驱动UIAutomator2
  3. appium-espresso-driver - 用于驱动Espresso

列个表对比一下:

功能\Driver appium-android-driver appium-uiautomator2-driver appium-espresso-driver
用途 驱动UIAutomator1 驱动UIAutomator2 驱动espresso
automationName UiAutomator1 UiAutomator2 Espresso
包形式 AppiumBootstrap.jar appium-uiautomator2-server-v${version}.apk TODO待研究
包依赖地址 bootstrap/bin/ appium-uiautomator2-server/apks/ TODO
优点 jar包形式,免安装,一个命令直接启动,权限级别是shell级别 官方推荐使用2,对高版本兼容性好 控件识别能力强
缺点 对高版本兼容性差,容易无法识别控件 apk形式,需要安装 apk形式,需求安装,并且是侵入式的,可能带来风险
Server模块 在相同工程中,Bootstrap目录,maven工程,主要目标是在bin目录下输出AppiumBootstrap.jar 不同工程,单独的另外一个Nodejs工程:appium-uiautomator2-server 相同Nodejs工程,espress-server目录,gradle工程

附:AppiumBootstrap.jar的打包过程:https://zhuanlan.zhihu.com/p/61213093

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 10 条回复 时间 点赞
1Floor has been deleted

low

很不错的分享,期待楼主持续更新

文贤平 回复

谢谢,但是感觉没人看,感觉国内深度研究appium的很少,绝大多数都是浅层次的使用,UIAutomator1、UIAutomator2、espresso都区分不了,更是用不上

赞!支持楼主!

虽然看不懂但是支持楼主

其实实施起来最复杂的是 iOS,环境搭建难。而且选择的余地少,只有WDA

codeskyblue 回复

这方面确实是,不过iOS设备少,适配方面好弄点

感谢分享

太久没用appium了,现在都集成了espresso?

Dorom · #11 · April 25, 2019
Author only
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up