STF [记录] STF+Appium 自动化 WDA 端口报错,解决方法!

阿三 · 2020年10月21日 · 最后由 sdhaiyan0808 回复于 2020年10月23日 · 10004 次阅读

开发 STF+iOS 大佬提供 2 个方案

第一种:

修改 wda 的 product name 和监听端口号 (默认是 8100),这样会在手机上安装两个 wda
修改没生效就编译后再运行
具体步骤截图

第二种:

使用 appium 的 webdriveragenturl 参数,让 appium 使用 stf 启动的 wda

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

第一种方法看着就难受,我是用第二种方法来的

有些时间没关注了,STF 已经支持 iOS 了吗

对 cool 回复

根据个人选择,能用即可

对 雪怪 回复

是的

对 cool 回复

你好,请问 webdriveragenturl 参数怎么用啊?我启动 appium 的时候加了--webdriveragenturl,提示参数未被识别呢?

你好,我用第一种方法,每次运行用例时,appium 一启动自带的 wda,stf 中的 sda 就被中断了:** TEST EXECUTE INTERRUPTED **,请问这个怎么解决呢?是启动 appium 时需要设置啥参数吗?我启动 appium 用了--session-override --noReset,有问题吗?判答复,谢谢

对 sdhaiyan0808 回复

取设备启动对应的 wda-port 端口,放到脚本的 desired_capabilities 里面
{
"wdaLocalPort": "6103",
"webDriverAgentUrl": "http://localhost:6103"
}

对 cool 回复

你好,请问你用的 appium 什么版本?我用的 1.15.3.wda 是从 GitHub 下的最新的吗?我这边用 webDriverAgentUrl 跑的时候会报错呢,提示 enqueue failure,用例跑不了,一停掉 stf 工程就开始跑了,怀疑有冲突。

对 sdhaiyan0808 回复

不过,我手动先只启动 stf 中的 wda,再启动 appium,再跑用例是没问题的,用 stf 工程跑就不行了呢。求教,多谢!

对 cool 回复

刚开始用的第一种方法,每次运行用例时,appium 一启动自带的 wda,stf 中的 sda 就被中断了:** TEST EXECUTE INTERRUPTED **,我启动 appium 用了参数--session-override --noReset,也没找到啥问题,现在两种方法都失败了😭

对 sdhaiyan0808 回复

appium 1.18.3,把 appium 自带的 wda 替换成 stf 的 wda 试下呢,目录/usr/local/lib/node_modules/appium/node_modules/appium-webdriveragent

对 cool 回复

我刚开始用 appium1.18.0 不行,用命令启动报错,启动不了。把 appium 自带的 wda 替换成 stf 的 wda,没成功,报错了,貌似版本不兼容。

node 版本是不兼容,stf 需要 node 8.9,appium 在 node 8.9 上无法运行;
用 n 模块安装多版本 node,默认切换到 8.9 版本,启动 appium 时指定 12.19.0 版本,n use 12.19.0;
具体命令长这样
/usr/local/bin/n use 12.19.0 /usr/local/bin/appium -a 0.0.0.0 -p 4623 -U 00008030-001655390C44802E --session-override
n 模块使用链接:https://www.cnblogs.com/xfcao/p/13062423.html

对 cool 回复

好的,感谢耐心回答🙏 我的问题应该是 stf 的问题,因为手工验证是没问题的(手动先只启动 stf 中的 wda,再启动 appium,再跑用例是没问题的)。我得排查下到底是啥导致的排队超时,wda 不能与 appium 通信了。

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