美文网首页
Monkey脚本

Monkey脚本

作者: Chaweys | 来源:发表于2022-01-20 02:56 被阅读0次

    Monkey脚本API简介
    LaunchActivity(pkg_name, cl_name):启动应用的Activity。参数:包名和启动的Activity
    
    Tap(x, y, tapDuration): 模拟一次手指单击事件。参数:x,y为控件坐标,tapDuration为点击的持续时间,此参数可省略
    
    UserWait(sleepTime): 休眠一段时间,毫秒
    
    DispatchPress(keyName): 按键,参数: keycode
    
    RotateScreen(rotationDegree, persist): 旋转屏幕。 参数:rotationDegree为旋转角度, 
    e.g. 1代表90度;persist表示旋转之后是否固定,0表示旋转后恢复,非0则表示固定不变
    
    DispatchString(input): 输入字符串
    
    DispatchFlip(true/false): 打开或者关闭软键盘
    
    PressAndHold(x, y, pressDuration): 模拟长按事件
    
    Drag(xStart, yStart, xEnd, yEnd, stepCount): 用于模拟一个拖拽操作
    
    PinchZoom(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End, stepCount): 模拟缩放手势
    
    LongPress(): 长按2秒
    
    DeviceWakeUp(): 唤醒屏幕
    
    PowerLog(power_log_type, test_case_status): 模拟电池电量信息
    
    WriteLog(): 将电池信息写入sd卡
    
    RunCmd(cmd): 运行shell命令
    
    DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFlags): 向指定位置,发送单个手势
    
    DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFilags): 发送按键消息
    
    LaunchInstrumentation(test_name,runner_name): 运行一个instrumentation测试用例
    
    DispatchTrackball: 模拟发送轨迹球事件
    
    ProfileWait: 等待5秒
    
    StartCaptureFramerate(): 获取帧率
    
    EndCaptureFramerate(input): 结束获取帧率
    

    自定义monkey脚本举例

    Monkey脚本格式:
    Monkey脚本主要包含两部分,一部分是头文件信息,一部分是具体的monkey命令。
    type = raw events
    count = 1
    speed = 1.0
    #启动测试
    start data >>
    #具体的monkey脚本内容
    
    
    
    
    type = raw events   #注意等号两边必须有空格
    count = 1           
    speed = 1.0
    start data >>       #启动测试
    
    LaunchActivity(com.tal.kaoyan,com.tal.kaoyan.ui.activity.SplashActivity)
    UserWait(2000)
    
    Tap(633,903,1000)  #点击取消升级按钮
    UserWait(2000)
    
    Tap(806,64,1000)   #点击跳过按钮
    UserWait(2000)
    
    Tap(217,378,1000)  #点击用户名输入框
    DispatchString(zxw123)
    UserWait(2000)
    
    Tap(197,461,1000)  #点击密码输入框
    DispatchString(zxw123)
    UserWait(2000)
    
    Tap(343,637,1000)  #点击登录按钮
    
    #注:这些中文注释,在真实的测试脚本中不能存在,否则脚本执行报错
    
    
    执行测试:
    (1)、首先找到要测试的包的包名package和LaunchActivity
    aapt dump badging C:\Users\chawey\Desktop\kaoyanbang.opdown.com.apk
    (2)、上传脚本文件到设备
    adb push C:\Users\chawey\Desktop\monkey.txt /cache/
    (3)、执行测试
    adb shell monkey -f /cache/monkey.txt -v -v 1
    
    

    Monkey日志管理

    Monkey日志管理
    1、日志保存至PC机上
    adb shell monkey -v -v 100 > d:\monkey.log
    2、日志区分标准流和错误流分开保存至PC机上
    adb shell monkey -v -v 100  1>d:\monkey.log  2>d:\error.log
    
    3、日志保存至设备上
    adb shell  进入shell
    monkey -v -v 100 > /cache/monkey.log
    
    注:不能写成 adb shell monkey -f /sdcard/kyb.txt -v 1 > /cache/monkey.log 否则会报错"系统找不到指定的路径"
    
    
    日志样例:
    :Monkey: seed=1642754853715 count=100
    :IncludeCategory: android.intent.category.LAUNCHER
    :IncludeCategory: android.intent.category.MONKEY
    // Selecting main activities from category android.intent.category.LAUNCHER
    //   + Using main activity com.android.browser.BrowserActivity (from package com.android.browser)
    //   + Using main activity com.android.camera.CameraLauncher (from package com.android.camera2)
    //   + Using main activity com.android.gallery3d.app.GalleryActivity (from package com.android.gallery3d)
    //   + Using main activity com.android.settings.Settings (from package com.android.settings)
    //   + Using main activity com.amaze.filemanager.activities.MainActivity (from package com.amaze.filemanager)
    //   + Using main activity com.android.Calendar.ui.activity.MainActivity (from package com.android.Calendar)
    //   + Using main activity com.android.calculator2.MainActivity (from package com.android.calculator2)
    //   + Using main activity com.android.deskclock.MainActivity (from package com.android.deskclock)
    //   + Using main activity com.android.documentsui.LauncherActivity (from package com.android.documentsui)
    //   + Using main activity com.tal.kaoyan.ui.activity.SplashActivity (from package com.tal.kaoyan)
    //   + Using main activity com.pp.assistant.activity.PPMainActivity (from package com.wandoujia.phoenix2)
    // Selecting main activities from category android.intent.category.MONKEY
    //   + Using main activity com.android.launcher3.launcher3.Launcher (from package com.android.launcher3)
    //   + Using main activity com.android.settings.Settings$RunningServicesActivity (from package com.android.settings)
    //   + Using main activity com.android.settings.Settings$StorageUseActivity (from package com.android.settings)
    // Seeded: 1642754853715
    // Event percentages:
    //   0: 15.0%
    //   1: 10.0%
    //   2: 2.0%
    //   3: 15.0%
    //   4: -0.0%
    //   5: -0.0%
    //   6: 25.0%
    //   7: 15.0%
    //   8: 2.0%
    //   9: 2.0%
    //   10: 1.0%
    //   11: 13.0%
    :Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.android.browser/.BrowserActivity;end
        // Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.android.browser/.BrowserActivity } in package com.android.browser
    Sleeping for 0 milliseconds
    :Sending Trackball (ACTION_MOVE): 0:(4.0,-2.0)
    :Sending Trackball (ACTION_MOVE): 0:(-3.0,2.0)
    :Sending Trackball (ACTION_MOVE): 0:(1.0,-1.0)
    :Sending Trackball (ACTION_MOVE): 0:(-4.0,-3.0)
    :Sending Trackball (ACTION_MOVE): 0:(-5.0,-4.0)
    :Sending Trackball (ACTION_MOVE): 0:(4.0,-2.0)
    :Sending Trackball (ACTION_MOVE): 0:(0.0,1.0)
    :Sending Trackball (ACTION_MOVE): 0:(-5.0,-5.0)
    :Sending Trackball (ACTION_MOVE): 0:(0.0,-1.0)
    :Sending Trackball (ACTION_MOVE): 0:(4.0,4.0)
    :Sending Trackball (ACTION_MOVE): 0:(-5.0,-5.0)
    :Sending Trackball (ACTION_MOVE): 0:(-3.0,2.0)
    :Sending Trackball (ACTION_MOVE): 0:(1.0,4.0)
    :Sending Trackball (ACTION_MOVE): 0:(1.0,4.0)
    :Sending Trackball (ACTION_MOVE): 0:(-1.0,-4.0)
    :Sending Trackball (ACTION_MOVE): 0:(2.0,-1.0)
    :Sending Trackball (ACTION_MOVE): 0:(4.0,1.0)
    :Sending Trackball (ACTION_MOVE): 0:(4.0,-1.0)
    :Sending Trackball (ACTION_MOVE): 0:(1.0,1.0)
    :Sending Trackball (ACTION_MOVE): 0:(-3.0,2.0)
    :Sending Trackball (ACTION_MOVE): 0:(-1.0,-3.0)
    :Sending Trackball (ACTION_MOVE): 0:(-1.0,3.0)
    :Sending Trackball (ACTION_MOVE): 0:(2.0,1.0)
    :Sending Trackball (ACTION_MOVE): 0:(-3.0,-3.0)
    :Sending Trackball (ACTION_MOVE): 0:(-4.0,4.0)
    :Sending Trackball (ACTION_MOVE): 0:(1.0,3.0)
    :Sending Trackball (ACTION_MOVE): 0:(-5.0,-2.0)
    :Sending Trackball (ACTION_MOVE): 0:(4.0,4.0)
    :Sending Trackball (ACTION_MOVE): 0:(2.0,2.0)
    :Sending Trackball (ACTION_MOVE): 0:(1.0,2.0)
    :Sending Touch (ACTION_DOWN): 0:(742.0,1456.0)
    :Sending Touch (ACTION_MOVE): 0:(743.49817,1455.9059)
    :Sending Touch (ACTION_MOVE): 0:(753.2797,1454.5524)
    :Sending Touch (ACTION_MOVE): 0:(754.5631,1454.1804)
    :Sending Touch (ACTION_MOVE): 0:(762.12604,1452.7964)
    :Sending Touch (ACTION_MOVE): 0:(770.7902,1451.635)
    :Sending Touch (ACTION_MOVE): 0:(781.38214,1450.5787)
    :Sending Touch (ACTION_MOVE): 0:(781.5714,1450.3865)
    :Sending Touch (ACTION_MOVE): 0:(789.5314,1450.0535)
    :Sending Touch (ACTION_UP): 0:(789.66785,1449.1233)
    Sleeping for 0 milliseconds
    :Sending Flip keyboardOpen=false
    Sleeping for 0 milliseconds
    :Sending Touch (ACTION_DOWN): 0:(240.0,610.0)
    :Sending Touch (ACTION_UP): 0:(238.61252,601.4705)
    Sleeping for 0 milliseconds
    :Sending Key (ACTION_DOWN): 23    // KEYCODE_DPAD_CENTER
    :Sending Key (ACTION_UP): 23    // KEYCODE_DPAD_CENTER
    Sleeping for 0 milliseconds
    :Sending Key (ACTION_DOWN): 23    // KEYCODE_DPAD_CENTER
    :Sending Key (ACTION_UP): 23    // KEYCODE_DPAD_CENTER
    Sleeping for 0 milliseconds
    :Sending Key (ACTION_DOWN): 21    // KEYCODE_DPAD_LEFT
    :Sending Key (ACTION_UP): 21    // KEYCODE_DPAD_LEFT
    Sleeping for 0 milliseconds
    :Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.amaze.filemanager/.activities.MainActivity;end
        // Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.amaze.filemanager/.activities.MainActivity } in package com.amaze.filemanager
    Sleeping for 0 milliseconds
    :Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.android.calculator2/.MainActivity;end
        // Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.android.calculator2/.MainActivity } in package com.android.calculator2
    Sleeping for 0 milliseconds
    :Sending Trackball (ACTION_MOVE): 0:(3.0,0.0)
    :Sending Trackball (ACTION_MOVE): 0:(-3.0,-3.0)
    :Sending Trackball (ACTION_MOVE): 0:(-1.0,-5.0)
    :Sending Trackball (ACTION_MOVE): 0:(0.0,-3.0)
    :Sending Trackball (ACTION_MOVE): 0:(1.0,-1.0)
    :Sending Trackball (ACTION_MOVE): 0:(-3.0,0.0)
    :Sending Trackball (ACTION_MOVE): 0:(-5.0,-5.0)
    :Sending Trackball (ACTION_MOVE): 0:(0.0,-1.0)
    :Sending Trackball (ACTION_MOVE): 0:(4.0,3.0)
    :Sending Trackball (ACTION_MOVE): 0:(-4.0,1.0)
    :Sending Key (ACTION_DOWN): 21    // KEYCODE_DPAD_LEFT
    :Sending Key (ACTION_UP): 21    // KEYCODE_DPAD_LEFT
    Sleeping for 0 milliseconds
    :Sending Touch (ACTION_DOWN): 0:(1198.0,851.0)
    :Sending Touch (ACTION_MOVE): 0:(1201.0214,847.19324)
    :Sending Touch (ACTION_MOVE): 0:(1206.2993,840.98413)
    :Sending Touch (ACTION_MOVE): 0:(1207.4199,832.43884)
    :Sending Touch (ACTION_MOVE): 0:(1210.113,829.9012)
    :Sending Touch (ACTION_MOVE): 0:(1211.4093,828.4381)
    :Sending Touch (ACTION_MOVE): 0:(1215.7728,825.83307)
    :Sending Touch (ACTION_MOVE): 0:(1217.6183,818.6283)
    :Sending Touch (ACTION_MOVE): 0:(1220.4448,807.3662)
    :Sending Touch (ACTION_MOVE): 0:(1222.1752,796.54065)
    :Sending Touch (ACTION_UP): 0:(1226.9751,793.49304)
    Sleeping for 0 milliseconds
    :Sending Touch (ACTION_DOWN): 0:(601.0,315.0)
    :Sending Touch (ACTION_MOVE): 0:(595.86804,313.86035)
    :Sending Touch (ACTION_MOVE): 0:(591.1642,313.72913)
    :Sending Touch (ACTION_MOVE): 0:(587.6222,313.02234)
    :Sending Touch (ACTION_MOVE): 0:(583.5219,312.91266)
    :Sending Touch (ACTION_MOVE): 0:(582.8331,312.62967)
    :Sending Touch (ACTION_MOVE): 0:(582.6208,312.25565)
    :Sending Touch (ACTION_MOVE): 0:(579.6371,310.88022)
    :Sending Touch (ACTION_MOVE): 0:(575.411,310.04507)
    :Sending Touch (ACTION_MOVE): 0:(572.2668,308.72028)
    :Sending Touch (ACTION_UP): 0:(568.21643,307.85904)
    Sleeping for 0 milliseconds
    :Sending Touch (ACTION_DOWN): 0:(813.0,866.0)
    :Sending Touch (ACTION_UP): 0:(819.67896,878.4972)
    Sleeping for 0 milliseconds
    :Sending Key (ACTION_DOWN): 21    // KEYCODE_DPAD_LEFT
    :Sending Key (ACTION_UP): 21    // KEYCODE_DPAD_LEFT
    Sleeping for 0 milliseconds
    :Sending Key (ACTION_DOWN): 19    // KEYCODE_DPAD_UP
    :Sending Key (ACTION_UP): 19    // KEYCODE_DPAD_UP
    Sleeping for 0 milliseconds
    :Sending Trackball (ACTION_MOVE): 0:(-4.0,3.0)
    :Sending Trackball (ACTION_MOVE): 0:(2.0,2.0)
    :Sending Trackball (ACTION_MOVE): 0:(1.0,1.0)
    :Sending Trackball (ACTION_MOVE): 0:(-2.0,0.0)
    :Sending Trackball (ACTION_MOVE): 0:(-2.0,0.0)
    :Sending Trackball (ACTION_MOVE): 0:(3.0,4.0)
    :Sending Trackball (ACTION_MOVE): 0:(-3.0,-3.0)
    :Sending Trackball (ACTION_MOVE): 0:(-2.0,0.0)
    Events injected: 100
    :Sending rotation degree=0, persist=false
    :Dropped: keys=0 pointers=0 trackballs=0 flips=0 rotations=0
    ## Network stats: elapsed time=1222ms (0ms mobile, 0ms wifi, 1222ms not connected)
    // Monkey finished
    

    相关文章

      网友评论

          本文标题:Monkey脚本

          本文链接:https://www.haomeiwen.com/subject/rgilhrtx.html