返回顶部
首页 > 资讯 > 移动开发 >Android 应用性能测试方案一之 log 分析
  • 764
分享到

Android 应用性能测试方案一之 log 分析

性能测试方案性能测试log测试Android 2022-06-06 12:06:36 764人浏览 薄情痞子
摘要

  我主要来说下过年时候自己做的一些性能测试,由于时间紧迫,所以终选择了全部从log方面入手,从而终达到一气呵成的效果。   分别有这样几个大项:   1. Andro

  我主要来说下过年时候自己做的一些性能测试,由于时间紧迫,所以终选择了全部从log方面入手,从而终达到一气呵成的效果。   分别有这样几个大项:   1. Android应用启动消耗时间   我们分别在Activity的生命周期方法内添加Log.e(tag,message),如下效果: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e("AppStartTime","AppOnCreate"); ... } @Override protected void onResume() { super.onResume(); Log.e("AppStartTime","AppOnResume"); ... }   ,这里的tag我们使用AppStartTime,那么我们需要在应用启动之后在command内输入:   adb loGCat -v time -v threadtime *:E | grep ActivityStartTime>StartTimeFile.txt   2. cpu和内存消耗   在command中输入如下命令:   adb shell top -n 400 | grep <your package name>Cpu_MemoryFile.txt   3. GC   在command中输入如下命令:   adb logcat -v time -v threadtime *:D | grep GC>GCFile.txt   这里需要注意的是,GC分析的时候需要关注三个值。   average_GC_Freed   average_GC_per   average_GC_time   4. 网络流量   在被测应用中增加一个获取所有应用的网络流量的service,添加一个getAppTrafficList( )方法,代码如下: publicvoidgetAppTrafficList(){ PackageManagerpm=getPackageManager(); List<PackageInfo>pinfos=pm .getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES |PackageManager.GET_PERMISSioNS); for(PackageInfoinfo:pinfos){ String[]premissions=info.requestedPermissions; if(premissions!=null&&premissions.length>0){ for(Stringpremission:premissions){ if("android.permission.INTERNET".equals(premission)){ intuId=info.applicationInfo.uid; longrx=TrafficStats.getUidRxBytes(uId); longtx=TrafficStats.getUidTxBytes(uId); if(rx<0||tx<0){ continue; }else{ Log.e("网络流量",info.applicationInfo.loadLabel(pm)+FORMatter.formatFileSize(this,rx+tx) } } } } } }

  如果还要其他数据,那么全部可以按照以上的方法去获取。然后我们来看如何使用python一次性分析这些文件从而直接获取report。   首先引入第三方绘制pdf的模块:   # -*- coding: utf-8 -*-   from reportlab.graphics.shapes import *   from reportlab.graphics.charts.lineplots import LinePlot   from reportlab.graphics.charts.textlabels import Label   from reportlab.graphics import renderPDF   然后我们需要一个读文件的方法:   def FileRead(path):   data_list = []   number_list = []   number = 0   for line in open(path):   data_list.append(line)   number =number+1   number_list.append(number)   return data_list,number_list   接着我们需要一个制作pdf的方法: def MakePDF(times,list,reportname,pdfname): drawing = Drawing(500,300) lp = LinePlot() lp.x = 50 lp.y = 50 lp.height = 125 lp.width = 300 lp.data = [zip(times, list)] lp.lines[0].strokeColor = colors.blue lp.lines[1].strokeColor = colors.red lp.lines[2].strokeColor = colors.green drawing.add(lp) drawing.add(String(350,150, reportname,fontSize=14,fillColor=colors.red)) renderPDF.drawToFile(drawing,pdfname,reportname) #这里的times和list两个参数都是list,是时间和监控获取的数据一一对应的关系 这些我们都有了之后,我们来看下分析AppStartTime的方法: def analysisStartFile(list): totalcount =0 totaltime =0 time_list =[] totalcount_list = [] for i in range(len(list)): if 'AppStartTime' in list[i]: totalcount =totalcount+1 totalcount_list.append(totalcount) if float(list[i+4].split(' ')[1][-6:])-float(list[i].split(' ')[1][-6:])>0: totaltime=totaltime+float(list[i+4].split(' ')[1][-6:])-float(list[i].split(' ')[1][-6:]) time_list.append(float(list[i+4].split(' ')[1][-6:])-float(list[i].split(' ')[1][-6:])) return totalcount_list,'%.2f'%float(totaltime/totalcount),time_list   所有的分析数据的思维都是使用split()方法分隔空格之后做分析。因为读取文件之后是将所有的数据存在list中,但是当我们去用的时候由于空格在其中变得非常的麻烦,那么我们可以先使用split将空格去掉,然后使用if key in list的方法进行过滤再做分析。   后在main()方法中基本是如下的顺序执行方法:   if __name__== '__main__':   list1,list2 = FileRead(<your file path>)   print list1,list2   list_count,average_start_time,time_list = analysisStartFile(list1)   MakePDF(list_count,time_list,'average time:'+str(average_start_time)+'s',"启动性能报告.pdf")   终我们能够批量的生成如下图的报告了。

 


--结束END--

本文标题: Android 应用性能测试方案一之 log 分析

