【转】app性能测试和稳定性测试详细介绍

上一篇 / 下一篇  2017-10-20 15:33:12 / 个人分类:APP性能测试

前提
相信大家都对monkey都有一定的认识了,这个文档就是针对想入门的同学简单的介绍一下monkey的知识,monkey环境的搭建和配置,monkey和app性能测试工具结合使用。
Monkey简单介绍
1、什么是monkey?
Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试
Monkey测试目的:测试软件的稳定性、健壮性。

2、monkey的特征
(1)测试的对象仅为应用程序包,有一定的局限性。
(2)Monky测试使用的事件流数据流是随机的,不能进行自定义。
(3)可对MonkeyTest的对象,事件数量,类型,频率等进行设置。


环境搭建与配置
1、搭建monkey的运行环境,安装JDK和SDK,我的运行环境是基于windows平台的。

(1) 下载安装JDK ,下载完成之后点击安装,默认安装就可以了,然后设置JDK的环境变量
右击“计算机”->属性->高级系统设置->环境变量->
A、在系统变量里新建JAVA_HOME变量,变量值为:C:\Program Files\Java\jdk1.6.0_14(根据自己的安装路径填写);
B、新建classpath变量,变量值为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;
C、在path变量(已存在不用新建)添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin(注意变量值之间用“;”隔开)。
D、“开始”-->“运行”-->输入cmd->在命令行输入“javac”-->"Enter",如果能正常打印用法说明配置成功!
可以在公司共享文档里下载\文件共享\常用工具\开发工具 
环境变量的解析:
JAVA_HOME:jdk的安装路径
classpath:java加载类路径,只有类在classpath中java命令才能识别,在路径前加了个"."表示当前路径。
path:系统在任何路径下都可以识别java,javac命令。

(2)下载SDK for Windows 解压:android-sdk-windows 到D:盘根目录
可以在公司共享文档里下载 \文件共享\常用工具\测试工具sdk.zip 

(3)设置SDK的环境变量
右击“计算机”->属性->高级系统设置->环境变量->
点击Path,编辑,将“D:\android-sdk-windows\platform-tools”添加到变量值中,与之前的变量值用“;”隔开。

(4)sdk安装路径中platforms存在就不用看了(如果SDK无法自动下载platforms,手工下载Android sdk 2.1,将android-2.1_r01-windows.zip文件解压之后放到android-sdk-windows\platforms)

(5)点击USB连接手机,开始->运行->输入cmd->在命令行输入 adb devices,看是否能检查到设备,如图

(6)adb devices检测不到设备怎么办呢?
如果你在命令行输入adb devices检测不到你的设备,可以去查看一下你的adb.exe进程有没有启动,如果这个进程没有启动你的设备肯定是检测不到的

说明:
adb全称Android Debug Bridge, 是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如G1手机).
它的主要功能有:
* 运行设备的shell(命令行)
* 管理模拟器或设备的端口映射
* 计算机和设备之间上传/下载文件
* 将本地apk软件安装至模拟器或android设备

如果你的adb.exe进程一直无法启动,可能是端口被其它程序给占用了,你可以自己创建一个adb.exe的端口。
在创建之前你可以在命令行通过netstat查看一下你要设置的这个端口有没有被程序占用
“开始”-->“运行”-->输入cmd->在命令行输入netstat -ano |findstr "25025",如果查看没有进程,说明这个端口没有占用。

接下来在电脑->属性->高级系统设备->环境变量->系统变量,新建一个adb.exe的端口值,如图是我自己创建的:



然后启动adb的服务,“开始”-->“运行”-->输入cmd->在命令行输入adb start-server->Enter,如图

然后在命令行输入adb devices看是否检测到你的设备,如图


(6)接下来可以运行Monkey Test的命令
如:monkey –p com.qq –v 1000 com.qq(需要测试的包)
一般情况可以通过这个命令来跑你的程序了,但下面来介绍一个辅助工具,它更好用,除了执行monkey,还可以分析monkey执行结果。

