Appium Win 下成功 Appium+iOS 自动化

阿三 · 2021年03月25日 · 最后由 阿三 回复于 2021年04月26日 · 2145 次阅读

本人 win 环境:

Appium 客户端 V1.20.2(注意升级最新版本!!低于该版本可能有问题)
tideviceV0.3.3(参考资料:https://testerhome.com/topics/27758
iOS 设备 iPhone7(12.4.1)已安装上 wda
iTunesV12.11

操作步骤

1.Appium 客户端到官网下载安装即可

2.tidevice 安装
该工具是用 Python 写的,依赖 Python3.6+
命令安装方法
pip3 install -U tidevice
命令验证是否安装成功:(有版本信息返回即正常)
tidevice -v

3.插上 iOS 设备
命令查看所有连接上的设备命令(有设备 udid 信息返回即正常)
tidevice list

查看个人设备上已安装 wda 的 bundleId
tidevice applist

4.命令启动 wda
tidevice -u(设备 udid)wdaproxy -B(wda 的 bundleId) --port 8100
例:

正常情况

访问:http://127.0.0.1:8100/status
有返回设备信息即正常

  1. appium 自动化脚本启动配置如下,即可
共收到 53 条回复 时间 点赞

大佬 wda 是 WebDriverAgent 吗?,,wda 可以打包成.ipa 文件吗

爱_大蓝 回复

不是大佬, wda 是 WebDriverAgent, wda 可以打包成.ipa 文件,(包直接发出来也没用,要重签名才能安装到自己的设备)😂

tidevice 这个事什么呀

阿三 回复

我用的是 tidevice+airtest+wda,感觉比较好用,但是 wda 需要用 mac 的 xcode 编译到手机上,感觉还是脱离不了 mac 呀

阿三 回复

现在 tidevice 项目里面的 WebDriverAgent.ipa 好像也去掉了,我之前也重签过老是失败!你试过重签吗?

爱_大蓝 回复

airtest 我试过也是可以,看个人。 tidevice 官方已说 wda 已安装到手机就可以脱离 Mac,我觉得,如果完全没有 Mac 的用户,可以装 Mac 虚拟机/让有 Mac 的开发,帮忙装下 wda, 其实只要装一次,基本后面就不会再需要 Mac.

阿三 #10 · 2021年03月26日 Author
爱_大蓝 回复

WebDriverAgent.ipa 在早期版本里,我昨天还下载过,重签我是直接用 WebDriverAgent 源码项目找开发,帮忙安装 wda 的,也很快。

阿三 回复

是的!我看过 0.1.3 之前是有 WebDriverAgent.ipa 的,我也是用 WebDriverAgent 源代码运行到手机上,但老想搞成 ipa 完全脱离 mac 电脑


请问这种情况怎么处理?

阿三 #14 · 2021年03月26日 Author
爱_大蓝 回复

安装 wad,这步目前无法脱离 Mac,即使要 ipa 重签名,用重签名工具也是 Mac 工具

阿三 #15 · 2021年03月26日 Author
murphy 回复

这个报错加 webDriverAgentUrl 参数解决,要填写具体 IP

阿三 回复

按照你说的还是不行

阿三 #17 · 2021年03月26日 Author
murphy 回复

如果其他环境配置跟我一致,唯一区别就是设备的版本,我是 12.4.1,你高版本的 14.2 我没试过,你先换低版本设备试下

试了一下,切实可以,楼主牛啊

{
  "automationName": "XCUITest",
  "platformName": "iOS",
  "platformVersion": "",
  "deviceName": "iPhone 12 Pro",
  "bundleId": "",
  "udid": "",
  "newCommandTimeout": "3600",
  "skipLogCapture": "true",
  "webDriverAgentUrl": "http://localhost:8100",
  "usePrebuiltWDA": "true",
  "useXctestrunFile": "false"
}

Error: connect ENOENT /var/run/usbmuxd ,想问下报错这个是啥意思咋解决

阿三 #20 · 2021年03月30日 Author
回复

升级 appium 到 V1.20.2 版本,

阿三 #21 · 2021年03月30日 Author
Yu 回复

都是前人栽树,我们是乘凉的人😂

阿三 回复

已搞定

阿三 #23 · 2021年03月30日 Author
回复

😂

阿三 回复

不稳定,执行的时候挂了

remote stacktrace: UnknownError: An unknown server-side error occurred while processing the command. Original error: Unable to start WebDriverAgent session because of xcodebuild failure: An unknown server-side error occurred while processing the command. Original error: Could not proxy command to the remote server. Original error: read ECONNRESET Make sure you follow the tutorial at https://github.com/appium/appium-xcuitest-driver/blob/master/docs/real-device-config.md. Try to remove the WebDriverAgentRunner application from the device if it is installed and reboot the device.
阿三 #31 · 2021年03月30日 Author
Yu 回复

已安装 WebDriverAgentRunner 应用程序,尝试从设备中删除,然后重新启动设备。

阿三 回复

emmm 这个玩意不稳定,

阿三 #27 · 2021年03月30日 Author
Yu 回复

稳定性,我后续跟进下,看我这边是否也遇到跟你一样。有结果会回复

阿三 回复

嗯 现在还是用回默认的

阿三 #29 · 2021年03月30日 Author
Yu 回复

我目前使用没有发现不稳定/提示 WebDriverAgentRunner 要重装。 从 wda 提示要重装,个人猜测是不是安装 wda 证书问题 (我是用企业证书)

ios 14.2 实验成功,跑 case 正常

阿三 #31 · 2021年04月02日 Author
回复

👍

阿三 回复

大佬,求助哇,启动 appium 的时候报 Session has been terminated,会话已终止。appium 和 tidevice 版本跟您一样,我的是 iphone6,12.4.8 版本,appium 配置一致,使用真实 IP,命令启动 wda 也成功😂 不知道怎么搞了。

问下楼主,我找开发安装时,schema 选择 WebDriverAgentRunner 后,开发说无法编译安装,如下截图:

很赞呀,加个精让更多有需要在 windows 下跑 ios 自动化的同学看到。从评论看,appium 版本是有一定要求的,建议正文里强调一下这个点?

@codeskyblue tidevice 的 readme 里可以考虑加上这个,引导有需要的同学过来这里了解详细步骤?

阿三 #35 · 2021年04月06日 Author
德子 回复

1 访问:http://127.0.0.1:8100/status 若有设备信息返回值,操作 2
2

阿三 #36 · 2021年04月06日 Author
liuau86 回复

1.确定选择了运行证书后,操作 2
2 修改 Bundle ID(可任意取/自己已申请过的 Bundle ID)
3,运行

阿三 #37 · 2021年04月06日 Author
陈恒捷 回复

收到!已采纳建议,调整帖子内容

阿三 #38 · 2021年04月06日 Author
liuau86 回复

在运行 WebDriverAgentRunner 前提,必须更新 WebDriverAgent 依赖,操作如下
切换到 appium-webdriveragent 目录,执行 sh ./Scripts/bootstrap.sh 命令

只支持一个设备嘛?如果插入多台设备执行 tidevice wdaproxy -B 会提示 More then 2 devices detected。设备比较多又不想每台设备都启动一个代理

South 回复

加 -u 呢

哲豪 回复

-u 是指定特定设备,设备有点多每一个设备都指定并开启一端口有点麻烦。

South 回复

tidevice -u UDID xctest -B com.facebook.wda.WebDriverAgent.Runner -e USB_PORT:8200
这样?

有哪位大佬遇到过 这个 问题
Failed to create WDA session (An unknown server-side error occurred while processing the command. Original error: Could not proxy command to the remote server. Original error: connect ETIMEDOUT 192.168.0.107:8100). Retrying...

浏览器可以正常访问,appium 启动 连不上一直

我这里也遇到了 请问下你 webDriverAgentUrl 的 IP 怎么获取的

我是 mac 下面驱动的。appium 驱动 wda,从 iOS14 系统里启动 app 后,是超级慢,根本不能用。。

Lambda 回复

wda 启动 app,如果慢的话,请确认手机 app 是否存在指定包名

47楼 已删除
cmlanche 回复

不是哈,app 已驱动起来了。确认应该跟 app 有关,其他 app 没有问题。。

终于跑通了,不知道为啥楼主没配置"automationName": "XCUITest"这个参数怎么可以执行的,我的启动参数完整版配置如下,原文参考:https://sutune.me/2021/04/20/tidevice/

{
"udid": "6dd5e55bf4204cd5ad8042dc4ecb2xxxxxx",
"automationName": "XCUITest",
"deviceName": "iphone8",
"platformName": "iOS",
"platforVersion": "12.1.2",
"bundleId": "com.hxxxxx",
"webDriverAgentUrl": "http://localhost:8200",
"usePrebuiltWDA": "true",
"useXctestrunFile": "false",
"skipLogCapture": "true",
"automationName": "XCUITest"
}

阿三 #50 · 2021年04月20日 Author

是的,确实我没有配置 automationName 也可以运行成功(本人测试过),其他人也是有成功情况。我还是建议加 automationName 参数。感谢分享链接

阿三 回复

老哥,看了你之前 sjk_swiftmonkey 的帖子,问你一个问题哈,你现在还跑得起来吗,我这边运行一直不成功,bundleIdentifier 都修改了,运行起了 sjk-monkey 程序(没有任何报错),但是整个屏幕黑红两块,待测的 app 也没有启动,可以看看吗~

我在使用 tidevice 执行 3 台并行的时候,运行一段时间,会出现这样的错误:
1,[D 210425 17:06:40 _wdaproxy:91] [udid] WDA is not response, check again after 10s
2,connect to device error: UsbmuxReplyCode.ConnectionRefused
3,selenium.common.exceptions.InvalidSessionIdException: Message: Session does not exist
请问这是我安装的 webdriveragent 有问题还是别的问题,有遇到过类似情况吗
补充一个截图:

阿三 #53 · 2021年04月25日 Author
菱角 回复

我这边还是可运行测试。你问题我没有碰到。不好提供解决方案

akiha 回复

并行测试时,每台设备对应 wda 端口和 systemPort 端口要取不一样的。

阿三 回复

我已经设置为不同的端口了,刚刚尝试跑单个机器,也有一样的问题,6s 这个情况少,mini4 就经常发生

阿三 #55 · 2021年04月26日 Author
akiha 回复

把 mini4 换个设备试下。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册