性能测试评测方法

本文涉及的产品
性能测试 PTS,5000VUM额度
简介:

基础性能评测

1.制定性能基线

基于滴滴其他业务线团队已有的性能经验作为参考依据,如附录1

2.确立性能场景

根据用户行为分析高频重要场景,整体性能时间在20-30分钟,每隔场景的路径不宜过长

3.性能测试方法

使用滴滴内部自研的性能工具ET、哆啦A梦(或GT)获取性能数据

4.生成测试报告

根据操作具体场景获取到的性能数据,DMTC对测试数据进行统计和分析,与制定的基线指标结合给出测试结论或者评分,最后通过报告形式展示在Web端


App性能测试是通过测试工具获取App运行过程中的各项指标数据,然后取平均值,最大值,最小值等统计值作为结果分析。

 但基础性能评测只是从统计学的角度来评测App的性能,力度略粗,具体影响性能的问题点并没有暴露出来。

深度性能评测

1.内存泄漏分析

引入LeakCanary,结合自动化测试进行页面的跳转,同时上报泄漏信息。

2.卡顿分析

在App代码中引入BlockCanary工具,使用自动化进行页面测试,收集卡顿信息,并上报到DMTC,生成报告。


附录1 

性能测试初步检查项和标准如下:

指标 测试原则 检查项 优先级 Android测试方法 iOS测试方法 备注
流量 1. 资源无重复拉取
2. 资源合理缓存和压缩
3. 业务和流量寻求平衡
是否存在资源的重复拉取 P0 1. 使用ET关注实时流量
2.发现流量异常点,使用Charles抓包查看细节
3.H5页面使用Chrome开发者工具定位

1. 使用GT关注业务场景流量,和历史进行场景对比

2.使用Charles抓包查看细节,发现流量异常点
3.H5页面使用Chrome开发者工具定位

 
图片大小是否合适(单张Banner大图片小于100K,头像等小于10K) P0
合理缓存(包含H5页面),非首次时流量大幅降低 P0
H5页面中js/css/html代码需要进行压缩和缓存 P1
CPU CPU无长时间占用,正常回落 手机灭屏1min后,CPU占用低于2% P0 1.使用ET关注实时CPU占用
2.发现CPU异常点,使用DDMS工具Threads,TraceView定位
3.后台CPU可以使用命令top -d 1 |grep psnger进行监测

1.使用GT关注实时CPU占用,和历史进行场景对比

2.当发现CPU异常时,可以使用Instruments中的Time Profiler进行耗时方法定位

滴滴有部分场景确实有CPU持续占用,如订单进行中时实时上报位置,当有异议时需和开发确认是否必须如此
应用置于后台1min后,CPU占用低于2% P0
手机前台运行,CPU占用是否超20%占用持续10s P1
手机前台运行,CPU占用是否瞬时超过50% P1
内存 1.无内存泄漏
2.无内存陡增
主功能页面反复进出,内存无泄漏 P0 1.使用ET关注实时PSS内存使用
2.发现疑似性能点后,使用DDMS 抓取hprof文件,使用Mat工具分析
3.可以借助dumpsys meminfo packagename查看内存具体分布

1.使用GT关注实时内存使用,和历史版本数据进行场景对比;

2.使用appconsole,Leaks,Allocation等工具检查和定位内存泄漏;

滴滴Android debug包上有LeakCanary组件可以直接监测内存泄漏,需要遍历主要页面。
进入新页面,内存增量小于20M P1
电量 1.减少无端电量消耗 灭屏静置一会,后台无线程持续运行 P1 1.使用CPU监测方法监测线程活动
2.使用Android5.0 工具 Battery-Historian分析灭屏电量
1.使用GT+系统耗电量排行的方式测试耗电量,和历史版本进行对比; 数据需要和历史对比,和竞品对比
版本间电量无比较大增长(需建立基线数据),如大于20% P0
流畅度 1.页面滑动流畅
2.操作无明显卡顿
1.在主要列表页滑动,监测FPS或者SM大于45 P0 1.使用ET进行流畅度监测,发现疑似点后使用TraceView或SysTrace进行定位
2.4.2及以上系统开发者模式-调试GPU过度绘制打开,查看过渡绘制情况

1.使用GT进行流畅度监测;
2.使用appconsole检查卡顿;

3.使用Core Animation进行FPS测试

4.当发现卡顿时使用Time Profiler定位

 
2.查看页面过渡绘制,无大片红色区域 P0
加载时间 1.页面打开流畅,无白屏或长时间转圈等待 应用冷启动时长小于3s P0 1.使用ET工具或使用命令 logcat -b event | grep am_activity_launch_time实时监测加载时间
2.发现时间较长的页面,使用TraceView工具定位
录屏或者掐表方式进行  
应用热启动时长小于1s P0
首次进入Native页面时长小于1000ms(Wifi) P0
首次进入H5页面时长小于2000ms(Wifi) P1

 


相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
22天前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
40 4
|
2月前
|
测试技术 API 项目管理
API测试方法
【10月更文挑战第18天】API测试方法
63 1
|
2月前
|
安全 测试技术
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【10月更文挑战第1天】北京大学李戈教授团队提出了一种名为“统一生成测试”的创新方法,有效提升了大模型如GPT-2和GPT-3在单一测试中的代码生成覆盖率,分别从56%提升至72%和从61%提升至78%。这种方法结合了模糊测试、变异测试和生成对抗网络等多种技术,克服了传统测试方法的局限性,在大模型测试领域实现了重要突破,有助于提高系统的可靠性和安全性。然而,该方法的实现复杂度较高且实际应用效果仍需进一步验证。论文可从此链接下载:【https://drive.weixin.qq.com/s?k=ACAAewd0AA48Z2kXrJ】
78 1
|
2月前
|
测试技术 UED
软件测试中的“灰盒”方法:一种平衡透明度与效率的策略
在软件开发的复杂世界中,确保产品质量和用户体验至关重要。本文将探讨一种被称为“灰盒测试”的方法,它结合了白盒和黑盒测试的优点,旨在提高测试效率同时保持一定程度的透明度。我们将通过具体案例分析,展示灰盒测试如何在实际工作中发挥作用,并讨论其对现代软件开发流程的影响。
|
3月前
|
人工智能 测试技术 开发者
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【9月更文挑战第27天】北京大学李戈团队在人工智能领域取得重要突破,提出HITS新方法,通过将待测方法分解为多个切片并利用大型语言模型逐个生成测试用例,显著提升代码测试覆盖率,尤其在处理复杂方法时效果显著,为软件开发和测试领域带来新希望。尽管存在一定局限性,HITS仍展示了巨大潜力,未来有望克服限制,推动软件测试领域的创新发展。论文详情见【https://www.arxiv.org/pdf/2408.11324】。
137 6
|
1月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
36 6
|
1月前
|
JavaScript 安全 编译器
TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法
本文深入探讨了 TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法,并通过实际案例展示了其在项目中的应用效果,旨在提升代码质量和开发效率。
43 6
|
1月前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
227 2
|
2月前
|
测试技术 Python
自动化测试项目学习笔记(三):Unittest加载测试用例的四种方法
本文介绍了使用Python的unittest框架来加载测试用例的四种方法,包括通过测试用例类、模块、路径和逐条加载测试用例。
100 0
自动化测试项目学习笔记(三):Unittest加载测试用例的四种方法
|
2月前
|
测试技术 Python
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
本文主要介绍了自动化测试中setup、teardown、断言方法的使用,以及unittest框架中setUp、tearDown、setUpClass和tearDownClass的区别和应用。
87 0
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法

热门文章

最新文章