zoukankan      html  css  js  c++  java
  • Android自动化压力测试之Monkey Test (三)

    Monkey 是什么?

    Monkey是Google提供的一个用于稳定性与压力测试的命令行工具。

    Monkey路径:

    路径:/System/framework/monkey.jar

    启动脚本路径:/system/bin/monkey

    1.首先我们先打开安卓模拟器

    2.打开本地cmd命令窗口

    3.输入命令查看 模拟器是否有连接上

    adb devices      ,出现如下图所示说明已连接上

    4.然后就可以输入 adb shell 命令 进入monkey的路径下去执行monkey test了

    cd /system/framworke/        成功进入目录,然后再来找下是不是有monkey的jar包

    5. 模糊查询含有monkey的命令:ls | grep monkey    ,可以看到里面是有monkey.jar包

    6.我们再看下启动脚本     cd /system/bin/  成功进入目录,然后输入命令: ls | grep monkey 找下是不是有monkey 启动脚本

    上图可以看出是有monkey的启动脚本的

    由此上一节提到的环境变量的配置童鞋们也知道是做什么用的了

    配置adb的环境

    monkey是由adb命令启动的,所以要配置adb的环境

    1.下载 Android SDK,解压

    2.将SDK目录下的platform-tools 和 tools目录配置到系统换环境变量中(将变量配置好之后才能安装apk文件)

    3.打开cmd窗口,输入adb,有adb帮助信息则配置成功

    安装apk文件


    首先 将需要进行测试的apk包拷贝到platform-tools 目录下

    然后执行安装命令 adb install test.apk

    要注意点的一点就是,执行安装命令的时候,需要进入该目录下,我这边的目录是

    命令:E:

    进入目录下,cd E:Androidandroid-sdkplatform-tools

     

    然后执行安装apk命令,出现下图 Success 表示安装成功,右侧的就是模拟器安装成功的app

    命令格式:(输入命令之后,模拟器上会运行对应的指定操作)

    1.PC 启动

    >adb shell monkey [option] <count>          "[]"可选参数,可不填,"<>"里面的参数必填,不填会报错

    2.shell端启动

    > adb shell 

    >monkey [optinon] <count>

    这两种方式有什么不同呢,第一种PC启动,结果可以保存在PC端;第二种手机端启动,结果只能保存在手机。

    当然 运行monkey时候的log想要保存出来也是可以的

    保存monkey运行的log

    1.保存在PC中    adb shell monkey [option] <count> d:monkey.txt       例如:adb shell monkey 100 > d:monkey.txt       (运行100次,日志保存在D盘,第2,第3一样的意思,就不举例了)

    2.保存在手机中  monkey [option] <count> /mnt/sdcard/monkey.txt

    3.标准流与错误流分开保存

    monkey [option] <count> 1> /mnt/sdcard/monkey.txt 2> /mnt/sdcard/error.txt

    monkey test的话 首先是需要了解各个参数是干嘛的,各个参数的意义,再进行实践操作

    adb shell monkey -help  查看帮助命令

    adb shell pm list packages 列出所有apk的包名

    下面来进行实操演练

    手机端运行

    首先进入adb shell

    运营对应的apk文件 adb shell monkey -p com.dabai.app.im 100    ( -p 后面接apk包名  然后接次数)

     上面红色框中就是报错的提示 运行19次后报错,因为上图没有加日志导出,下面是事件参数,这边就将各种参数导出日志的方法执行一遍

     如果在执行过程中,运行次数过多,想要停止monkey的运行,那么就再打开一个cmd命令窗口

    先查看出monkey的进程

    adb shell ps | find "monkey"

    查询出来的结果中 后面有跟着对应的apk包名

    那么kill这个进程即可

    adb shell kill +进程编号     例如我这边的是:adb shell kill 2189,执行后,就会结束运行了

    Monkey事件参数

     对应日志中的事件

    对应命令(执行的效果的话 童鞋们最好自己执行然后对照着模拟器观察就可以知道效果了)

    随机种子 -S

    adb shell monkey -p com.dabai.app.im -s 100 -v -v 100   (-S后面的100是随机序列号也就是对应seed编号名称,-V后面的100代表的是运行次数)下次如果还要查看该seed的执行过程,就在-s后面加100即可

    固定延时 --throttle<毫秒>

    adb shell monkey -p com.dabai.app.im --throttle 200 -v -v 100

    随机延时 --randomize-throttle

    adb shell monkey -p com.dabai.app.im --throttle 200 --randomize-throttle -v -v 100      (这句话的意思是0-200毫秒的随机延时)

    touch    点击事件 

    adb shell monkey -p com.dabai.app.im --pct-touch 100--throttle 200 --randomize-throttle -v -v 100   (--pct是百分比的简称,touch后面跟的100 意思是 100%的操作都是执行这个touch)

    motion    移动事件

    adb shell monkey -p com.dabai.app.im --pct-motion 100--throttle 200 --randomize-throttle -v -v 100 

    trackball 轨迹球事件

    adb shell monkey -p com.dabai.app.im --pct-trackball 100--throttle 200 --randomize-throttle -v -v 100 

    nav 导航时事件(上下左右键的意思)

    adb shell monkey -p com.dabai.app.im --pct-nav 100--throttle 200 --randomize-throttle -v -v 100 

    majornav 主要导航事件

    adb shell monkey -p com.dabai.app.im --pct-majornav 100--throttle 200 --randomize-throttle -v -v 100 

    下面的事件都是同理的执行,还有一个地方就是,所有的导航事件都是可以连用的,只要将百分比设置的不同即可

  • 相关阅读:
    性能学习-了解前端性能测试
    Python变量类型说明
    Python 标识符说明
    极验验证码-判断需要移动的距离
    极验验证码-userresponse.js
    转载系列
    loadrunner java vuser
    java DES
    java AES
    极验验证码流程-4字段加密
  • 原文地址:https://www.cnblogs.com/Lam7/p/5459153.html
Copyright © 2011-2022 走看看