android测试教程monkeyRunner从0开始

本文仅针对真正的菜鸟,大虾们请飘过哈,嘿嘿。
要使用Monkeyrunner,我们首先得干神马呢?当然得准备使用环境。这个不外乎就是我们得事先安装好android的SDK,配置好开发环境(如Eclipse),安装好Python(因为Monkeyrunner其实是由Jython写的,直接调用android API来整的,我的机子上安装的是python2.5)。这些步骤网上都有非常详细的教程,教大家手把手地搭环境,我这里就不多废话了。
环境搭好后,接下来我们就可以开始使用它了。目前网上的monkeyrunner教程很多都是直接翻译官网上的资料,写得很粗略,也没有把详细步骤说明下来,搞得我确实废了两三天才摸到头绪。所以我这里会写得很详细,尽量帮助大家能够轻易地看懂。详细步骤如下(在模拟器上运行,附屏幕截图):
1. 用Elipse打开andorid的模拟器或者在CMD中用andorid命令打开模拟器,如下:
D:\Software\Android SDK2.3\android-sdk-windows\tools>emulator -avd AVD2.3.3
file:///C:/Documents%20and%20Settings/Ching/Application%20Data/Tencent/Users/41420872/QQ/WinTemp/RichOle/PO%60SIVP8)%25%25~98(YZ556QS8.jpg

Comments: 定位到android SDK的路径下的tools目录,运行上面这个命令。“AVD2.3.3”是我的模拟器的名字,这个命令是每个人自己命名的,用的时候需改成实际的名字。
2. 这个时候,如果一切正常的话,模拟器应该可以启动起来了。(运行monkeyrunner之前必须先运行相应的模拟器,不然monkeyrunner无法连接设备。这点很多教程上都没有说,我也试了好多次才明白过来)。接着,我们打开另一个CMD窗口(前一个不要关),还是定位到tools目录,输入命令"monkeyrunner",回车,将进入shell命令交互模式。
file:///C:/Documents%20and%20Settings/Ching/Application%20Data/Tencent/Users/41420872/QQ/WinTemp/RichOle/YSH]2%25%25B%25%7DTZ5IOCDW3G83C.jpg

好了,接下来就可以导入monkeyrunner所要使用的模块了。当然是我们的"From...import..."
直接在shell命令中输入: from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice  回车,如图:
[img]file:///C:/Documents%20and%20Settings/Ching/Application%20Data/Tencent/Users/41420872/QQ/WinTemp/RichOle/L)W84B0B5@8X$P7%25BMM[KX4.jpg[/img]

OK,这步完成之后,我们就可以开始和模拟器“勾兑”了,哈哈,命令如下:
device = MonkeyRunner.waitForConnection()
file:///C:/Documents%20and%20Settings/Ching/Application%20Data/Tencent/Users/41420872/QQ/WinTemp/RichOle/ID%7B@H7QF1UUTFBW%60J5G7UQW.jpg

没有报错的话,就代表和模拟器勾兑成功,我们可以接着“骚扰”它了。接下来,我们可以在里面装点东西了。输入如下命令,并传入你的apk所在相对路径即可。我这安装的是著名的ApiDemos。成功了会返回true。如果没有返回true,一般都是语法错误或者你传入的相对路径有问题,仔细检查下就没问题了。
device.installPackage("../samples/android-10/ApiDemos/bin/Apidemos.apk")
file:///C:/Documents%20and%20Settings/Ching/Application%20Data/Tencent/Users/41420872/QQ/WinTemp/RichOle/4VPAZ]_%7DG$~0HGL%7B8Q@P]SS.jpg
再看看应用程序管理器里面,确实是装上去了,呵呵。
file:///C:/Documents%20and%20Settings/Ching/Application%20Data/Tencent/Users/41420872/QQ/WinTemp/RichOle/1NXYH%252OZJIDQCGQ%7B%7B3RGMC.jpg


接下来,我们就可以启动其中的任意activity了,只要传入package和activity名称即可。命令如下:
device.startActivity(component = "com.example.android.apis/com.example.android.apis.ApiDemos")
注意参数里面“/”前面是package的名字,“/”后面是activity的名字。
此时模拟器会自动打开ApiDemos这个应用程序的主页。
file:///C:/Documents%20and%20Settings/Ching/Application%20Data/Tencent/Users/41420872/QQ/WinTemp/RichOle/0~3K%7B%7BNNYF7(%25KQA5_K$X3W.jpg

接下来我们还可以给模拟器发送更多的操作,如模拟任何按键时间和滚动等,并且可以截图。命令格式和上述命令类似,我就不再累述了。

当然,我们也可以不这样麻烦得一行行地输入命令,可以将从“from...import...”开始的所有后面的语句都写到一个python文件里面,例如 monkeyrunnerTest.py,然后我们再从命令行直接通过monkeyrunner运行它即可。比如,我们还是用上面的例子,语法如下:
D:\Software\Android2.3.3\android-sdk-windows\tools>monkeyrunner monkeyrunnerTest.py

接下来monkeyrunner会自动调用monkeyrunnerTest.py,并执行其中的语句,相当方便。

今天暂时先写到这里,今天主要的关键是明白了如何使得monkeyrunner和模拟器进行正确的连接和相关的操作,具体的monkeyrunner的方法和属性大家可以参考官方的文档,上面非常详细了,呵呵。

接下来我准备再应用python上的图像处理库PIL,参考网上的一些图像比较算法,做一个python图片比较的类用于自动比较monkeyrunner生成的测试图片并得出测试结果,有空试验成功了就跟大家一起分享,呵呵



原文地址:https://www.cnblogs.com/xiaoran1129/p/2968736.html