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

Ji Wei · January 31, 2018 · Last by sini replied at February 02, 2018 · 4361 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 作者
sini 回复

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

Ji Wei #18 · February 02, 2018 作者

同样在我们公司估计也不让用,担心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