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

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

开发 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 通信了。

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