APP的性能测试(二)

APP的性能测试分为服务器端的性能和手机端的性能,服务器端的性能相信大家都比较清楚,而手机端的性能测试,通常比较麻烦些,因为同样一个软件在不同配置的手机终端上运行,其性能表现是不一样的,这个很好理解,比如,同一个版本的LOL,在配置高的电脑上运行,肯定要比在配置差的电脑上运行流畅。


先介绍一下APP性能测试现在常用的adb工具以及monkey命令。

Monkey的简单介绍#

1、什么是monkey 

Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。

Monkey测试目的测试软件的稳定性、健壮性。


 2、monkey 的特征

(1测试的对象仅为应用程序包,有一定的局限性。

(2)Monky测试使用的事件流数据流是随机的,不能进行自定义。

(3)可对MonkeyTest的对象,事件数量,类型,频率等进行设置。


1.在使用Monkey命令之前,先要下载一个ADT工具,这个工具在我整理的测试工具里面可以下载,

ADT内含SDK管理,安卓虚拟设备管理器。


2.下载完成之后,如果未配置Java环境变量,需要下载jdk,然后配置环境变量。因为eclipse工具是用于Java开发的编辑器。 


3.配置完成之后,需要在cmd页面先进入sdk目录下的platform-tools中,例如你的sdk安装在D盘,进入cmd页面,输入  D: ,然后回车,cd 进入platform-tools目录中。


4.然后输入命令adb devices可以查看电脑连接了哪几台手机设备,手机设备可以用真机的usb连接到电脑上,也可以在电脑上下载手机模拟器或者用eclipse工具中自带的手机模拟器  (这个自带模拟器比较卡)。


常用的adb命令#


1. adb connect + IP ,可以链接某个设备

2. 查看设备 

adb devices 

这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示

3.关闭adb

 adb kill-server

4.开启adb

 adb start-server

5. 安装软件 

adb install 

这个命令将指定的apk文件安装到设备上

例如 adb install 路径app-weichi-release.apk

当有多个设备接入ADB客户端,就要指定设备名称 

 adb -s 设备名 install 包名

  例如 adb -s emulator-5556 install 路径helloWorld.apk

 如果显示success,那么就安装apk包成功,显示Failure,则安装失败。 

检查错误,排错,再执行如下命令:abd install -r 包名.apk

6. 卸载软件 

adb uninstall <软件名> 

adb uninstall -k <软件名>

如果加 -k 参数,为卸载软件但是保留配置和缓存文件.

7.发送文件

adb push 本地文件路径文件名称 目标路径

这是将本地文件推送到远程端

adb pull 远程文件路径名称 本地路径

这是将远程文件拉到本地

8.登陆设备shell

adb shell 登录设备shell

进入之后就可以执行shell命令了,比如cd ,pwd,ls等。 

9.伪随机事件操作命令

之前介绍过利用monkey命令可以对app进行多次伪随机事件操作,目的是验证app在进行多次操作,压力较大的情况下,app是否会崩溃,如果app崩溃就说明该app性能出现问题。

具体命令如下:

adb shell monkey -p 包名 -v 次数 

这个命令将会启动app,并且触发多个次数事件,

执行这个命令后会出现 Monkey Seed=种子值。

adb shell monkey -p -s seed值  包名 -v  次数 

复制seed值,可以执行一样的事件和过程。


先讲一下怎么获取app的包名?

1.输入命令 adb logcat | findstr START (查找手机日志中含有START的字符)

2.等日志停下来,启动app(启动app会产生日志)

3.复制多出来的日志到记事本或者文本中(最后几行,多出来的日志就是刚才启动app产生的日志)

4.找到{cmp=包名/.activity},这样就能找到该app的包名了。

当然获取包名还有其他的方法,这里不多解释。


在执行伪随机事件次数的那个命令后,运行结束后,查看实际运行次数和输入命令的那个次数是否一致。

运行结束后,最后几排可以看到一排这样的内容

Events injected:次数

看这个次数是否与输入命令的那个次数是否一致,如果不一致,就说明该app运行有问题,需要取下日志进行分析。

adb logcat 实时查看累计日志

adb logcat -C 清除日志

adb logcat -v time 〉本地路径文件名称 (将日志导入后面的文件)

建议在伪随机事件次数操作之前先清除日志,如果运行有问题,可直接将日志导出来分析。

拿到导出的日志,就可以进行分析定位app运行存在的问题了。


logcat日志分析的基本步骤# 

1,如果是ANR(application not run)问题, 则搜索"ANR" 或 'anr in'关键词。 快速定位到关键事件信息 。

2,如果是空指针导致系统crash,会有这些关键字:java.lang.NullPointerException。

发现之后剩下的事情就交给开发解决啦……


这期就讲就分享这么多吧,下一期分享用DDMS工具分析app内存,是否出现内存泄漏问题,MAT工具的使用,以及监控流量电量cpu等等指标的app监控工具iTest的使用。




一起学习,共同进步!






2017.11.1

By Tiger


  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值