工具介绍
我们暂且叫这个工具moto,这个要感谢我们公司的同学,提供这个好工具。
下载路径:\文件共享\常用工具\测试工具\app测试实用\性能测试 

(1)工具介绍:
自动安装apk、自动执行monkey、自动分析monkey执行结果



(2)工具使用方法,先设置好run_monkey这个文件中的参数,如图


mra.jar使用方法
Usage: java -jar mra.jar -options [args...] 
指定要连接设备的相关信息,要执行程序的相关信息

--device-id <ids...> 连接手机设备ID
--single-duration <duration> 单个monkey执行时间
--series-duration <duration> 所有monkey执行时间
--pkg-path <package-path> 执行程序包的路径
--pkg-name <package-name> 执行程序包的名称
--pkg-version <package-version> 执行程序包的版本


moa.jar使用方法
Usage: moa -options [args...] -dirs [dirs...] 
指定要执行分析的monkey的目录,其中包含了一些子目录,这些子目录中有某一次monkey执行结果。 如果指定了多个目录,目前不会对多个目录中的Crash做去重
-duration <duration> 总的monkey测试的执行时间(小时(8 or 4.5))
-monkey <fileName> monkey log文件的文件名
-bugreport <fileName> bugreport文件的文件名
-logcat <fileName> logcat文件的文件名
-trace <fileName> traces文件的文件名
-properties <fileName> 每一次monkey测试时生成的执行情况文件的文件名

例如辣妈帮的配置如下
java -jar mra.jar 
--device-id b2dac295 
--user-name nieyayun 
--pkg-path .\\LaMaBang_avivo_20150924150434.apk 
--pkg-name com.wangzhi.MaMaHelp 
--pkg-version 6.9.6 
--single-duration 1 
--series-duration 1

java -jar moa-1.5.jar 
-dirs .\\logs -monkey monkey_log.txt 
-logcat logcat_log.txt 
-bugreport bugreport_log.txt 
-trace traces_log.txt 
-properties properties.txt -duration 1
pause

将moto这个目录放置在你本地的某个盘目录下,下面是我的目录:


(3)然后安装app性能监控工具,如:GT,Emmagee,AnotherMonitor,
下载路径:

建议:经过这几天的测试,还是觉得moto和AnotherMonitor结合用比较好。
在手机上直接安装AnotherMonitor.apk即可

(4)一切准备就绪,手机连上电脑,双击run_monkey文件,如下图是已连接到设备,程序包安装成功,monkey开始执行了。
注意:在monkey开始执行之前,需要你启动你手机里AnotherMonitor,并确保除**otherMonitor之外没有其它程序在运行。



(5)monkey执行完后,会自动重启手机,且命令行里会看到monkey test series finished,如图。

然后你可以看到moto/logo路径下已经生成了一个报告,是monkey自动分析测试结果的报告


Crash /崩溃,闪退
ANR /程序无响应


这个路径下有各种日志:


(6)在你测试手机的根目录下有个AnotherMonitor目录,里面还有AnotherMonitor监控到的手机cup,内存等指标数据,如图

可以自己去分析,整理这个结果,性能分析和调优是个很有技术量的活,大家可以研究一下,后面给大家分享!
附件
对于app性能监控工具有很多,这里有GT的介绍文档,GT其实可以监控到更多的指标,但它的不足是不能在你监控的过程中自动保存结果,需要执行完后手动的保存,希望腾讯后面会优化吧。供大家下面去研究:双击打开下面pdf文件 

**上面涉及到的工具都很大,感兴趣的朋友可以联系我,发你们邮箱。小编的微信:nyy911314

TAG:

 

评分:0

我来说两句

日历

« 2022-01-17  
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

我的存档

数据统计

  • 访问量: 1163
  • 日志数: 5
  • 建立时间: 2017-10-20
  • 更新时间: 2017-10-20

RSS订阅

Open Toolbar