Monkeyrunner--自动化测试工具

来源:互联网 发布:淘宝上买的轮毂可靠吗 编辑:程序博客网 时间:2024/05/17 08:59

[目录]

1.Monkeyrunner简介

2.monkeyrunner环境搭建

3.运行Monkeyrunner

4.示例/笔记

一、Monkeyrunner简介

monkeyrunner即android SDK中自带的工具之一,此工具提供API可接至android设备或模拟器。
monkeyrunner工具的主要目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件,也可以用于其它。
1.MOnkeyrunner相对Monkey区别
1)Monkeyrunner工具在工作站上通过API定义的特定命令和事件控制设备或模拟器(可控)
2)精确控制事件之间的事件
3)可以进行:点触屏、拖拽、长按、键盘事件
4)可以智能截图对比和判断
5)回溯出详细具体的BUG路径
2.Monkeyrunner优缺点
1) 能完全模拟人工所有操作
2) 有详细的API文档参考
3) 可以写出智能图像对比脚本
4) 支持java和Python两种语言脚本
5) 脚本移植性差
3.Monkeyrunner脚本编写
1)终端USB调成开发者模式
2)电脑安装手机驱动

二、Monkeyrunner环境搭建

Monkeyrunner的环境搭建,需要安装以下工具:jdk、android sdk、python编译器。
1.jdk的安装与配置
1)jdk下载完成后,默认安装。
2)jdk环境配置
jdk安装成功后,计算机→属性→高级系统设置→高级→环境变量,在系统变量中,新建JAVA_HOME变量,变量值填写jdk的安装目录。
在系统变量中,编辑Path变量,在变量值最后输入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;这里写图片描述
在系统变量中,新建CLASSPATH变量,变量值填写为:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
这里写图片描述
3)jdk环境检查
运行cmd,在cmd窗口中,输入 java -version(注意有空格)。若成功则显示版本信息。
这里写图片描述
2.android sdk安装与配置
sdk环境配置
sdk安装成功后,解压缩到自己目录,不需要安装,计算机→属性→高级系统设置→高级→环境变量,在系统变量中,新建ANDROID_HOME变量,变量值填写sdk中tools和platform-tools的安装目录。这里写图片描述
在系统变量中,编辑Path变量,在变量值最后输入%ANDROID_HOME%;
这里写图片描述
2)环境检查
运行cmd,在cmd窗口中,输入adb。若成功则显示版本信息。
这里写图片描述
3.Python编辑器安装与配置
python用于支持Monkeyrunner运行,使用python脚本编写用例会大大简化Monkeyrunner用例的编写,且会帮助扩展monkeyrunner的自动化功能。
配置过程省略。。。
这里写图片描述
检查是否正常:运行cmd,输入python。成功则显示版本信息。
这里写图片描述
4.Monkeyrunner环境检查
若以上步骤均完成,且各环境变量也配置正确,至此,Monkeyrunner环境已经搭建完成。检验Monkeyrunner环境是否搭建成功,则同样运行cmd,在cmd窗口中,输入monkeyrunner。如下图所示,则说明Monkeyrunner环境搭建成功。
这里写图片描述
下面就可以用Monkeyrunner连接模拟器来进行自动化的测试了。

三、运行Monkeyrunner

Monkeyrunner API
主要包括三个模块
1、MonkeyRunner:这个类提供了用于连接monkeyrunner和设备或模拟器的方法,它还提供了用于创建用户界面显示提供了方法。
2、MonkeyDevice:代表一个设备或模拟器。这个类为安装和卸载包、开启Activity、发送按键和触摸事件、运行测试包等提供了方法。
3、MonkeyImage:这个类提供了捕捉屏幕的方法。这个类为截图、将位图转换成各种格式、对比两个MonkeyImage对象、将image保存到文件等提供了方法。
Moneyrunner在使用前,必须先打开模拟器或连接上手机设备。下面是Monkeyrunner的实例操作。

引用导入API

from com.android.monkeyrunner import
运行monkeyrunner
命令语法为:
monkeyrunner -plugin
方式一:在CMD命令窗口直接运行monkeyrunner
方式二:使用Python编写测试代码文件,在CMD中执行monkeyrunner Findyou.py运行
不论使用哪种方式,都需要调用SDK目录的tools子目录下的monkeyrunner命令。
四、Monkeyrunner实例
monkeyrunner之夜神模拟器的安装与使用
http://www.jb51.net/article/97955.htm
1.模拟器启动
我们这里选择命令打开模拟器。运行cmd,在cmd窗口,输入命令:emulator -avd AVD_test,其中AVD_test是模拟器的名称,填写自己创建的模拟器名称。
这里写图片描述
模拟器启动成功后,我们仍在cmd环境中操作。现在进入Monkeyrunner的shell命令交互模式。
输入命令:monkeyrunner
进入shell命令交互模式后,首要一件事就是导入monkeyrunner所要使用的模块。直接在shell命令下输入命令:
复制代码 代码如下:
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice
再回车,这步完成我们就可以利用monkeyrunner进行测试工作了。
这里写图片描述
2.模拟器连接
下面我们就要Monkeyrunner连接上模拟器,进行一系列操作了。输入命令:
device=MonkeyRunner.waitForConnection()
其中,device=MonkeyRunner.waitForConnection(6,’emulator-5554′)
参数1:超时时间,单位秒,浮点数,默认是无限期地等待。
参数2:指定的设备名称device_id,默认为当前设备(手机优先,其次为模拟器)
这里写图片描述
输入命令后,页面上没有错误信息返回,即成功连接设备。
3.app安装并启动
1)app安装
模拟器启动成功后,我们安装自己想要的apk,这里我们选择qq音乐安装。
输入命令:device.installPackage(‘F:\QQyinle_439.apk’),其中,参数是APK的相对路径。
安装成功返回true,此时查看模拟器我们可以在IDLE界面上看到安装的APK的图标了。
这里写图片描述
2)app启动
app安装成功后,现在启动该app,命令为:
device.startActivity(component=”package名/.activity”)
首先,我们有必要说一下,如何获取一个app的package名和activity。这里,我们只描述一种获取方式。
使用aapt,其中aapt是sdk自带的一个工具,在sdk\builds-tools\目录下:
这里写图片描述
以存储在F盘的qq音乐为例,运行cmd,命令行中切换到aapt.exe目录,
方法一:
执行命令:aapt dump badging F:\QQyinle_439.apk ,注意,apk路径中一定不能有空格。
这里写图片描述

