1.Monkey
http://developer.android.com/intl/zh-cn/tools/help/monkey.html
这个工具很简单,主要用来做压力测试。输入如下命令,可以用来查看用法。
adb shell monkey -help
举个简单的例子,如果想测试自己开发的应用,可以输入如下命令:
adb shell monkey -p 你想测试的应用包名 -v 500
其中500是
让monkey发送多少次事件。
2.MonkeyRunner
http://developer.android.com/intl/zh-cn/tools/help/monkeyrunner_concepts.html
这个相对于Monkey来说,就是真正意义上的自动化测试工具了。只需要编写脚本就可完成,我们平时所需要的大部分冒烟用例等等。
下面举个例子,比如我们app里最常用的登录功能,我们就可以编写一个脚本来完成。test.py
# coding=UTF-8
from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner import MonkeyDevice as md
from com.android.monkeyrunner import MonkeyImage as mi
from com.android.monkeyrunner.easy import EasyMonkeyDevice
from com.android.monkeyrunner.easy import By
#定义安装文件路径
installPackage = 'C:\\Users\\Administrator\\ViewPageTest\\app\\build\\outputs\\apk\\app-debug.apk'
#要测试的程序的包名
apkPackageName ='com.example.administrator.viewpagetest'
#要启动的第一个activity的名称
initActivityName=apkPackageName+"/com.example.administrator.viewpagetest.MainActivity"
device = mr.waitForConnection()
#安装apk包
device.installPackage(installPackage.decode('utf-8'))
#启动应用程序
device.startActivity(component=initActivityName)
#防止启动首页面 需要时间过长
mr.sleep(3)
easy_device = EasyMonkeyDevice(device)
mr.sleep(3)
easy_device.type(By.id('id/username_et'),'zhangsan')
# 这里的mr静止 主要用于演示demo上的gif效果
mr.sleep(2)
easy_device.type(By.id('id/password_et'),'123456')
mr.sleep(2)
easy_device.touch(By.id('id/submit_bt'),md.DOWN_AND_UP)
然后运行看效果
monkeyrunner test.py
看上面的脚本,完成了自己安装apk,输入用户名和密码,并且点击登录按钮的过程。
有人问,你这个模拟登录的过程是模拟出来了,那我怎么知道 到底登录成功没有呢?
其实也很简单。主要有几个方法。
1.登录成功以后你这个页面肯定是要跳转到主界面的对吧,你就用脚本执行下shell命令 看看主页面 是否在栈的最上方?(前面我的activity 启动模式那篇博客里讲过这个命令的)
2.你可以在log 里面 打印出登录成功这个消息 然后用脚本捕捉到这个log 日志 就知道是否登录成功了。
3.甚至你还可以捕获界面上某个控件的文字值。
4.比较某个操作结束后的 截屏。保存为图像以后 和正确操作以后的图像进行对比。