Android系统测试基础概要

1.关于android系统的基本概念

1.1权限:

每个应用都是不同的用户,每个应用都有自己单独的虚拟机,代码运行时是隔离的,默认情况下每个应用都运行在单独的进程中,应用不能访问其无权访问的功能;

在android系统中可以用ps命令查看分配的用户id;应用的数据文件存放在data/data;

通过修改xml文件分配相同id的方法,可以实现不同应用运行在相同进程中;

1.2 应用的组成和激活

a.活动activity界面中每个页面都是一个活动,activity通过intend进行通信,其上为界面控制,用于监听并对用户的事件作出响应

b.后台服务service后台没有用户界面,用于处理长时间任务,可以用来开发如监控类程序,无需交互的程序

c.内容供应组件content provider管理应用的可共享数据 ,如查询联系人信息

d.广播接收broadcast receivers响应系统层面的广播通知,如低电,可以通过通知栏显示消息

1.3清单文件

系统启动应用组件之前要读取清单文件androidmanifest.xml来获知应用中是否包含该组件;

清单文件中包括:

应用需要申请的权限

应用要求的最低版本

会用到的软件硬件功能

会用到的android非标准库

1.4 android应用单ui线程

虽然支持多线程编程,但只有ui线程也就是主线程可以操作控件;

2.1 adb命令

Adb shell进入shell命令

Adb devices列出连接设备

df显示系统中各个分区情况

dumpsys meminfo查看内存使用情况

dumpsys cpuinfo查看cpu使用情况

dumpsys battery电池情况

dumpsys telephony.registry电话使用情况

sumpsys wifi无线使用情况

Adb kill-serveradb start-server重启服务

Adb install路径包名

logcat抓包logcat –time >d:\1.txt

过滤日志:v最低级别d调试级别i信息级别w警告级别

E错误级别f严重错误级别

例如:adb –e logcat *:W过滤出警告级别及任意标签的log

monkey命令

例如:monkey –p包名–v –v 100

su查看

ls/data/app查看安装的包名

ls data/data

locgcat | busybox grep START

2.2 稳定性测试monkey命令

1).标准的monkey命令

[adb shell] monkey [options] ,例如:

adb shell monkey -v 500 --------产生500次随机事件,作用在系统中所有activity(其实也不是所有的activity,而是包含Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY的activity)。

上面只是一个简单的例子,实际情况中通常会有很多的options选项

2).四大类——常用选项、事件选项、约束选项、调试选项

1:常用选项

--help:打印帮助信息

-v:指定打印信息的详细级别,一个-v增加一个级别,默认级别为0。

2:事件选项

-s:指定产生随机事件种子值,相同的种子值产生相同的事件序列。如:-s 200

--throttle:每个事件结束后的间隔时间——降低系统的压力(如不指定,系统会尽快的发送事件序列)。如:--throttle 100

--pct-touch:指定触摸事件的百分比,如:--pct-touch 5%,相关的还有以下option:

--pct-motion (滑动事件)、--pct-trackball (轨迹球事件)、--pct-nav (导航事件up/down/left/right)、--pct-majornav (主要导航事件back key、menu key)、--pct-syskeys (系统按键事件Home、Back、startCall、endCall、volumeControl)、--pct-appswitch (activity之间的切换)、--pct-anyevent (任意事件)

3:约束选项

-p:指定有效的package(如不指定,则对系统中所有package有效),一个-p对应一个有效package,如:-p com.ckt -p com.ckt.asura;

-c:activity必须至少包含一个指定的category,才能被启动,否则启动不了;

4:调试选项

--dbg-no-events:初始化启动的activity,但是不产生任何事件。

--hprof:指定该项后在事件序列发送前后会立即生成分析报告——一般建议指定该项。

--ignore-crashes:忽略崩溃

--ignore-timeouts:忽略超时

--ignore-security-exceptions:忽略安全异常

--kill-process-after-error:发生错误后直接杀掉进程

--monitor-native-crashes:跟踪本地方法的崩溃问题

--wait-dbg:知道连接了调试器才执行monkey测试。

4.一个简单的monkey命令:

adb shell monkey -p com.xy.android.junit -s500 -v 10000

但是,工作中为了保证测试数量的完整进行,我们一般不会在发生错误时立刻退出压力测试。monkey测试命令如下

代码如下:

adb shell monkey -p com.xy.android.junit -s500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000> E:\monkey_log\java_monkey_log.txt

六、monkey作用的包:com.ckt.android.junit

产生时间序列的种子值:500

忽略程序崩溃、忽略超时、监视本地程序崩溃、详细信息级别为2,产生10000个事件。

1.monkey

runner接收明确的测试脚本,使用python编写,有明确的条件判断语句

录制回放:(国产手机可能不支持)

cd到monkeyrunner.bat的目录里,运行monkeyrunner ..\..\monkey_recorder.py(绝对路径)点击屏幕即会生成坐标,还有按button,输入文本,滑动等事件,录制完毕后选择Export Actions就将脚本保存下来了,保存的时候不需要后缀名。(也可加后缀名:*.mr)回放:

cd到monkeyrunner.bat的目录里,运行monkeyrunner ..\..\monkey_playback.py ..\..\第5步中保存的文件名(均为绝对路径)

录制文件mr后缀,必须放在与monkeyrunner.bat和monkey_recorder.py,monkey_palyback.py文件夹同样路径

你可能感兴趣的:(Android系统测试基础概要)