zoukankan      html  css  js  c++  java
  • monkey test——学习资料

    出处:
    http://www.testwo.com/blog/6107
    http://www.testwo.com/blog/6146
    http://www.testwo.com/blog/6188
    ------------------------

    Android的测试环境搭建——Mr.Monkey 移动测试培训课后总结(一)

    2012-10-29  白云

    一、相关概念及名词解释
    1、SDK是什么?
    软件开发工具包。
    2、Android SDK包括了什么?
    包含了安卓的所有开源文档(不包括开源代码)和开源文档包含了开发和测试所用到的API、工具、工具的讲解使用、工具的samples。
    3、Android SDK下载地址:
    4、Android SDK中我们常用到什么?
    作为测试来讲,经常用到的有以下几个:
    • SDK根目录下有一个docs文件夹,docs下有一个offline.html即Android SDK的document;
    • platform-tools下的adb的命令(android的安装等其他命令都会用到adb);
    • tools下的emulator(Android模拟器);
    • tools下的hierachyviewer、hprof-conv、monkeyrunner、ddms这几个批处理;
    • 根目录下的AVD Manager,用来配置模拟器各项参数;
    • SDK Manager,执行后得到Android的各个SDK版本。(Tips:SDK所在的目录不要有中文)。
    只要执行移动测试就离不开上述几个工具。
     
    二、在Eclipse中Android环境搭建
    1、Eclipse是一个基于JAVA的开发平台,所以需要安装jdk java环境,安装jdk1.6.
    2、Eclipse下载地址: http://www.eclipse.org/downloads/ (经典版本或者j2ee版本皆可)
    3、下载Eclipse插件
    在Eclipse菜单栏中Help-->Install New Software...打开安装Eclipse插件的窗口,Work with:输入框输入插件地址(例如https://dl-ssl.google.com/android/eclipse/)。安装完毕后根据提示重启Eclipse,Eclipse中Andorid插件安装完成。
    4、SDK Manager窗口
    各个SDK版本的安装情况(课程需要安装4.1、2.3、2.2)
    安装完成后,sdk目录下增加了plarform-tools目录,platforms目录下会多出很多版本,则说明安装升级成功。
    5、安装完android插件后,会看到windows-preference窗口右边栏会有Android选项,点击该项,在SDK Location选择Android SDK的根目录,列表中列出是已安装的Android的SDK版本,依次点击apply->ok 配置成功,Elipse可以直接调用Android的基本工具。
    -----------------
     

    Android系统和应用介绍及工具实践——Mr.Monkey 移动测试培训课后总结(二)

    2012-11-05  白云

    一、Android系统介绍
    1、Android系统架构
    Android底层是由Linux编写,上层由Java编写(包括UI、数据交互等),如果做Android第三方应用测试,不会涉及系统底层,看当前的rom和系统支持哪些API,和原生的Android有哪些区别;如果做系统应用(system application),测试可能涉及不到,开发可能涉及底层的适配。
    2、Android系统目录架构
    二、Android apk介绍
    Android apk类似于windows系统上的exe文件,apk本身可以当做一个安装程序,安装方法有如下几种:
    • 借助adb的一些命令
    • 放到手机的sd卡中,通过手机的文件浏览器点击apk直接安装
    • 借助一些工具,豌豆荚、91助手等
    对apk可以进行解压操作,可以看到如下目录:

    通过网上的一些反编译工具,反编译apk可以直接得到apk的源码,现在多数公司使用了Android的混淆编译,则反编译apk只能得到一堆乱码,无法看到源码结构。

    res/drawable/icon.png 尝试:解压apk后,将icon.png换掉,再去重新安装apk,看下图标是否会变掉。

    其余文件或文件夹为测试的非重点部分。

    三、Android模拟器

    进入sdk文件夹,双击AVD Manager.exe打开Android Virtual Device Manager窗口,点击“New”按钮,弹出Create new Android Virtual Device(AVD)窗口,“Name”为模拟器的名字;“Target”为模拟Android的哪个环境;SD Card的size为模拟手机SD卡的容量,通常无需设置;“Skin”为分辨率设置;Hardware通用不到,若测试到特殊功能重力感应等,可以设置。

     

    设置完成后,点击“Create AVD”,则可以创建模拟器。新建成功后如下图:

     

    可以在list中看到刚刚新建的模拟器,选中该模拟器,点击“Start”弹出如下窗口:

     

    display to real size希望模拟器的屏幕调整到适应显示器的size,通常不需选中,点击“Launch”,模拟器显示如下:

     

    tips:ctrl+f12切换模拟器的横竖屏.

    四:Android的adb tool

     

    打开dos命令行,进入adb tool 所在目录,如下图:

    使用命令:adb devices,如果环境设置成功,可以看到一个devices的list:

     

    该list的三个状态:

     

    • device:识别到设备并且是启动状态;
    • no device:没有连接手机或者模拟器;
    • offline:设备无法识别,adb命令工作不正常,模拟器长时间无响应,adb kill-server回车,重新执行adb devices 重启adb服务,从offline变为device。

     

    把apk放到platform-tools文件夹下,adb install xxx.apk 有解压和安装的过程,最后给出success提示。

    tips:要安装的apk文件名中不能有空格,如果带有空格会认为指定了多个文件(too many files specfied;only takes APK file and verifier file.),则无法安装成功。

    如果一台电脑连接了多台设备(手机或者模拟器),执行adb install时会提示有多个devices,需指定一个device

    adb -s emulator-5554 install xxx.apk 该指令表示xxx.apk该应用装到emulator-5554这个设备里。

    -s即为设备指定。

    adb install 的apk不是系统原生的apk,是把第三方apk装入设备来使用,安装进去的apk是在data目录中,使用adb shell 进入data所在的目录

     

    第三方apk安装在data/app下(在此文件夹下显示的为包名,即开发定义的app package name,一般来讲是com.(公司名).(app name)),原生系统应用安装在system/app下

    adb push 假设安卓系统有root权限,第三方应用需要模拟该应用被合到rom中,rom恢复出厂设置后仍有这个应用,把该apk push到system/app下,操作如下:把该apk放到platform-tools目录下,执行adb push xxx.apk system_app,该apk是原生存在于系统中而非用户安装的。

    adb pull 将原生apk拿出 adb pull xxx.apk windows指定目录

    tips:此时要注意退出adb shell环境(ctrl+c),在命令行下执行该操作。(注意该apk要带全路径)

    测试中最常用的命令:adb logcat 查看系统所有日志,用来调试和查看APP的日志。

    hprof converter

    hprof是一个以.hprof结尾的文件,该文件是查内存时使用dump的命令,dump下来的一个文件即hprof(查看内存泄露)

    通过如下方法得到hprof文件(hprof无法直接查看,需要下载MAT插件,查看时仍然会提示无法查看,需要使用命令hprof-conv a.hprof b.hprof,将a.hprof文件进行转换查看,转换后的hprof文件也会保存在tools文件夹下):

     

    • Android默认有一个工具ddms,直接dump下来 hprof文件(选中进程,点击DUMP HPROF file)
    • Android自带的工具Monkey

    安装MAT插件的方法:

    • 进入Eclipse-->Help-->Install new software,add MAT的下载链接,如下图:

    • 选中需要下载的插件,点击“Next”,进行安装;
    • 重启Eclipse,在Window/Preferences窗口下会多出一个 Memory Analyzer项:如下图:

    PS:以上MAT插件的安装步骤是从网上搜的。

     open file 打开hprof-convz转换后的.hprof文件,会自动调用mat打开。

    五、DDMS(查看进程和日志)
    sdk/tools/ddms.mat,双击该批处理文件打开ddms工具:

    下面即为logcat,主要关注红色error的log。

    六、Hierarchy Viewer

    sdk/tools/hierarchyviewer.bat 双击该批处理文件打开Hierarchy Viewer:

     

     

     

     

     

     

     

     

     

     

    黑色标注的为当前设备可以看到的最上层的UI的activity,点击黑色标注的进程,点击“load view Hierarchy”按钮,看到如下界面,当前界面UI结果分析出来:

    可以得到当前选中控件的id,可得到对应界面的按钮。三种颜色代表该控件整个生命周期的内存占用率。

    点击黑色标注的进程,点击“Inspect Screenshot”得到一个从0%到200%的扩展界面,精细到界面的每个像素。

    -------------------------

    Monkey test——Mr.Monkey 移动测试培训课后总结(三)

    2012-11-15  白云

        这周乱七八糟的事情太多啦。。现在才整理。。  希望对大家还有帮助。。
    一、Monkey test简介
    • Android的SDK 里面,Monkey的tools是一个命令行工具,当连接Android设备时,只要在命令行里输入相应命令就能运行tools;
    • Monkey test是一项压力测试,可以在规定的次数范围内做任何随机的操作,随机操作包括点击、滑动、Application切换、横竖屏、应用关闭等等,用户能做的操作统统可以模拟;
    • Monkey test跑出来crash的bug等级永远为1,版本release前,Monkey跑出的结果中crash要为0。业内标准:final release前,Monkey跑完的总次数应为25W次,其结果里不允许有nullPointException出现.
    二、Monkey test的使用流程

    三、简单的Monkey脚本示例
     

    adb shell monkey -v 10
    其中10代表运行脚本的操作次数为10次,若seed不指定值默认为0;
    后面两行为intent的描述,运行了Android基本的LAUNCHER主进程,LAUNCHER主进程之后运行了MONKEY进程;
    Event percentages,因为命令中只加了一个限制条件,次数为10,当其余参数没有添加时,就如上图百分比出现;
    //Money finished 完成。
    四、Monkey test实例1

    第一个-s emulator-5554 设备的序列号;
    -p com.lovebizhi.wallpaper-1 要测试对象的package name(adb shell data/data),若测试多个对象,则应为-p package_name1 -p package_name2;
    --pct-xxx 用来设定每个事件在测试中的百分比,百分比总和不能超过100%;
    --pct-touch 调整触摸事件的百分比
    --pct-motion 调整动作事件的百分比
    --pct-trackball 调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随着点击)
    --pct-nav 调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)
    --pct-majormav 调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作)
    第二个-s 同样的seed值(seed值由自己定义,相当于一个文件的文件名,monkey的操作顺序相当于文件)有同样的随机序列,复现问题时,需要monkey用同样的操作步骤重新跑一遍,可以在日志的第一行看到seed值;
    --throttle 设定事件发生的间隔,不设置时,在android系统极限内操作,若手机性能较低,容易出现系统无响应,最佳的时间间隔在300或者500,单位是毫秒;
    -v 指定Log的详细程度,共有三个级别:
    -v 日志级别为level 0
    -v -v 日志级别为level 1
    -v -v -v 日志级别为level 2     日志的详细程度越来越详细
     
    Monkey tools在Android内只能针对Activity做测试,不能对service做测试。
    tips: adb devices 可以获取设备id

    adb shell data/data获取应用包的名称

    Monkey test中只能指定activity属性的应用包进行测试,当出现指定的应用程序不是activity的时候,monkey会出现以下log,并终止运行:

    备注:activity和service的区别,activity是android应用的核心概念,简而言之activity为用户交互管理者,有一个可视界面呈现,而service是在后台运行,没有界面呈现。

    五、Monkey test实例2

     

     

    想要跑完脚本后再去总结过程中出现的crash或者系统无响应,需要指定参数--ignore-crashes --ignore-timeouts,若不指定,遇到问题就会停止运行,效率会降低。

    当且仅当设备有滚轮时需要设定--pct-trackball,如果没有滚轮需设置为0。

    monkey可以不指定-p后的应用,若为了有针对的跑需要指定。

    六、检查结果

    查找关键字crash

    //sending event表示目前已经执行的测试次数

    查看有效crash,注意crash:后的进程(pid),及其后的package name是被测对象;java.lang.NullPointerException下会给出错误在开发工程中的第几行。

    tips:指定要保存log的路径(> d: est.txt)可以进入D盘下的test.txt进行crash关键字的筛选 

    注意事项:

     

    • 在进行monkey的测试时,最好不进行adb的操作;
    • 跑monkey时需要记录3个log,monkey的log(重新指向到某个txt中),dump system的log(查看系统占有),android本身的log logcat。

     

     
  • 相关阅读:
    小数的进制转换
    水题 O
    水题 J
    水题T,二进制转16进制
    水题B
    水题C
    HDU 2042
    HDU 2041
    Index For SQL Server
    Learning Note For Angular
  • 原文地址:https://www.cnblogs.com/LittleRedPoint/p/3976728.html
Copyright © 2011-2022 走看看