Appium 关于 appium 自动化测试稳定性问题的讨论

Ji Wei · 2018年01月31日 · 最后由 sini 回复于 2018年02月02日 · 2984 次阅读

最近搭建了基于 Appium 的自动化测试架构,Appium + Testng。但是运行起来并没有想象中稳定,因为测试的 app 是视频类,测试点如:搜索、播放、节目预约、节目收藏和回看等功能,测试 10 多个用例用时 20 分钟而且有些用例还测试失败。同样的用例跑几遍测试结果都不一样,比如下面截图的结果

用例有时跑失败有时成功。主要原因是 app 性能也不稳定,同样受网络环境的影响。
不知道大神们有什么办法提高 Appium 自动化测试用例的稳定性,特别时处理一些 ANR和CRASH事件是怎么做的。欢迎大家交流意见。

共收到 22 条回复 时间 点赞
sini 回复

https://github.com/openatx/uiautomator2 是基于 google 的 uiautomator 的 python client API 实现
https://github.com/NetEaseGame/ATX 是基于图像识别的

最近也在苦恼这个问题……上面一门心思想全覆盖,然而跑 10 遍 10 个结果…干不下去了。

https://testerhome.com/topics/11719 稳定性测得话可以试试我这个工具

Ji Wei 回复

不需要源码 , 只需要 android 的 apk 包,另一个条件是,混淆的 apk 可以。那种加固的好像要去掉加固的 apk 可以插住。

gyyfifafans 回复

兄弟继续搞啊,这个工具估计你还没摸透,所以看到的效果很表面。还有很大的改进空间

老马 回复

appetizer 用这个是用到插桩,需要源码。可拿不到公司app的源码
不过可以研究下,自己写个app实验一下

Ji Wei 回复

兄弟求指教啊,加个好友带带我啊

老马 回复

appetizer 东西很好,但我司不让用。说实话即使混淆了也容易被逆向,所以我司 app 发布必加固。如果 appetizer 能私有部署那真是极好了

Ji Wei 回复

这个报告其实也很容易。python 调起工具 然后数据分析处理下 crash-dump.log 就可以出结果了

我分析结论是,它的安全性应该还是有保障的。它只是分析放在了自己的服务器上,但你上传的就是手机里 appetizer 下的一个 Log 文件,这个 Log 被记录的内容,你可以看下,没什么的。另外,基于 python 都是开源的还,源码都给你了,还不放心就仔细调试源码看有什么猫腻操作。

老马 回复

“它只是分析放在了自己的服务器上,但你上传的就是手机里 appetizer 下的一个 Log 文件”
😂 dex 插桩被你完全无视了

给你建议参考,ui 有特定业务操作流程类的,可以用 appium 来搞,但只能覆盖一定比例的前端操作流程。主要目的是做发版主要流程覆盖。拿这套来捕获 anr 或 crash 可以用其他的开源。社区里就有 appetizer。

老马 回复

给个地址? appetizer dex 插桩这块要是开源了 等于私有化可部署

被召唤到此地, @Xiaoman007 Appetizer 用于在测试过程中搜集 ANR crash, 卡顿,接口响应等,不需要源码,运行插桩后的 apk 自带搜集功能,可混淆不可加固。相关链接已被 testerhome 识别出来放在相关话题里面了。你的问题应该不是要让” Appium 测试跑过 “,而是” 如果跑不过,告诉我是不是发生了闪退或者卡顿了所以测试挂了 “,我相信 Appetizer 能帮忙~

@zhangzhao_lenovo 插入 dex 的部分暂未开源,但我们也推荐有兴趣的可以反编译 插桩包,所有 appetizer 相关内容在 io.appetizer.* 下面,你要有兴趣我可以发一个单独的 dex 文件让你研究~简易版本的原理:https://testerhome.com/topics/11405 之前有一个用户碰到一个我们的 bug,然后反编译帮我们指出了,然后我们修掉了😂

私有化部署在征集中:https://appetizer.typeform.com/to/HBrLxl

LZ 的情况相信大家都有遇到,还有的是根本就不是应用的 crash 而是框架的问题导致的应用退出,这个整半天心焦虑。
还有就是 appium 普遍比其他框架要运作慢,今年打算研究一下其他框架做个对比

Ji Wei #17 · 2018年02月02日 Author
sini 回复

运行慢是因为多了中间件,这是硬伤。之前用的 robotium 测试浏览器就比较快
还有那些架构比较好用推荐下

Ji Wei #18 · 2018年02月02日 Author

同样在我们公司估计也不让用,担心 app 源代码泄露。领导推荐使用那种开源的而且使用人数比较多的框架
之前用个代码扫描工具都不让用。感觉用别人的框架还是开源比较好,最好服务端也自己部署,不用再经过第三方

sini 回复

atx 的 uiautomator2 同样功能 比如我之前做的 android toast 同样的功能 同样的被测 app 同样的手机。
比较下来, atx 的 u2 连接到启动 app 这块 明显比用 appium 的 u2 快,感官上就明显感到 atx 的 u2 连接秒连,而 appium server 你就看吧 日志滚啊滚啊 adb 操作啊 安装 io-appium-server 操作啊 检查这个操作啊一顿下来,10 几 20 秒过去了。。。。

老马 回复

atx?这个是什么?

目前由于 ios 系统的更新,uiautomator2 不能用了

请问 xcuitest 原生测试怎么开始弄呢?大家有没有这个方向

😁 😅 插桩的源码工程 也是开源的啊 这个我没仔细调试过,难度太大了。。。。也没时间仔细看。

/sdcard/crash-dump.log 这个是主要存放日志目录吧,有没有自动筛选和记录错误日志什么的尼,类似于测试报告的而形式
如下模板

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