Appium2.0 重大变更

概述

由于 XCUITest driver 的4.0版本目前只支持Appium2.x版本:

Since version 4.0.0 XCUITest driver has dropped the support of Appium 1, and is only compatible to Appium 2. Use the appium driver install xcuitest command to add it to your Appium 2 dist. [链接]

所以需要升级Appium到2.x,目前我们在自动化过程中接触的Appium大致分为三个部分:
一、Appium 服务
二、Appium Desktop/Inspector 工具(需要单独下载,但是可以和Appium服务一起升级)
三、Appium-Python-Client (升级调研参考文档)

Appium
当前版本:v1.22.3
最新版本:v2.0.0 beta.46

重大变化

在 Appium 2.0版本中,将Appium定位为「平台」,平台上的 driver(驱动程序) 和 plugin(插件)都可以自行添加、扩展、更改等 ,因此这些对 Appium 的安装方式、驱动程序和各种功能的管理方式以及协议支持进行了一些重大更改。

1. driver的安装方式变化

2.x 版本:安装Appium Server后,需要单独安装需要的driver。1.x 版本:安装Appium服务同时安装driver)

# 方法一:先安装appium,再安装driver
npm install -g appium@next
appium driver install xcuitest
appium driver install uiautomator2

# 方法二:同时安装appium 和 driver
npm install --global appium --drivers=xcuitest,uiautomator2

2. driver的安装路径变化

2.x 版本:将此类依赖安装在 APPIUM_HOME 中,默认路径:~/.appium
1.x 版本:driver的默认路径: _/path/to/appium/node_modules_。)

3. Chromedriver命令的传参方式变化

2.x 版本:传参方式从1.x版本的「直接给定」到「从环境变量中读取」

  • APPIUM_SKIP_CHROMEDRIVER_INSTALL(由1.x 版本 --chromedriver-skip-install 变更)
  • CHROMEDRIVER_VERSION(由1.x 版本 --chromedriver-version 变更)
  • CHROMEDRIVER_CDNURL(由1.x 版本 --chromedriver-cdnurl 变更)
APPIUM_SKIP_CHROMEDRIVER_INSTALL=1 appium driver install uiautomator2

4. 命令参数要和driver绑定

2.x 版本:命令行参数需要指定具体的driver/plugin才能使用。
(例如,--chromedriver-executable直接使用会报错,需要在参数前指定driver :--driver-uiautomator2-chromedriver-executable。如果使用该命令之前没有安装 uiautomator 的driver,将会直接报错:「404 Not Found」。)

5. driver可以进行独立更新

2.x 版本:与Appium Server版本更新分离,可单独更新driver 和plugin的版本。

# 检查 driver 更新
appium driver list --updates

# 更新 driver
appium driver update xcuitest

# 更新 Appium server(不会同时更新driver)
npm install -g appium

1.x 版本:更新 Appium Server时,driver会同步更新。)

6. 未来将删除对JSONWP和MJSONWP的支持

2.x 版本:未来会逐步删除xx和xxx,建议都改成W3C

7. Capabilities 标准化

2.x 版本:需要符合W3C标准,增加capabilities的前缀「appium:」。(appium inspector 工具会自动添加)

  • appium:app
  • appium:noReset
  • appium:deviceName

另外,还可以把上述都带有前缀的capability放入「appium:options」中,写成这种格式:

//注意:appium:options将覆盖外层的同名功能。
{
    "platformName": "iOS",
    "browserName": "Safari",
    "appium:options": {
        "platformVersion": "14.4",
        "deviceName": "iPhone 11",
        "automationName": "XCUITest"
    }
}

8. image相关功能移到plugin

2.x 版本:image comparison, finding elements by image等image相关功能移动到了官方插件「images」中。

# 安装插件
appium plugin install images

# 启动 Appium Server 时运行插件
appium --use-plugins=images

9. ExecuteDriver的功能移到plugin

2.x 版本:将ExecuteDriver的功能从Appium剥离,可以自行选择是否安装该插件。 [插件说明]

# 安装插件
appium plugin install execute-driver

# 启动 Appium Server 时运行插件
appium --use-plugins=execute-driver

10. 部分传参命令被废弃

2.x 版本--nodeconfig--default-capabilities--allow-insecure``--deny-insecure命令被取消,如果需要使用这些方法,可以使用「配置文件」(后文新功能中有描述)的方式

11. Appium Inspector 从 Appium Desktop中分离

2.x 版本: Appium Inspector 工具 [GitHub]不再依赖于 Appium Desktop,可以单独启动。
另外,还提供了在Web版本 Inspector 工具:

  1. 如果需要调试本地服务,需要先启动Appium服务并添加命令参数--allow-cors,以便网页端工具连接。
  2. 打开 [inspector Web页] 直接使用,不需要另外下载。

12. 旧 driver 被废弃/不再提供 "WD" JavaScript client library

2.x 版本:iOS和安卓端的 UiAutomator1 driver和 authorize-ios 工具被废弃。
目前提供的Driver和plugin列表,详情见:

行动项

[appium 升级 行动项]

参考链接

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容