Monkey笔记

1.adb命令
1.1abd version
在这里插入图片描述

1.2 adb connect
Mumu模拟器
在这里插入图片描述

夜神模拟器:
adb connect 127.0.0.1:62001
第二个是 62025 ,第三个是 62026,62027.。。。依次类推

1.3adb shell
在这里插入图片描述

若有多个设备连接,需指定设备
Eg: adb -s 127.0.0.1:62001 shell
退出:exit
#代表有root 权限;$表示没有root权限。Root相当于超级管理员
1.4 Adb install
在这里插入图片描述

-r 覆盖原安装文件
adb -r install debug.apk

-s 连接多设备的时候,指定安装设备
adb -s 127.0.0.1:62005 install debug.apk

1.5 adb uninstall ??
在这里插入图片描述

1.5adb shell pm list package 查看设备的应用包名
集合 | grep 使用
在这里插入图片描述
在这里插入图片描述
或者通过 uiautomatorviewer.bat 进行查看
在这里插入图片描述

1.6adb push
adb push /desktop/test.script data/local/tmp 电脑文件传入手机

1.7 adb pull 手机设备传入电脑
在这里插入图片描述
./ 当前目录
1.8adb shell screencap /desktop屏幕截图
手机先截图,然后上传到电脑
在这里插入图片描述

Ps:注意截图保存png格式,jpg存在不兼容问题
1.9adb 服务启动和关闭
adb kill-server
adb start-server

若5037端口被占用,可使用下面命令进行释放
netstat -ano | findstr “5037”
1.10 存为.bat文件,执行即可
在这里插入图片描述

2.package 和 activity
2.1 介绍
包名获取 见1.5
Android 应用是由多个activity 组成的,多个activity 之间可以互相跳转。
Activity运行周期:产生、运行、销毁
2.2 查看包的配置信息
aapt dump badging “apk路径” 查看包的配置信息
在这里插入图片描述
com.ydcf99.ydcf.activity.SplashActivity
3.Monkey
3.1 monkey位置
在这里插入图片描述
3.2 强制关闭monkey 命令
adb shell ps 查看命令pid
在这里插入图片描述

Adb shell kill pid 杀掉monkey进程 ( com.android.commands.monkey)
在这里插入图片描述

3.3 monkey常用参数
(1)帮助类参数
adb shell monkey -h
(2)日志级别
adb shell monkey -v (-v )(-v )
在这里插入图片描述
-v:增加反馈信息级别,-v越多,反馈信息越详细
在这里插入图片描述

(3)执行指定脚本
adb shell monkey -f

(4)伪随机数生成种子数,重现操作
adb shell monkey -s
Eg:adb shell monkey (-p com.ydcf99.ydcf) -s

(5)设置时间间隔
adb shell monkey --throttle
eg:adb shell monkey -p com.ydcf99.ydcf --throttle 50 100
(6)设置触摸事件百分比
adb shell monkey -v --pct-touch 30 200
在这里插入图片描述

(7) adb monkey -p <允许的包名列表>
用此参数指定一个或多个包。指定包之后,monkey将只允许系统启动指定的app。
Eg: adb shell monkey -p package 1000
eg:adb shell monkey -v -p com.ydcf99.ydcf --pct-touch 100 500

(8)设置手势事件的百分比

adb shell monkey -v --pct-montion 100 200
在这里插入图片描述

(9)设置多个事件的百分比
adb shell monkey -v --pct-motion 20 --pct-touch 50 200

在这里插入图片描述

(10)设置应用启动事件的百分比
adb shell monkey -v --pct-appswitch 5 200

在这里插入图片描述

(11)设置屏幕旋转事件百分比
Adb shell monkey --pct-rotation 100 200
在这里插入图片描述

(12)设置两指缩放事件的百分比
adb shell monkey -v --pct-pinchzoom 80 200
在这里插入图片描述

(13)包约束 -p
Adb shell monkey -p
-p 后面可接一个 或 多个包名

Adb shell monkey -p com.ydcf99.ydcf -p com.budejie.www 200

(14)忽略崩溃事件
Adb shell monkey --ignore-crashes

(15)忽略超时事件(ANR)
Adb shell monkey --ignore-timeouts

(16)忽略应用程序权限错误
Adb shell monkey --ignore-security-exceptions

4.Monkey参数综合应用