本文链接: https://lsjlt.com/news/28776.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android 应用性能测试方案一之 log 分析
      我主要来说下过年时候自己做的一些性能测试,由于时间紧迫,所以终选择了全部从log方面入手,从而终达到一气呵成的效果。   分别有这样几个大项:   1. Andro...
    99+
    2022-06-06
    性能 测试方案 性能测试 log 测试 Android
  • Android应用性能测试
      前提   所有的功能分支已完成   启动:   1. 启动入口:桌面正常启动,近运行启动,所有程序列表中启动,锁屏快捷启动   2. 其他入口:从其他程序开启应...
    99+
    2022-06-06
    性能 性能测试 测试 Android
  • Android 性能测试之TraceView的使用
      Traceview是android平台配备一个很好的性能分析的工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。   在SDK...
    99+
    2022-06-06
    性能 性能测试 测试 Android
  • Android性能优化方案分析
    本篇内容介绍了“Android性能优化方案分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、指标量化性能的指标有很多,但最重要的就是以下...
    99+
    2023-06-25
  • Golang函数性能优化之测试与分析方法
    在 go 中优化函数性能至关重要。使用性能分析工具和基准测试可以测试和分析函数:基准测试:使用 benchmark 函数比较函数实现的性能。性能分析:使用 pprof 包中的工具(如 c...
    99+
    2024-04-17
    golang 函数性能优化 垃圾回收器
  • python多线程性能测试之快速mock数据测试分析
    今天小编给大家分享一下python多线程性能测试之快速mock数据测试分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。安装...
    99+
    2023-07-02
  • Android学习笔记之应用单元测试实例分析
    本文实例讲述了Android学习笔记之应用单元测试。分享给大家供大家参考,具体如下: 第一步:在AndroidManifest.xml中加入如下两段代码: <manif...
    99+
    2022-06-06
    android学习 单元 单元测试 测试 Android
  • Java基准性能测试之JMH的示例分析
    这篇文章主要为大家展示了“Java基准性能测试之JMH的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java基准性能测试之JMH的示例分析”这篇文章吧。一、JMH vs JMeterJ...
    99+
    2023-06-20
  • Android应用开发中单元测试分析
    本文主要和大家分享如何在Android应用开发过程中如何进行单元测试,个人在做项目的过程中,觉得单元测试很有必要,以保证我们编写程序的正确性。下面我们先大概了解下单元测试,以及...
    99+
    2022-06-06
    测试分析 单元 单元测试 测试 Android
  • Vue.js应用性能优化分析+解决方案
    目录一、介绍 二、为什么我们需要 Vue JS 性能优化? 三、Vue 性能不佳背后的主要原因 1. 生成报告2. 运行命令和npm 运行生成四、如何优化 Vue js 应用程序的性...
    99+
    2024-04-02
  • Go函数性能优化:基准测试与性能分析方法
    了解 go 函数性能优化至关重要,可以通过以下方法实现:基准测试:使用 go 的 testing 包测量执行时间和资源消耗,例如基准测试字符串连接策略。性能分析:使用 runtime/p...
    99+
    2024-05-03
    性能优化 基准测试
  • 分析Flutter应用性能检测与优化
    这篇文章主要介绍“分析Flutter应用性能检测与优化”,在日常操作中,相信很多人在分析Flutter应用性能检测与优化问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”分析Fl...
    99+
    2024-04-02
  • 轻量应用服务器性能测试方法
    轻量应用服务器性能测试的方法和流程因应用场景和具体需求而异,以下是一些常用的思路和方法:性能测试的目的和要求:首先确定应用的性能需求和性能目标,明确测试的对象、测试方法、测试指标等,以便更好地定位和解决问题。测试场景和方法选择:针对不同应用...
    99+
    2023-10-25
    性能测试 服务器 方法
  • Java使用JMH进行基准性能测试分析
    本篇内容主要讲解“Java使用JMH进行基准性能测试分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java使用JMH进行基准性能测试分析”吧!一、前言在日常开发工作当中,开发人员可能有这些困...
    99+
    2023-06-25
  • 阿里云测试服务器并发性能优化与案例分析
    随着互联网技术的发展,云计算已经成为企业IT基础设施的重要组成部分。在互联网应用中,服务器的并发性能是关键性能指标之一,特别是在测试服务器环境中,服务器的并发性能直接影响到测试效率和测试结果的准确性。本文将重点介绍阿里云测试服务器的并发性能...
    99+
    2023-11-21
    阿里 案例分析 性能
  • 超强整理,性能测试-常用服务器性能指标分析总结,一篇概全...
    目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMe...
    99+
    2023-10-26
    软件测试 压力测试 性能测试 jmeter性能测试 服务器
  • PHP 跨平台应用的调试和性能分析
    对于跨平台 php 应用,xdebug 和 blackfire 提供了有效的调试和性能分析方法。通过使用 xdebug 设置断点和使用 blackfire 剖析代码,开发者可以识别问题、...
    99+
    2024-05-06
    php 性能分析 linux composer macos 跨平台应用
  • stress性能测试模拟CPU使用100%的示例分析
    这篇文章给大家分享的是有关stress性能测试模拟CPU使用100%的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。(1)安装stress解压:tar -xzvf stress-1.0.4.tar.gz....
    99+
    2023-06-25
  • c++性能测试工具之计算时间复杂度的示例分析
    小编给大家分享一下c++性能测试工具之计算时间复杂度的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!google benchmark已经为我们提供了类似的功能,而且使用相当简单。具体的解释在后面,我们先来看几个例子...
    99+
    2023-06-15
  • 轻量应用服务器性能测试方法有哪些
    轻量应用服务器性能测试方法主要有以下几种: 单元测试(Unit Test):在开发应用程序时,每个单元测试都要独立运行以发现和测试每个组件。每个组件都会在整个应用程序内部进行测试,以确保它们不会对其他组件造成干扰。这种测试可以帮助发现可...
    99+
    2023-10-26
    性能测试 服务器 方法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作