(二)Monkey自动化脚本
=========================================
(一)是随机的命令对APP进行自动化测试,可以快速发现APP的问题,若执行时设置的-S 100出现了一个错误,后面再执行时,只需设置相同的-S,就会按照第一次执行命令的顺序再次执行
(二)自动化就是比较有针对性的对某一个功能进行自动测试,比如一个功能偶发了一个问题,这个时候就可以写个脚本多次看看能不能复现。
=========================================
1.编写规则
>>脚本优势:简单、快捷、不需要借助任何工具,可以做简单的性能测试
>>脚本缺点:只能简单实现坐标、按键等基本操作,在不同屏幕尺寸、分辨率的手机上无法复用
>>脚本格式:
#头文件、控制monkey发送消息的参数
type = raw events //表示原始事件
count =10 //脚本包含的指令
speed = 1.0 //脚本执行速度,以上可以参考该固定格式
# 以下是monkey命令
start data >> //脚本开始提示
LaunchActivity(pkg_name,activity)
DispatchPress(KRYCODE_ENTER)
DispatchPress(KEYCODE_HOME)
2.Monkey常见API
>>LaunchActivity(pkg_name,activity) 启动应用的Activity:
pkg_name:包名,activity:应用程序入口activity
>>Tap(x,y,tapDuration) 模拟单击事件:
x,y:坐标, tapDuration:点击的持续时间,可以省略,有默认时间
>>RotateScreen(rotationDegree,persist)
rotationDegree: 旋转角度,persist:旋转之后是否固定
>>DispatchPress(keyname) 按键事件
>>DispatchFlip(true/false) 打开或者关闭软键盘:软件键盘,如讯飞
>>RunCmd(cmd) 在设备上运行shell命令
>>PressAndHold(x,y,pressDuration) 模拟长按事件:
pressDuration: 长按持续时间
>>DispatchString(input) 输入字符串
>>DeviceWakeUp() 唤醒屏幕
>>UserWait(sleepTime) 让脚本中断一段时间,防止找不到元素报错
3.Monkey脚本编写步骤
3.1了解常用的API规则
3.2确定步骤,如下:
>>获取包名和Activityname
1)通过sdk自带的aapt工具:
2)命令行执行:
当前路径下cmd,输入: aapt dump badging 被测应用程序安装包路径(可拖拽),回车
3)查找包名和应用程序入口Activityname
>>一步一步在手机上操作,并获取像素点
利用工具(sdk自带uiautomatorview.bat或者开发者选项中的坐标位置)
1)sdk自带uiautomatorview.bat:较麻烦,不推荐使用
2)开发者选项中的坐标位置
关于手机--5连击版本号--开发者选项显示--进入开发者选项--找到显示触摸操作和指针位置并开启,此时鼠标点击屏幕时最上方就会显示坐标
>>要仔细的检查下,是否脚本上的每一步都跟你的手动操作对应
>>检查脚本,跑一下脚本
3.3运行脚本
将文件放到手机中,adb push 本地monkey脚本文件 /data/local/tmp
运行文件:adb shell monkey -f 手机文件地址/文件名称 数量
4.实例演示
要求:打开浏览器,输入www.baidu.com,测试10次
步骤解析:
1).打开浏览器
2).输入网址
3).确认,载入网址
4).完成,返回到桌面
==============================================================
问题1:浏览器为系统级别应用程序,我们没有该apk的安装包怎么办?
解决:
首先,第三方应用程序是放在/data/app目录的,在该目录下可以找到第三方应用程序apk,如图:
base.apk即我们安装的某第三方apk包名,只不过被改名了,可以把该apk拉到本地重新安装确认:
重点来了, 系统级别的安装包存放在sysytem目录:
要去确认是存放在app目录下还是priv-app目录下,分别进去看一下,找到拉到指定目录即可,按照3.2操作找到包名和应用程序Activity名
=====================================================================
操作:
1)创建txt文件,编写脚本:
2)把脚本推送到/data/local/tmp目录下
adb push 脚本路径 /data/local/tmp
3)执行
adb shell monkey -f /data/local/tmp/monkey_browser.txt 10