Appetizer Appetizer 报告高级分析:筛选问题,排序,合并

appetizer.io for AppetizerIO · 2017年12月28日 · 340 次阅读

Appetizer插桩后搜集数据出报告,判断问题的标准是普适的准则。为方便不同的业务团队按照自己的标准进行进一步的筛选和排序( https://testerhome.com/topics/11224 ),Appetizer支持报告导出的功能,目前支持三种导出格式,HTML(人看),CSV(用Excel处理)和JSON(用脚本进行进一步处理)。

问题筛选和优先顺序

首选,将一个报告为CSV格式,Appetizer会通过浏览器下载一个zip文件,打开后包括了三个csv文件(如图)。


每个csv文件对应一类找到的问题:crash.csv是所有的崩溃和ANR问题;perf.csv是所有主线程卡顿以及APP启动切换性能问题;http.csv是所有网络请求问题。这边以http.csv为例子,双击后excel(mac上的mac excel也可以,linux的libreoffice也可以)会自动打开,是一个表格的形式,每一行是一个问题,列是问题的字段。分别是:

  • Problem 代表是什么问题,有 "high latency"是说首包时间太长, "slow transmission"表示资源下载速度慢
  • URL就是接口请求的url,包括?后面的参数
  • Method是接口请求方法,常见的有GET 和POST
  • latency (ms) 是以毫秒为单位的首包时间
  • transmission time (ms) 是以毫秒为单位的资源下载时间
  • API type表示该请求使用的库函数,常见有okhttp, urlconnection(java.net)和apache
  • status code为响应代码,2xx表示成功, 3xx表示重定向或者缓存,4xx表示客户端问题,5xx表示服务器端问题
  • content type是返回数据类型和编码,比如application/json;charset=UTF-8表示以utf-8形式编码的json数据
  • content length是需要下载的资源大小
  • cacheable是是否可以在客户端进行缓存(通过http请求的Cache-Control字段计算所得)

详细这些字段的意思可以参考:https://testerhome.com/topics/9848

例如我们可以首先进行问题筛选,选出首包时间长的请求,选定问题字段,然后选择 "筛选Filter",如图,选择要显示的问题类型

然后可以根据首包时间进行排序,选定首保时间字段,选择“排序Sort”功能,并选择“扩展到其他列”

合并多个报告

常见的使用方法是,跑一个测试(比如登录,点播,退出等等)即出一份报告,这样每个报告里的内容就是这次测试中的问题。然后有了导出功能后可以合并多个报告找到的问题,从而描述完整的一个或者几个业务流程。
合并的方法很简单,可以将多个报告通过CSV或者JSON形式导出,然后写一个脚本进行合并。
合并csv的时候,因为csv数据非常简单,一行就是一个问题,所以直接可以将同名字文件拼接,比如 cat report1/crash.csv report2/crash.csv > all_crash.csv,记得之后要删掉重复的标题栏
如果是JSON的话所有问题是放在一个JSON数组里面的,可以写一个python脚本读入多个JSON合并后重新输出

Appetizer正在做的报告高级分析

目前报告可视化功能比较简单,没有内置的排序或者筛选功能,所以需要借由导出来二次分析,Appetizer正在完善这部分的功能,也希望大家集思广益:

  • 排序,筛选
  • 合并多个报告为一个新报告,然后可视化打开
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册