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

Ji Wei · January 31, 2018 · Last by sini replied at February 02, 2018 · 2937 hits

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

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

共收到 22 条回复 时间 点赞

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

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

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

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

gyyfifafans 回复

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

老马 回复

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

Ji Wei 回复

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

Ji Wei 回复

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

老马 回复

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

Ji Wei 回复

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

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

老马 回复

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

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

老马 回复

给个地址? 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 · February 02, 2018 Author
sini 回复

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

Ji Wei #18 · February 02, 2018 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 原生测试怎么开始弄呢?大家有没有这个方向

sini 回复

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

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up