C:\Users\user>adb shell monkey -p com.tal.kaoyan --pct-touch 40 --pct-motion 25 --pct-appswitch 10 --pct-rotation 5 -s 222 --throttle 400 --ignore-crashes --ignore-timeouts -v -v 200

5.Monkeyscript

【Monkey Script】

规则:adb shell monkey -f

1.轨迹球事件 DispatchTrackball命令

downtime : 记录键最初被按下的时间
eventide : 事件发生的时间
action : 具体的操作过程
x,y : 坐标点
pressure : 压力的大小,范围是0-1
size : 触摸的一个即使值,范围是0-1
metstate : 当前按下met键的标识
xprecision : x坐标的精确值
yprecision : y坐标的精确值
device : 事件的来源,事件的来源是0-x,0表示不来自物理设备
edgeflags : 表示超出屏幕范围
action 0代表按下,1代表抬起,x和y代表坐标点

2.点击事件 DispatchPointer ,成对出现

downtime : 记录键最初被按下的时间
eventide : 事件发生的时间
action : 具体的操作过程
x,y : 坐标点
pressure : 压力的大小,范围是0-1
size : 触摸的一个即使值,范围是0-1
metstate : 当前按下met键的标识
xprecision : x坐标的精确值
yprecision : y坐标的精确值
device : 事件的来源,事件的来源是0-x,0表示不来自物理设备
edgeflags : 表示超出屏幕范围
action 0代表按下,1代表抬起,x和y代表坐标点

3.输入字符串事件 DispatchString

4.启动应用 LaunchActivity

5.等待时间 UserWait

6.按下键值 DispatchPress(66)

=================================
1.写脚本
2.将脚本复制到手机里 adb push

脚本头:
typ=user
count=10
speed=1.0
start data >>

C:\Users\user\AppData\Local\Android\Sdk\platform-tools\adb.exe

启动获取坐标工具:uiautomatorviewer
C:\Users\user\AppData\Local\Android\Sdk\tools\bin>.\uiautomatorviewer.bat 【不能有空格】

终止命令运行:
新建一个窗口
执行: adb shell ,
再执行ps | grep monkey,返回来的第一个数字,即是monkey的进程号
然后kill pid 进程号。


保存执行日志到电脑上并命名为monkey.txt
adb shell monkey -p 包名 -v 1000 > /Users/user/Desktop/monkey.txt

eg:
typ=user
count=10
speed=1.0
start data >>

LaunchActivity(com.ydcf99.ydcf,com.ydcf99.ydcf.activity.MainActivity)

DispatchPointer(10,10,0,800,1400,1,1,-1,1,1,0,0)
DispatchPointer(10,10,1,800,1400,1,1,-1,1,1,0,0)

UserWait(2000)

DispatchPointer(10,10,0,200,400,1,1,-1,1,1,0,0)
DispatchPointer(10,10,1,200,400,1,1,-1,1,1,0,0)

DispatchPointer(10,10,0,700,400,1,1,-1,1,1,0,0)
DispatchPointer(10,10,1,700,400,1,1,-1,1,1,0,0)

DispatchString(100)

UserWait(1000)

DispatchPointer(10,10,0,800,600,1,1,-1,1,1,0,0)
DispatchPointer(10,10,1,800,600,1,1,-1,1,1,0,0)

UserWait(1000)

DispatchPointer(10,10,0,400,20,1,1,-1,1,1,0,0)
DispatchPointer(10,10,1,400,20,1,1,-1,1,1,0,0)

6.Monkeyrunner
【monkey Runner】
1.alert 警告框
void alert(string message,string title,string okTitle)

eg: 0814.py
from com.android.monkeyrunner import MonkeyRunner
MonkeyRunner.alert(“hello”, “this is title”, “OK”)

在命令框输入:monkeyrunner E:\projects\0814.py

2.waitForConnection 等待设备连接,需指明设备
waitForConnection(float timeout,string deviceid)

3.drag
drag(tuple start,tuple end,float duration,integer steps)
起点位置,终点位置,手势持续时间,插值点步数,默认10

4.press
press(string keycode,dictionary type)
KEYCODE_ENTER
keycode:Down,Up,DOWN_AND_UP

