最近搭建了基于 Appium 的自动化测试架构,Appium + Testng。但是运行起来并没有想象中稳定,因为测试的 app 是视频类,测试点如:搜索、播放、节目预约、节目收藏和回看等功能,测试 10 多个用例用时 20 分钟而且有些用例还测试失败。同样的用例跑几遍测试结果都不一样,比如下面截图的结果
用例有时跑失败有时成功。主要原因是 app 性能也不稳定,同样受网络环境的影响。
不知道大神们有什么办法提高 Appium 自动化测试用例的稳定性,特别时处理一些 ANR和CRASH事件是怎么做的。欢迎大家交流意见。
给你建议参考,ui 有特定业务操作流程类的,可以用 appium 来搞,但只能覆盖一定比例的前端操作流程。主要目的是做发版主要流程覆盖。拿这套来捕获 anr 或 crash 可以用其他的开源。社区里就有 appetizer。
https://testerhome.com/topics/11719 稳定性测得话可以试试我这个工具
最近也在苦恼这个问题……上面一门心思想全覆盖,然而跑 10 遍 10 个结果…干不下去了。
/sdcard/crash-dump.log 这个是主要存放日志目录吧,有没有自动筛选和记录错误日志什么的尼,类似于测试报告的而形式
如下模板
不需要源码 , 只需要 android 的 apk 包,另一个条件是,混淆的 apk 可以。那种加固的好像要去掉加固的 apk 可以插住。
appetizer 东西很好,但我司不让用。说实话即使混淆了也容易被逆向,所以我司 app 发布必加固。如果 appetizer 能私有部署那真是极好了
这个报告其实也很容易。python 调起工具 然后数据分析处理下 crash-dump.log 就可以出结果了
我分析结论是,它的安全性应该还是有保障的。它只是分析放在了自己的服务器上,但你上传的就是手机里 appetizer 下的一个 Log 文件,这个 Log 被记录的内容,你可以看下,没什么的。另外,基于 python 都是开源的还,源码都给你了,还不放心就仔细调试源码看有什么猫腻操作。
“它只是分析放在了自己的服务器上,但你上传的就是手机里 appetizer 下的一个 Log 文件”
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 普遍比其他框架要运作慢,今年打算研究一下其他框架做个对比
同样在我们公司估计也不让用,担心 app 源代码泄露。领导推荐使用那种开源的而且使用人数比较多的框架
之前用个代码扫描工具都不让用。感觉用别人的框架还是开源比较好,最好服务端也自己部署,不用再经过第三方
atx 的 uiautomator2 同样功能 比如我之前做的 android toast 同样的功能 同样的被测 app 同样的手机。
比较下来, atx 的 u2 连接到启动 app 这块 明显比用 appium 的 u2 快,感官上就明显感到 atx 的 u2 连接秒连,而 appium server 你就看吧 日志滚啊滚啊 adb 操作啊 安装 io-appium-server 操作啊 检查这个操作啊一顿下来,10 几 20 秒过去了。。。。
atx?这个是什么?
目前由于 ios 系统的更新,uiautomator2 不能用了
请问 xcuitest 原生测试怎么开始弄呢?大家有没有这个方向
https://github.com/openatx/uiautomator2 是基于 google 的 uiautomator 的 python client API 实现
https://github.com/NetEaseGame/ATX 是基于图像识别的