全面收集APP运行中的各项数据


Appetizer 通过DEX插桩的方法,全自动地向APP内多处插入代码,在程序运行的过程中,监控异常和闪退、搜集主线程卡顿与耗时操作、HTTP/HTTPS请求和响应、CPU和Java堆内存消耗等。

采集代码经过调优,对APP运行性能影响小于1%。 收集的运行数据存储在设备的本地,完成测试后上传到Appetizer服务端进行分析,产生详细的问题报告、各项指标等。

各项数据可以以多种格式导出,JSON, CSV, HTML,支持不同定制化数据分析以及集成服务。


重要指标面板

报告重要指标面板以四个方面总览APP执行过程中的问题。界面覆盖率展示在本次测试过程中所涵盖的APP界面数量,详细覆盖情况中给出了未覆盖到的界面的类名。测试时间方面评估测试前后台停留情况已经使用的时间。在网络请求方面,指标面板会计算出所有网络请求总计消耗的流量,同时会展示网络请求的性能指标,包括平均首包时间还有下载速度等。最后,面板会给出Appetizer分析得到的所有APP错误以及问题的统计数据


丰富的技术细节

Appetizer展示的问题都包含详细的技术细节,例如针对每一个网络请求,会搜集并展示URL, 首包时间和下载时间,使用的网络API类型,HTTP方法,完整的响应数据以及请求数据等等。这些数据完整呈现了APP测试过程中的情况,提高调试效率,同时数据可以导出做二次过滤以及分析。在程序错误或者严重性能问题上的报告中会包括线程的堆栈,用于快速定位源代码中有问题的函数。

深入理解APP执行过程


Appetizer不但收集数据,而且通过多个角度展示APP执行过程中的动态。APP运行中多个维度的数据将清晰地呈现在时间轴上,同时程序错误以及问题会高亮显示,帮助开发人员理解问题发生时刻的上下文中。

Appetizer不仅支持插桩的方式收集数据,而且提供了可以接入APP源代码的Cauldron SDK,用来收集定制化的APP数据,例如业务逻辑的打点数据、APP的专项性能指标、测试环境相关数据等等。


自动业务建模

Appetizer会自动从APP执行数据中建立业务切换的模型,帮助开发人员图形化地理解业务间的联系以及测试未覆盖到的业务。


Data Analytics

Appetizer导出数据可以直接与专业的数据分析引擎对接,通过这些分析工具交互式地探索程序深度的问题。例如这里展示了数据导入 ELK (ElasticSearch-Logstash-Kibana) 引擎后交互式地调试网络请求性能,借由ELK强大的筛选、聚合以及图表功能,可以对Appetizer的数据快捷地进行更细致的分析。

批量化控制 自动化测试


控制多个设备批量执行命令不再是难事。让重复的操作批量化,例如安装/卸载应用,运行Shell命令,启动/关闭应用,截屏,模拟输入等。

Appetizer通过Replaykit支持对设备屏幕操作(基于坐标)的录制。可以一台设备录制,重放到多台设备,同纵宽比的设备能够自动适配,进一步对重复的APP操作进行自动化。 屏幕坐标的操作不但能支持APP,还可以支持手游这类没有控件的APP(见 手游操作自动化),而且支持复杂的多点手势,精确度高,完美还原操作(见 音乐游戏的高精度重放)。 Appetizer还支持实时控制,实时用一台设备的屏幕输入镜像到多台设备(要求同纵宽比),达到实时一拖多的效果(见 完美1拖4同步操作,多点触摸)。


ADB命令批量化

连接多个设备,用Appetizer 的命令行工具同时在多机器上执行adb命令,批量化,更有效。

屏幕操作录制重放

从一个设备上录制屏幕操作,重放到多个设备。可以用来测试APP的业务流程,辅助UI自动话完成需要特殊手势、多点触摸手势的情况。同时屏幕操作可以跨APP和系统,可以用来自动调整系统设置,补全传统UI自动化不能触及的短板。Replaykit也可以通过Python来调用,更大程度地提高可接入性。


组织测试步骤

将多个测试步骤方便地组织起来,自动化重放、截屏、等待等等操作,让测试流程整齐可控,能在多种机型上可控执行。

活动与社区


联系我们



QQ: 467889502