Appium 关于 Appium 效率如何提升,大家都采用什么办法。

vball · 发布于 2017年12月01日 · 最后由 darkmanno6 回复于 2017年12月06日 · 598 次阅读

UI自动化通过python和appium来完成android和iOS的覆盖。业务场景基本完成。
但是运行效率却不尽人意。平均一个场景需要3-5分钟。定位有些使用id,有些使用xpath。

目前已知问题:
1、定位有时很慢。发现在界面刷新很快时,会导致定位非常耗时。(由于app有一部分界面是实时刷新的)
2、输入文本也慢。android改为adb shell直接输入,稍微好点。
3、启动应用时慢,全部场景改为no-reset之后,稍稍好点。

总的来说,效率并不高。目前的判断是实时刷新的界面影响很大。

已经用appium达到比较好的UI自动化效果的同学,具体有哪些提高效率的做法呢。

共收到 13 条回复
200193

同问,帮顶。

200193

之前看过一个文章说该用java

Bb49a2

不要用xpath,现在的版本用xpath非常慢

F03979

同问,自动执行速度太慢该如何解决

622

多设备并行测试,然后整合测试结果到一个文档里面

249fe8

不可能很快的,appium都是通过http来实现webdriver协议,那你每一次调用api都是一次http请求,如果想稳定性以及效率高点,uiautomator会比较好,前提是如果能满足你的需求。

104

定位有时很慢。发现在界面刷新很快时,会导致定位非常耗时。(由于app有一部分界面是实时刷新的)

自己封装个宽松的find方法解决容错问题。至于定位和getPageSource慢这个的确是appium底层引擎设计的问题,可以尝试下用他们的android和ios的平台特有定位方式。

输入文本也慢。android改为adb shell直接输入,稍微好点。

这个慢还可以接受吧。毕竟输入量并不大

启动应用时慢,全部场景改为no-reset之后,稍稍好点。

设置fullReset=false noReset=true 还有一个dontStopOnReset=true,当然还得修改下不让他们重新安装无聊的settings.apk和unlock.apk

当然UI整体就是慢的,求稳定不要求快。求快需要从分布式上着手。
appium本身慢并不是慢在中间的nodejs,而是底层的uiautomator uiautomator2等几个server上,那个需要社区参与改进下。
抛砖引玉,听听更多同学的技巧。

9a71e3
vball · #8 · 2017年12月02日 作者
249fe8alexknight 回复

有考虑过直接用底层的框架。但是维护的人力成本就上来了。毕竟android和iOS的底层还是差别比较大。有点尴尬。

9a71e3
vball · #9 · 2017年12月02日 作者
622shljsh 回复

嗯,这也是一种办法。

9a71e3
vball · #10 · 2017年12月02日 作者
104seveniruby 回复

启动的部分确实有必要改下。

2113

在Appium基础之上提效?一方面 是你用例设计的合理程度优化 二是你使用的是第三方工具提效的话还是工具本身吧。
我这边现在 升级 Appium desk Android 7.0手机跑起来效率提升一倍左右(但启动特别慢)
抛开Appium 现在实现了一套在手机上自动化Agent通过接收云端指令 类似手淘的 Sword框架 效率比Appium 提升2倍左右。

6504
  • 并没有感觉多慢,主要还是看框架设计,我现在42个用例,12分钟不到就能执行完毕
  • 用例太多的话,可以多机执行
5210
6504lose 回复

这么快,你每条case应该没有复杂的业务逻辑吧?

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