Emmagee app性能测试工具使用教程

by:授客 QQ1033553122

简介

Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化,且用户可自定义配置监控的频率以及性能的实时显示,并最终生成一份性能统计文件。

实现原理

1、监控应用CPU原理

Android系统是基于Linux内核的,所以系统文件的结构和Linux下一样,系统总体CPU使用信息放在/proc/stat文件下,/proc/cpuinfo文件存放CPU的其它信息,包括CPU名称,直接读取即可。Emmagee是将选中应用的PID传入,读取/proc/PID/stat文件信息及可获取该PID对应程序的CPU信息。

2、监控应用消耗流量

系统中有存放整体流量和针对当程序的流量统计,/proc/net/dev和/proc/uid_stat/UID下存放tcp_rcv和tcp_send文件,分别存放下行流量和上行流量,操作前后相减就得出结果 。

3、监控内存实现原理

获取到当被测应用的PID,然后按照PID调用android的API获取当前被测应用占用的内存。/proc/meminfo文件记录了系统内存信息。

Emmagee-2.2.apk为例

1、  下载Emmagee.apk安装包

下载地址:https://github.com/NetEase/Emmagee/releases

2、  安装Emmagee.apk

3、  打开Emmagee


4、 

点击左上角的设置按钮,可进行采集频率,邮件发送等相关设置


5、 

返回步骤3中,点选要测试的应用,然后点击“开始测试”


6、 

对app进行相关操作,完成后返回到Emmagee界面,点击

停止测试

停止测试后,Emmagee会自动生成.csv测试结果文件。


7、 

把文件导出来,分析数据和统计


8、 

难点在哪里?

工具使用似乎不难,那难点在哪里?

个人觉得难在场景设计。笔者实践也不多,这里就简单说说设计思路吧。

前提条件:保证测试环境的干净

第一种类型:测试app中某个相对独立的功能

这种一般就是保证其它条件不变,重复操作这个单一功能,然后分析数据。

例子1:app首次启动的相关性能状态

场景描述:点击app,启动app直到出现app主页面。

测试操作:

1.打开Emmagee

2.选择app,点击“开始测试”,出现主页面后,点击“停止测试”

3.用手机清理软件,清理“被测app”。

4.重复步骤2

数据分析:

一般情况下,2.2版本的Emmagee会自动为我们生成CPU,内存,流量,电量,电流数据,但是启动耗时就不一定了,实践中发现启动耗时经常是获取不到的,但是做性能测试,很关心的一点就是响应时间,不能获取咋办?笔者是这么做的,设置采集频率的时间为最小值,比如1s,这样Emmagee就可以根据测试报告中,“时间”一栏大致统计出这个功能的耗时情况。

这些数据都有了,那么就可以根据多次的测试数据,求出各类数据的“均值”,“峰值”

例子2:app二次启动的相关性能状态

场景描述:点击app,启动app直到出现app主页面,退出app

测试操作:

1.打开Emmagee

2.选择app,点击“开始测试”,出现主页面后,退出app,点击“停止测试”

3.重复步骤2

注:和例子一不一样的地方在于,是否在前一次操作的基础上进行操作,即“测试起点”不一样。幸运的是,Emmagee是有这种“记忆”功能的。

数据分析:

参考例子1

第二种:测试某个流程,目的在于找出性能“瓶颈”

针对某个业务流,做一个完整的业务过程的操作

这里重点要说的数据分析具体咋做。个人的想法是这样的:根据测试生成的.csv文件,绘制相关数据的曲线图,查看曲线变化--平稳?起伏不定?还是“峰回路转”?如果不是很平稳,则说明性能上可能存在瓶颈,需要进一步分析是那个操作步骤中出现的。

关于咋看步骤,测试结果中,有一栏“栈顶Activity名称”可以看到大致的操作(如果看不懂咋办?测试前先操作看看,对比着看吧)