5.startActivity 启动应用
startActivity(package+’/ '+activity) 根据XML配置文件

6.touch 点击
touch(integer x,integer y,integer type)
type:Down,Up,DOWN_AND_UP

7.type 输入
type(string message)

8.takeSnapshot 截屏
MonkeyImage takeSnapshot()

9.sameAs
boolean sameAs(MonkeyImage other,float percent)

10.writetoFile 保存图像文件
void writetoFile(string path,string format)

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
device = MonkeyRunner.waitForConnection()
device.startActivity("com.ydcf99.ydcf/com.ydcf99.ydcf.activity.MainActivity")
device.touch(800, 1400, "DOWN_AND_UP")
MonkeyRunner.sleep(1)
device.touch(200, 350, "DOWN_AND_UP")
MonkeyRunner.sleep(2)
device.touch(51, 350, "DOWN")
MonkeyRunner.sleep(2)
device.type("222")
MonkeyRunner.sleep(2)
device.touch(400, 550, "DOWN_AND_UP")
MonkeyRunner.sleep(2)
device.touch(500, 1300, "DOWN_AND_UP")
MonkeyRunner.sleep(2)
device.drag((100, 1300), (100, 100), 2, 10)

附:
1.MonkeyScript
Monkey Script】

规则:adb shell monkey -f

1.轨迹球事件 DispatchTrackball命令

downtime : 记录键最初被按下的时间
eventide : 事件发生的时间
action : 具体的操作过程
x,y : 坐标点
pressure : 压力的大小,范围是0-1
size : 触摸的一个即使值,范围是0-1
metstate : 当前按下met键的标识
xprecision : x坐标的精确值
yprecision : y坐标的精确值
device : 事件的来源,事件的来源是0-x,0表示不来自物理设备
edgeflags : 表示超出屏幕范围
action 0代表按下,1代表抬起,x和y代表坐标点

2.点击事件 DispatchPointer ,成对出现
downtime : 记录键最初被按下的时间
eventide : 事件发生的时间
action : 具体的操作过程
x,y : 坐标点
pressure : 压力的大小,范围是0-1
size : 触摸的一个即使值,范围是0-1
metstate : 当前按下met键的标识
xprecision : x坐标的精确值
yprecision : y坐标的精确值
device : 事件的来源,事件的来源是0-x,0表示不来自物理设备
edgeflags : 表示超出屏幕范围
action 0代表按下,1代表抬起,x和y代表坐标点

3.输入字符串事件 DispatchString
4.启动应用 LaunchActivity
5.等待时间 UserWait
6.按下键值 DispatchPress(66)

1.写脚本
2.将脚本复制到手机里 adb push

保存执行日志到电脑上并命名为monkey.txt
adb shell monkey -p 包名 -v 1000 > /Users/user/Desktop/monkey.txt

typ=user
count=10
speed=1.0
start data >>

LaunchActivity(com.ydcf99.ydcf,com.ydcf99.ydcf.activity.MainActivity)

#【首页】
DispatchPointer(10,10,0,100,1400,1,1,-1,1,1,0,0)

#第二个立即抢购(项目介绍)
DispatchPointer(10,10,0,400,1100,1,1,-1,1,1,0,0)
#(安全保障)
DispatchPointer(10,10,0,300,800,1,1,-1,1,1,0,0)
#(投资记录)
DispatchPointer(10,10,0,600,800,1,1,-1,1,1,0,0)
#立即抢购
DispatchPointer(10,10,0,500,1400,1,1,-1,1,1,0,0)
#输入2
DispatchPointer(10,10,0,300,1000,1,1,-1,1,1,0,0)
#输入0
DispatchPointer(10,10,0,400,1400,1,1,-1,1,1,0,0)
#输入0
DispatchPointer(10,10,0,400,1400,1,1,-1,1,1,0,0)
#确认
DispatchPointer(10,10,0,650,820,1,1,-1,1,1,0,0)
#返回
DispatchPointer(10,10,0,20,40,1,1,-1,1,1,0,0)
#返回
DispatchPointer(10,10,0,20,40,1,1,-1,1,1,0,0)
#【投标】
DispatchPointer(10,10,0,300,1400,1,1,-1,1,1,0,0)
#第一个标的立即抢购
DispatchPointer(10,10,0,600,480,1,1,-1,1,1,0,0)
#(安全保障)
DispatchPointer(10,10,0,300,800,1,1,-1,1,1,0,0)
#(投资记录)
DispatchPointer(10,10,0,600,800,1,1,-1,1,1,0,0)
#立即抢购
DispatchPointer(10,10,0,500,1400,1,1,-1,1,1,0,0)
#全部投入
DispatchPointer(10,10,0,100,1400,1,1,-1,1,1,0,0)
#确认
DispatchPointer(10,10,0,650,820,1,1,-1,1,1,0,0)
#返回
DispatchPointer(10,10,0,20,40,1,1,-1,1,1,0,0)
#返回
DispatchPointer(10,10,0,20,40,1,1,-1,1,1,0,0)
#下滑
DispatchTrackball(0,0,0,7,600,0,0,0,0,0,0,0)
#【资讯】
DispatchPointer(10,10,0,500,1400,1,1,-1,1,1,0,0)
#简介
DispatchPointer(10,10,0,400,400,1,1,-1,1,1,0,0)

DispatchPointer(10,10,0,400,410,1,1,-1,1,1,0,0)

#公司新闻1
DispatchPointer(10,10,0,400,670,1,1,-1,1,1,0,0)

DispatchTrackball(0,0,0,7,600,0,0,0,0,0,0,0)
#返回
DispatchPointer(10,10,0,20,40,1,1,-1,1,1,0,0)

#公司新闻2
DispatchPointer(10,10,0,400,850,1,1,-1,1,1,0,0)

#返回
DispatchPointer(10,10,0,20,40,1,1,-1,1,1,0,0)
DispatchPointer(10,10,1,20,40,1,1,-1,1,1,0,0)

#公司新闻3
DispatchPointer(10,10,0,400,1000,1,1,-1,1,1,0,0)

#【我的】
DispatchPointer(10,10,0,700,1400,1,1,-1,1,1,0,0)

2.MonkeyRunner

【monkey Runner】

1.alert 警告框
void alert(string message,string title,string okTitle)
eg: 0814.py
from com.android.monkeyrunner import MonkeyRunner
MonkeyRunner.alert(“hello”, “this is title”, “OK”)
在命令框输入:monkeyrunner E:\projects\0814.py

2.waitForConnection 等待设备连接,需指明设备
waitForConnection(float timeout,string deviceid)

3.drag
drag(tuple start,tuple end,float duration,integer steps)
起点位置,终点位置,手势持续时间,插值点步数,默认10

4.press
press(string keycode,dictionary type)
KEYCODE_ENTER
keycode:Down,Up,DOWN_AND_UP

5.startActivity 启动应用
startActivity(package+’/ '+activity) 根据XML配置文件

6.touch 点击
touch(integer x,integer y,integer type)
type:Down,Up,DOWN_AND_UP

7.type 输入
type(string message)

8.takeSnapshot 截屏
MonkeyImage takeSnapshot()

9.sameAs
boolean sameAs(MonkeyImage other,float percent)

10.writetoFile 保存图像文件
void writetoFile(string path,string format)


#【【【【我的充值】】】
# 如果输入框获取的值与输入不一致,考虑设置等待时间!

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
device = MonkeyRunner.waitForConnection()
device.startActivity("com.ydcf99.ydcf/com.ydcf99.ydcf.activity.MainActivity")
device.touch(800, 1400, "DOWN_AND_UP")
MonkeyRunner.sleep(1)
device.touch(200, 350, "DOWN_AND_UP")
MonkeyRunner.sleep(2)
device.touch(51, 350, "DOWN")
MonkeyRunner.sleep(2)
device.type("222")
MonkeyRunner.sleep(2)
device.touch(400, 550, "DOWN_AND_UP")
MonkeyRunner.sleep(2)
device.touch(500, 1300, "DOWN_AND_UP")
MonkeyRunner.sleep(2)
def scrollUpFling():
    device.touch(100, 500, MonkeyDevice.DOWN)
    device.touch(100, 100, MonkeyDevice.MOVE)
    device.touch(100, 100, MonkeyDevice.UP)
    print("fling up")
def fling():
    scrollUpFling()

fling()
MonkeyRunner.sleep(1)
device.touch(500, 860, "DOWN_AND_UP")
MonkeyRunner.sleep(1)
device.touch(700, 800, "DOWN_AND_UP")
MonkeyRunner.sleep(1)
device.touch(200, 950, "DOWN_AND_UP")
MonkeyRunner.sleep(1)
device.type("666666")
MonkeyRunner.sleep(1)
device.touch(500, 1200, "DOWN_AND_UP")
MonkeyRunner.sleep(3)
device.touch(400, 900, "DOWN_AND_UP")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值