建议自己实践一下,同一个用例用 appium 和 uiautomator 各写一个,比较下执行时间。也欢迎分享你的实践结果~
以前有大致看过一下,appium 作为网络中转增加的耗时单次来说其实并不是很多(可以在日志里打开时间戳,比较下收到请求->手机端执行、执行完毕->返回请求 两个流程的时间差,印象中应该在几十毫秒内吧)。整体耗时多和 webdriver 本身 api 设计有关,和服务端的交互频繁度比较高。例如 driver.find_element_by_id('username').click()
,需要两次和 appium 的网络通讯(第一次找元素,把元素存手机端缓存;第二次从缓存获取元素对象,再调用对象的点击事件)。
warning 还是 error ?warning 的话可以暂时不用理会,应该不会影响你的安装。真要解决的话可以看下 https://github.com/eslint/eslint/issues/5833
延迟是怎么延迟法,说清楚些?
并行的话,你的脚本有做多线程并行吗?
我觉得你帖子看得不够。。。如果确实都有看过,那么问题描述至少会说明你怎么启动的 appium server ,启动参数怎么设置的,不同设备在用例里是怎么初始化和控制的。
不用 n 个目录吧,一个 webdriveragent 目录运行多个 xcodebuild 就好了
确实是个 bug 。
看了下实现,是因为这个地方直接使用的是回复内容的 html 值。回复内容里关于楼层的用的都是锚点(类似于 <a href="#reply2">#2</a>
),即把当前页面上下滚动条位置直接移动到带有这个 id 的元素位置中。这种方式在帖子正文页没有问题(每个楼层本身就是带有这个 id 的元素),但在通知页会有问题(没有这些楼层显示,所以移动不到那个元素那里)。
修改方法能想到几种:
后两种比较可行,明天具体看看哪种改起来比较方便。
具体分工目前有了吗?
我觉得这个技能点应该比不少人好了。你是觉得现在缺少了后端相关的技能点,还是什么?
纯 Android ,做得足够深入应该也问题不大吧。
info: [debug] The following desired capabilities were provided, but not recogniz
ed by appium. They will be passed on to any other services running on this serve
r. : devicereadyTimeout
你把这个日志翻译成中文看看?已经说得很明白了。
#12 楼 @xushizhao 赞,后面问下你那边效果如何
#4 楼 @codeskyblue 更正下,7 天这个数字我不是十分确定,只是印象中大致是这个数字。因为以前公司有做应用市场这块,所以有了解到。
不用选 Launch AVD,AVD 是 android 官方模拟器。
报错说的是你选了 Launch AVD(添加了 --avd 参数),但它的值不是有效值(一个空字符串)。
不要用 xpath 不行嘛。。。xpath 原理上决定了很难兼容。因为 iOS 10 上 WebDriverAgent 识别元素的方式和 iOS 10 以下的 UIAutomation 区别很大,包括元素标签名这些都有差别。
#38 楼 @Zhumeng223 没日志,没脚本代码,也没有你 app 具体加了什么 accessibilityId ,要帮你找到原因太难了。。。
最终结论是 usb hub 芯片和 linux 上的 adb server 有兼容性问题。
实验方法:
在 mac 和 windows 上,手机未出现掉线,adb devices 和 lsusb 输出都正常
在 ubuntu 上,手机掉线超过 3 次,每次掉线持续约 5-10s(通过 adb devices 脚本日志看出),但每次掉线时 lsusb 设备列表没有变化。
最终只能说这个 hub 和 linux 上的 adb server 有兼容性问题了。。。