软件测试

安卓App测试简析及工具Emmagee介绍

2019-06-03  本文已影响0人  宜信技术学院

一、安卓系统知识概述

1.1 安卓系统架构

1.2 安卓权限系统

Android操作系统其实是一个多用户的linux操作系统,每个android应用使用不同的用户,运行在自己的安全沙盘里。系统为所有的文件设置权限,这样一来只有同一个用户的应用可以访问它们。每个应用都有自己单独的虚拟机,这样应用的代码在运行时是隔离的,即一个应用的代码不能随意访问或者意外修改其他应用的内部数据。

1.3 安卓调试桥

ADB,即Android Debug Bridge,他是Android提供的一个通用的调试工具,借助这个工具,我们可以很好的调试开发的程序,adb.exe在安装的Android的sdk开发包platform-tools目录下。

它是一个客户端/服务器架构的命令行工具,主要由以下3个部分组成:

1.4 系统监控ADB命令

1.4.1 查看应用启动耗时

adb-s   *******设备id******    shell  am start -W -n 应用名.app/ .MainActivity

1.4.2 获得电池电量和电池温度

adb shell dumpsys battery

1.4.3 获得最耗资源的应用

adb -s ***设备id *** shell top -m 6 -n l -s cpu

1.4.4 获得内存使用情况

adb -s  ***设备***id  adb shell dumpsys meminfo 应用程序包名

1.4.5 获取指定程序cpu使用情况

adb -s  ***设备***id  shell dumpsys cpuinfo 应用程序包名

1.4.6 获取指定程序PID

adb shell "ps | grep packageName"

二、安卓APP测试流程图

image

三、安卓App测试点

3.1 UI测试

3.2 兼容性测试

3.3 安装卸载测试

3.4 版本升级测试

3.5 交互测试

3.6 客户端数据库测试

-客户端后台数据的增、删、改、查等数据更新测试

-数据为空的情况测试

-检查客户端数据存在时,app数据是否能自动从客户端数据中取出,检查客户端数据存在时,app数据是否能自动从客户端数据中取

3.7 接口测试

3.8 性能测试

四、工具Emmagee

4.1 简介

Emmagee是网易杭州研究院qa团队开发的一款用于监控安卓客户端性能的小工具,可以监控指定被测应用在使用过程中器的启动时间、CPU、内存、流量和电量变化情况,用户可自定义配置监控的频率以及性能的实时显示,并最终生成一份性能统计csv文件,支持Android2.2及以上版本。

4.2 主要功能

4.3 实现原理

4.3.1 监控CPU的实现原理

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

4.3.2 监控内存的实现原理

内存和cpu的处理方式类似。先获取到当被测应用的PID,然后按照PID从 /proc/meminfo文件中获取当前被测应用占用的内存信息。

4.3.3 监控流量消耗的实现原理

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

4.3.4 监控电量的实现原理

电量、电压和温度情况是通过监听系统的电池管理事件的广播来获取的。

4.3.5 监控启动时间的实现原理

我们点击界面的开始测试时,程序会启动EmmageeService,之后所有的数据统计以及更新都是EmmageeService 进行处理的。 EmmageeService会在onStartCommand()里面启动一个线程“handler.postDelayed(task, 1000)”,进行数据的更新同时会尝试通过ActivityManger从logcat中获取到软件的启动时间。

红色框框内的东西就是通过调用一个管理Android帧缓冲区的系统服务SurfaceFlinger来获取用于计算fps的帧数据,具体可参考: Android fps的计算方式。

作者:张晓燕

来源:宜信技术学院

上一篇 下一篇

猜你喜欢

热点阅读