【appium】iOS自动化appium1.x迁移到appium2.x

appium文档:https://appium.io/docs/en/2.0/guides/migrating-1-to-2/

**迁移背景:

配置:mac电脑13.3.1,xcode14.3,appium 1.23,python3.9,npm 9.6.6,node v20.2.0,测试机是苹果13mini iOS15.6
迁移的理由:
iOS自动化在6月2号之前一直能正常执行,突然在6月2号这天,执行报错:UnknownError: An unknown server-side error occurred while processing the command. Original error: Could not load a driver for automationName ‘XCUITest’ and platformName ‘iOS’. Please verify your Appium installation
appium服务器日志是:import * as dependencies from ‘./lib/check-dependencies’;SyntaxError: Cannot use import statement outside a module
网上类似问题:https://testerhome.com/topics/36004
类似这个,https://github.com/appium/appium/issues/17990
归根原因是:appium1.x不适配xcode14.3,所以要xcode14.3就要升级到appium2.0(因为的mac系统是13.3.1,必须要xcode14以上,所以没有办法降xcode的版本)
在网上搜了各种尝试都不行,所以就打算升级成appium2.0,升级成功后就解决了上述的问题。自动化脚本能正常执行了

1.卸载以前的appium 1.x服务器

npm uninstall -g appium

mac电脑: brew uninstall appium
在这里插入图片描述
在这里插入图片描述

2.安装2.x的appium服务器

npm install -g appium@next

注:如果用的命令是npm install -g appium,安装的还是以前的appium 1.x,因为目前最新官方版本还是1.x,appium2.x还只是beta阶段
在这里插入图片描述

3.安装驱动driver,最新版

appium driver install xcuitest 

在这里插入图片描述
(因为我用的的测试机是苹果没有低于iOS 10的系统,所以我只安装xcuitest没有安装uiautomator2)
安装完成后,driver安装的路径是:$APPIUM_HOME/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent ,
$APPIUM_HOME 默认是~/.appium,如果你自己有更改,则是你自己配置的
我的是在:/Users/guanliyuan/.appium/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent

注涉及到的其他可能用到的命令:
appium driver install uiautomator2     #安装最新版uiautomator驱动
appium driver install xcuitest@4.12.2  #安装特定版本4.12.2的xcuitest驱动
appium driver install --source=npm appium-xcuitest-driver[@<version>]   #从npm安装xcuitest驱动
appium driver install --source=local /Users/me/sources/appium-xcuitest-driver  #安装本地的xcuitest驱动
appium driver install --source=github --package=appium-xcuitest-driver appium/appium-xcuitest-driver #安装来自github来源的xcuitest驱动
appium driver list --installed #查询已经安装的驱动
appium driver update xcuitest #更新升级驱动
appium driver uninstall xcuitest #卸载xcuitest驱动

4.配置webdriveragent

a.mac直接在访达执行快捷键win+shift+G,输入驱动的地址(第三步安装diriver的地址)然后回车,我的是/Users/guanliyuan/.appium/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent
在这里插入图片描述
b.在目录下找到WebDriverAgent.xcodeproj文件,用xcode打开
在这里插入图片描述
c.按以前的方法重新build和test在测试机生成WebDriverAgent.即可
在这里插入图片描述

5.升级appium inspector

a.从https://github.com/appium/appium-inspector/releases下载适配appium 2.0的appium inspector
在这里插入图片描述
b.下载成功后,直接手动安装
在这里插入图片描述
c.安装成功后启动,appium inspect
如果启动appium inspect 失败,提示:无法打开“Appium Inspector”,因为Apple无法检查其是否包含恶意软件
在这里插入图片描述
则按如下操作解决:
在终端执行命令:xattr -cr /Applications/Appium\ Inspector.app

在这里插入图片描述
其中/Applications/Appium\ Inspector.app这个是你的安装路径,执行命令时要替换成自己的路径,执行命令后 重新启动 appium inspector就能启动成功了
(注:macOS上使用桌面应用程序,提示“应用程序无法打开或未经Apple验证或类似情况的错误”,解决方法是在终端执行命令:xattr -cr 应用程序安装路径)

d.appium insepctor 连接测试机
appium insepect 针对appium 2.0有个不同点就是remote path,appium 1.x是’/wd/hub’,appium 2.0要改成’/',其他都和appium 1.x的配置一致
在这里插入图片描述
按上图的配置完成后,点击start session即可

6.自动化测试代码层的改动

a.连接服务器的配置,要变化
from appium import webdriver
driver: WebDriver = webdriver
1.连接appium1.x这里代码是:webdriver.Remote(http://127.0.0.1:4723/wd/hub)
2.连接appium2.x的服务器,这里就要改成:webdriver.Remote(http://127.0.0.1:4723)
在这里插入图片描述

b.启动webdirveragent服务的命令变化:
appium2.0是:appium -p {port} --driver-xcuitest-webdriveragent-port {agent_port}
appium1.x是:appium -p {port} --webdriveragent-port {agent_port}
port是appium服务器的端口号,–webdriveragent-port 就是webdriveragent的端口转发的指定端口,在iOS端上的webdriveragent启动服务后默认是手机ip:8100
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值