移动应用测试新技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
移动应用测试 与
测试数据分析
1
编辑ppt
张文欣
移动应用性能测试的维度 常见维度的采集方法 移动应用性能测试示例 测试数据分析
2
编辑ppt
常见性能测试的维度
3
编辑ppt
启动时间
内存 CPU 流 量
如何获取这些性能数据并对其进行分析?
测试
测试人员可能会设想自己是以上用户
4
编辑ppt
启动时间的采集方法
LOG.info(method + “\t” + System.currentMilliseconds() + “\t” + cpuState )
}
}
插桩技术让测试如此容易
15 编辑ppt
以前大量的测试成本消耗在测试执行阶 段
使用新技术将测试的精力可以集中在核心 的数据分析
产品发布前后都可以利用相同的技术进行监控
如何更好地采集性能测试维度数据并进行分析?
低侵入的数据采集方式
10 编辑ppt
Βιβλιοθήκη Baidu
低侵入的数据采集方式
11 编辑ppt
低侵入的数据采集方式
12 编辑ppt
低侵入的数据采集方式
13 编辑ppt
public class Utils{ public static long getCPU(){ BufferedReader localBufferedReader = new BufferedReader (new InputStreamReader(new FileInputStream("/proc/" + pid + "/stat")), 1000);
25 编辑ppt
26 编辑ppt
l = Long.parseLong(arrayOfString[13]) + Long.parseLong (arrayOfString[14]) + Long.parseLong(arrayOfString[15]) + Long. parseLong(arrayOfString[16]); } return l; } }
5
编辑ppt
内存的采集方法
6
编辑ppt
Cpu的采集方法
7
编辑ppt
流量的采集方法
8
编辑ppt
移动应用性能测试
移动应用性能取决于客户端及服务器端
9
编辑ppt
传统的测试很难全面的测试客户端与服务端之间 的交互,通常会借助打印log日志以及fiddler等 工具
即使测出了http请求响应时间,ViewLoading 的时间,依旧很难测试bitmap解析,json解析 的时间。进而相应的数据分析,就变得更困难了。
String str = localBufferedReader.readLine(); localBufferedReader.close(); arrayOfString = str.split(" ");
if(arrayOfString!=null&&arrayOfString.length>=16) {
低侵入的数据采集方式
14 编辑ppt
public aspect CpuAspect {
pointcut getCpuState(): execution(* Activity+.*(..)) ;
before() : getCpuState() {
String method =thisJoinPoint.getSignature().toShortString(); Long cpuState = Utils.getCpu();
示一种典型的待分析加载场景 ü 点击某个按钮后的响应也是一种行为session
• 相对时间轴:
ü 某个session中某个行为点距离session起始点的时间距 离. 数字
ü 相对时间轴越长,特定的行为session就越耗时
18 编辑ppt
相同业务批量session的性能图
19 编辑ppt
利用数据发现特殊场景性能问题
20 编辑ppt
App性能与系统版本的关联度
21 编辑ppt
定位内存上涨的原因
22 编辑ppt
执行函数顺序与内存曲线关联
23 编辑ppt
App关键函数执行流程分析
24 编辑ppt
发现与定位性能瓶颈通用方法
定义业务和行为的边界标准 利用插桩技术接获性能数据 基于性能数据特征挖掘性能瓶颈 利用数据分析定位原因
性能测试执行需要消耗
ü 时间成本(投入的执行时间) ü 物料成本(机器成本) ü 技术成本(掌握特定的技术工具, httpwatch, fiddler)
用数据说话
16 编辑ppt
App内函数性能损耗排行榜
17 编辑ppt
业务场景性能分析的两个概念
• 行为Session:
ü 某个用户在某个时刻进入某个入口函数, 唯一值 ü Activity的onCreate函数就是一种行为session, 它表
测试数据分析
1
编辑ppt
张文欣
移动应用性能测试的维度 常见维度的采集方法 移动应用性能测试示例 测试数据分析
2
编辑ppt
常见性能测试的维度
3
编辑ppt
启动时间
内存 CPU 流 量
如何获取这些性能数据并对其进行分析?
测试
测试人员可能会设想自己是以上用户
4
编辑ppt
启动时间的采集方法
LOG.info(method + “\t” + System.currentMilliseconds() + “\t” + cpuState )
}
}
插桩技术让测试如此容易
15 编辑ppt
以前大量的测试成本消耗在测试执行阶 段
使用新技术将测试的精力可以集中在核心 的数据分析
产品发布前后都可以利用相同的技术进行监控
如何更好地采集性能测试维度数据并进行分析?
低侵入的数据采集方式
10 编辑ppt
Βιβλιοθήκη Baidu
低侵入的数据采集方式
11 编辑ppt
低侵入的数据采集方式
12 编辑ppt
低侵入的数据采集方式
13 编辑ppt
public class Utils{ public static long getCPU(){ BufferedReader localBufferedReader = new BufferedReader (new InputStreamReader(new FileInputStream("/proc/" + pid + "/stat")), 1000);
25 编辑ppt
26 编辑ppt
l = Long.parseLong(arrayOfString[13]) + Long.parseLong (arrayOfString[14]) + Long.parseLong(arrayOfString[15]) + Long. parseLong(arrayOfString[16]); } return l; } }
5
编辑ppt
内存的采集方法
6
编辑ppt
Cpu的采集方法
7
编辑ppt
流量的采集方法
8
编辑ppt
移动应用性能测试
移动应用性能取决于客户端及服务器端
9
编辑ppt
传统的测试很难全面的测试客户端与服务端之间 的交互,通常会借助打印log日志以及fiddler等 工具
即使测出了http请求响应时间,ViewLoading 的时间,依旧很难测试bitmap解析,json解析 的时间。进而相应的数据分析,就变得更困难了。
String str = localBufferedReader.readLine(); localBufferedReader.close(); arrayOfString = str.split(" ");
if(arrayOfString!=null&&arrayOfString.length>=16) {
低侵入的数据采集方式
14 编辑ppt
public aspect CpuAspect {
pointcut getCpuState(): execution(* Activity+.*(..)) ;
before() : getCpuState() {
String method =thisJoinPoint.getSignature().toShortString(); Long cpuState = Utils.getCpu();
示一种典型的待分析加载场景 ü 点击某个按钮后的响应也是一种行为session
• 相对时间轴:
ü 某个session中某个行为点距离session起始点的时间距 离. 数字
ü 相对时间轴越长,特定的行为session就越耗时
18 编辑ppt
相同业务批量session的性能图
19 编辑ppt
利用数据发现特殊场景性能问题
20 编辑ppt
App性能与系统版本的关联度
21 编辑ppt
定位内存上涨的原因
22 编辑ppt
执行函数顺序与内存曲线关联
23 编辑ppt
App关键函数执行流程分析
24 编辑ppt
发现与定位性能瓶颈通用方法
定义业务和行为的边界标准 利用插桩技术接获性能数据 基于性能数据特征挖掘性能瓶颈 利用数据分析定位原因
性能测试执行需要消耗
ü 时间成本(投入的执行时间) ü 物料成本(机器成本) ü 技术成本(掌握特定的技术工具, httpwatch, fiddler)
用数据说话
16 编辑ppt
App内函数性能损耗排行榜
17 编辑ppt
业务场景性能分析的两个概念
• 行为Session:
ü 某个用户在某个时刻进入某个入口函数, 唯一值 ü Activity的onCreate函数就是一种行为session, 它表