必威体育Betway必威体育官网
当前位置:首页 > IT技术

MonKey测试

时间:2019-10-04 06:43:21来源:IT技术作者:seo实验室小编阅读:63次「手机版」
 

monkey测试

  • MonKey:
    • Monkey是Android平台自动化测试的一种手段,通过 Monkey程序模式用户触摸屏幕、滑动、按键等操作对设备上的程序进行压力测试,检测程序多久的时间会发生异常
    • monkey测试是一种测试Android软件稳定性、健壮性的快速而有效的方法
    • Monkey程序为Android系统自带,用java语言实现。在Android文件系统中的存放路径是:system/framework/monkey.jar
在cmd中输入
adb shell
cd system/bin
ls  可以看到monkey
cat monkey


结果:
shell@klte:/system/bin $ cat monkey
# Script to start "monkey" on the device, which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/monkey.jar
trap "" HUP
exec APP_process $base/bin com.android.commands.monkey.Monkey $*
  • Monkey.jar由Monkey命令来启动执行:
在命令窗口执行:
adb shell monkey  -help
可以查看命令参数
  • 尝试使用命令:
adb shell monkey -p com.android.calculator2 -v 100 向指定的包发送100个伪随机事件
  • monkeyrunner

    • MonkeyRunner工具提供了一个API,使用此API写的程序可以在Android系统之外控制Android设备或者模拟器
    • 通过MonkeyRunner可以使用Python程序去安装一个Android程序或者应用包、
    • 具体位置在sdk文件下的tools子目录
  • 特性:

    • 多设备控制
    • 功能测试
    • 回归测试
    • 可扩展:利用python扩展
  • Monkey和MonkeyRunner两者区别:

Monkey:运行于设备或者模拟器之上,生成各种操作的伪随机事件流

MonkeyRunner: 运行于 PC端,通过python可以扩展
  • MonkeyRunner使用:
    • 如果没有配置环境变量,就在cmd中直接到sdk\tools\bin文件下执行monkeyrunner命令,结果如下图:

      在这里插入图片描述

    • 可能遇到问题:

      • SWT folder ‘…\framework\x86_64’ does not exist. Please set ANDROID_SWT to point to the folder conta
      • 意思是:SWT文件夹“…\framework\x86_”不存在。请将android_swt设置为指向包含swt.jar的平台文件夹。
      • 解决方案
        • 将MonkeyRunner文件使用记事本打开,修改下面部分:


请将android_swt设置为指向包含swt.jar的平台文件夹。
  if exist %frameworkdir%\%jarfile% goto JarFileOk
            set frameworkdir=lib  
  以及最后一行:
  call "%java_exe%" -Xmx512m "-Djava.ext.dirs=%frameworkdir%;%swt_path%" -
  Dcom.android.monkeyrunner.bindir=..\framework -jar %jarpath% %* 
  
 分别改为:
 
 if exist %frameworkdir%\%jarfile% goto JarFileOk
    set frameworkdir=..\lib
 和:
call "%java_exe%" -Xmx512m "-Djava.ext.dirs=%frameworkdir%;%swt_path%" -Dcom.android.monkeyrunner.bindir=..\..\platform-tools -jar %jarpath% %*

  • 通过 aapt获取包名:
    • 在\sdk\build-tools\x.x.x下执行:
aapt dump badging path\name.apk >  path/log.txt 
 
* 在log.txt文件中查看即可
  • 上面的操作完成之后,再次输入MonkeyRunner,示例代码
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
device = MonkeyRunner.waitForConnection()
device.reboot("None")

Android设备或者虚拟机重启
  • 示例(来自官方):
# 导入此程序使用的MonkeyRunner模块
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice

device = MonkeyRunner.waitforConnection()


# 安装Android软件包。请注意,此方法返回一个布尔值,因此可以测试以查看安装是否有效。
device.installPackage('myproject/bin/MyApplication.apk')


# 使用包的内部名称设置变量
package = 'com.example.android.myapplication'


# 使用包中活动的名称设置变量
activity = 'com.example.android.myapplication.MainActivity'


# 设置要启动的组件的名称
runcomponent = package + '/' + activity

# 运行组件
device.startActivity(component=runComponent)

# 按下菜单按钮
device.press('KEYCODE_MENU', MonkeyDevice.DOWN_AND_UP)

# 截图
result = device.takeSnapshot()

# 将截图写入文件
result.writeToFile('myproject/shot1.png','png')

相关阅读

基于MonkeyRunner的自动点击

背景:某些场景下,如果我们想频繁的设备点击屏幕,也许很多人会想到的是adb命令,但是频繁的发送adb命令执行效率是很缓慢的,也许你还会想

Chrome神器插件—油猴Tampermonkey

用Chrome浏览器的应该都知道,Chrome的优势之一就是有各种拓展的插件,使得我们浏览,工作效率都更高。 今天给大家推荐的一款”神器插

Android monkey 命令详解

monkey 是一个运行在模拟器或者Android设备中可以产生类似用户点击、触摸、手势以及一些系统级的伪随机事件流的程序。 我们可以

在命令行运行MonkeyRunner命令及通过MonkeyRunner运行

MonkeyRunner工具主要有三个类:MonkeyRunner、MonkeyDevice、MonkeyImage.可以直接使用一个代码文件运行monkeyrunner,抑或在交互式

【APP自动化测试】Monkey测试入门

今天开始学习monkey,记录一下整个流程一遍后面温习文章目录测试步骤:1. 安装JDK及SDK并且配置其环境:2. 测试ADB是否安装成功:3. 连接

分享到:

栏目导航

推荐阅读

热门阅读