由上图可知:package name:com.tencent.qqmusic
activity:.activity.AppStarterActivity
方法一由于日志较多,寻找起来比较费劲,所以我们引出方法二。
方法二(推荐):
把日志存储在特定的文件中,在文件中通过搜索关键字,得到包名及活动名,这里我把结果输出到F盘的log.txt中:
aapt dump badging F:\QQyinle_439.apk > F:\log.txt
到此,已经获取了app的package名和activity。下面,我们真正的启动app。在原有cmd运行窗口,输入命令:
复制代码 代码如下:
device.startActivity(component=” com.tencent.qqmusic/.activity.AppStarterActivity “)
命令执行后,模拟器上的app被启动。这表示命令启动app成功。这里的关键是app的package name和activity对应获取正确,否则启动不了特定app。
这里写图片描述
此时可以向模拟器发送如按键、滚动、截图、存储等操作了。
四、Monkeyrunner运行python脚本
同样,Monkeyrunner可以直接调用指定python脚本,将命令写到python文件里,命名例如.py,然后我们再从命令行直接通过monkeyrunner运行它即可。比如,我们还是用上面的例子,语法如下:monkeyrunner .py。接下来monkeyrunner会自动调用*.py,并执行其中的语句,相当方便。
我们这里将上述例子,所有命令放在python文件里,并命名test.py,然后存储到本地F盘,即路径为:F:\test.py。

coding:utf-8

from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice
device=MonkeyRunner.waitForConnection()
device.installPackage(‘F:\QQ_374.apk’)
MonkeyRunner.sleep(3.0)
runComponent = “com.tencent.qqmusic/.activity.AppStarterActivity”
device.startActivity(component=runComponent)
在cmd中运行monkeyrunner F:\test.py,这里的python脚本路径为相对路径。结果报错:SyntaxError:mismatched input ‘test’ expecting NEWLINE,如下:
这里写图片描述
这是因为python脚本应在dos模式下执行,不要进入monkeyrunner的shell命令交互模式。正确的方式如下,输入命令monkeyrunner F:\test.py:
这里写图片描述
运行成功后,则可以在模拟器上看到启动的qq音乐app。

数据线连接安卓真机
1.首先需要下载一个“包名查看器”
用它来查看APP的包名等信息,传给电脑
这里写图片描述

2.打开手机的开发者选项,选择显示指针指示位置
这里写图片描述
3.测试:
从打开i西科APP的第一个指针位置开始记录,此后的每次触屏 记录绝对位置,电脑打开selenium输入:
import sys
//导入模块
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage
//连接设备
device = MonkeyRunner.waitForConnection()
//等待,单位,秒
MonkeyRunner.sleep(5)
//启动包名,启动类名
device.startActivity(component=”com.ss.android.article.news/com.ss.android.article.news.MainActivityBadge0”)
MonkeyRunner.sleep(10)
//坐标点击
device.touch(560, 410, “DOWN_AND_UP”)
MonkeyRunner.sleep(5)
device.touch(85, 151, “DOWN_AND_UP”)
MonkeyRunner.sleep(2)
device.touch(942, 1862, “DOWN_AND_UP”)
MonkeyRunner.sleep(2)
device.touch(222, 242, “DOWN_AND_UP”)
MonkeyRunner.sleep(5)
device.touch(571, 1173, “DOWN_AND_UP”)
MonkeyRunner.sleep(5)

device.touch(305, 509, “DOWN_AND_UP”)
MonkeyRunner.sleep(5)
//输入
device.type(“18683668458”)
MonkeyRunner.sleep(5)
device.touch(305, 728, “DOWN_AND_UP”)
MonkeyRunner.sleep(5)
device.type(“xiaolanyun521”)
MonkeyRunner.sleep(5)
device.touch(575, 921, “DOWN_AND_UP”)
4.运行,可以看到安卓端进行操作。

相关文章:http://www.jb51.net/article/77987.htm Android自动测试工具Monkey
http://blog.sina.com.cn/s/blog_13a47448f0102wdu7.html
Android自动化测试之Monkeyrunner学习笔记(一)
http://www.jianshu.com/p/52742630c311
Monkeyrunner 小白入门示例文章(简书)
http://m.blog.csdn.net/zm2714/article/details/7980634
Android自动化测试之Monkeyrunner使用方法及实例
http://www.51testing.com/html/59/n-242759.html
之Monkeyrunner从零开始

原创粉丝点击