性能检测自动化(含内存泄露检测)

一、平台侧实现方案
        1、UI case重复执行N次:进入页面,sleep 5s,记录start_time,sleep 30s,记录end_time,性能采集工具全程采集性能数据
        2、根据采集到的性能数据,按照N次卡点性能数据:去掉最大的10%、最小的10%,求取平均值,作为单次性能数据结果f(n)


二、内存泄露

        1、安卓端实现:内存泄露检测分为Java内存泄露检测、native内存泄露检测,Java内存泄露输出位标准hprof文件(一种二进制文件),native泄露输出包含泄露的大小和泄露的堆栈。用例执行后直接通过adb上传dump到的Java hprof至自动化结果中,而native泄露(start的时候替换掉所有的动态内存分配函数-malloc和new;记录malloc和new返回的指针、并存在数据集里,然后free delete的时候,把数据集匹配到的指针删除;stop的时候数据集中剩下的就是疑似泄漏点了)则直接上报至监控平台  

        2、ios端实现:开始记录内存---运行业务case----结束内存记录---堆栈内存地址偏移量埋点上报---存到kafka中---监控平台消费kafka消息---根据版本号符号化后的消息(翻译消息的内存地址,得到代码堆栈)----存到数据库中,查询数据库展示于前端页面

        
        3、平台侧内存泄露检测实现:

                f(n) > f(n-1)

                (f(n)-f(1))/(n-1)>阈值,判断为内存泄露

        4、hprof文件分析&#

你可能感兴趣的:(自动化,react,native)