Emmagee app性能测试工具使用教程的更多相关文章

  1. 【转】Emmagee app性能测试工具使用教程

    简介 Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化,且用户可自定义配置监控 ...

  2. APP性能测试工具GT的使用总结:app内存测试

    APP性能测试工具GT的使用总结:app内存测试 GT(随身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE, Integrated Debug Environment). ...

  3. APP性能测试工具-GT(随身调)

    GT(随身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE, Integrated Debug Environment).利用GT,仅凭一部手机,无需连接电脑,您即可对AP ...

  4. App性能测试工具使用说明-MobilePerformance

    一. 环境搭建 安装Android SDK 1.6或者1.7版本均可,建议1.7,环境变量的配置,Java SDK的安装很简单,不赘述了. 安装SDK 1.安装Android SDK: 2.安装完毕后 ...

  5. APP性能测试工具

    各种自动化工具作用: 自动化:appium 针对接口做压测:jmeter 执行一段脚本,随机乱点:monkey 如果有用loadrunner12的话 也可以用mobilerecoder录制脚本(lr1 ...

  6. Emmagee——开源Android性能测试工具

    工具:Emmagee作者:孔庆云 网易(杭州)质量保证部 开源地址:https://github.com/NetEase/Emmagee Wiki:https://github.com/NetEase ...

  7. Emmagee—开源Android性能测试工具

    下载:https://github.com/NetEase/Emmagee/releases/download/V2.5/Emmagee.apk 1.Emmagee——Android性能测试工具 Em ...

  8. App测试工具大全,收藏这篇就够了

    随着移动互联网的高速发展,App 应用非常火,测试工程师也会接触到各种 app 应用.除了人工测试之外,也可以通过一些测试工具来提高我们的测试效率,以下对于我用过或听过的 app 测试工具做了一个统一 ...

  9. Android性能测试工具(一)之Emmagee

    Android性能测试工具(一) 之Emmagee Emmagee是监控指定被测应用在使用过程中占用机器的CPU.内存.流量资源的性能测试小工具. 支持SDK:Android2.2以及以上版本 Emm ...

随机推荐

  1. ASP.NET 上传大文件(原创)

    问题描述 需要在网站中上传文件,但是当文件大小太大的时候IIS会拒绝连接,导致用户看到不友好的错误界面. 解决方法 1.服务器端处理 在globle.asax中的protected void Appl ...

  2. Docker 之web api 访问 host sql server

    运行 Docker C:\Users\Administrator>docker run -it  -p 5000:5000 --name myapidocker1 webapiv1 root@3 ...

  3. 【原创】实现一个简单的邮件服务API

    经常在公司写一些内部小程序需要用到发邮件的功能,于是决定写一个邮件服务. 实现思路:以URL形式提供一个RESTful API 给客户端,客户端通过post请求把json格式的邮件信息发送到服务端,服 ...

  4. python获取动态网站上面的动态加载的数据(初级)

    我们在处理一些网站数据的时候,有时候我们需要的数据很多都是动态加载的,而不都是静态的,以下以一个实例来介绍简单的获取动态数据,首先申明本人小白,还在学习python中,这个方法还是比较笨拙的,但是对于 ...

  5. JAVA+SELENIUM+MAVEN+TESTNG框架(二)新建项目

    1.新建maven项目 2.下载selenium的jar包,放入maven依赖库中 3.新增testng依赖库,build path->add libirary->testng 4.查看自 ...

  6. Java总结:开发环境

    更多请查看在线文集:http://android.52fhy.com/java/index.html Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言 ...

  7. 音频播放封装(pcm格式,Windows平台 c++)

    介绍 pcm格式是音频非压缩格式.如果要对音频文件播放,需要先转换为pcm格式. windows提供了多套函数用于播放,本文介绍Waveform Audio Functions系列函数. 原始的播放函 ...

  8. springboot-28-security(一)用户角色控制

    spring security 使用众多的拦截器实现权限控制的, 其核心有2个重要的概念: 认证(Authentication) 和授权 (Authorization)), 认证就是确认用户可以访问当 ...

  9. Redis开发与运维

    常用命令 redis-server启动redis redis-server /opt/redis/redis.conf    配置启动 redis-server --port 6379 --dir / ...

  10. mongodb之oplog

    1.查看master上当前的oplog状态: >rs.printReplicationInfo() configured oplog size: 5000MBlog length start t ...