APP稳定性测试神器之Monkey-自定义脚本测试

APP稳定性测试神器之Monkey-自定义脚本测试

2023年6月30日发(作者:)

APP稳定性测试神器之Monkey-⾃定义脚本测试APP稳定性测试神器之Monkey-⾃定义脚本测试常规Monkey测试执⾏的是随机的事件流,但如果只是想让Monkey测试某个特定场景这时候就需要⽤到⾃定义脚本了,Monkey⽀持执⾏⽤户⾃定义脚本的测试,⽤户只需要按照Monkey脚本的规范编写好脚本,存放到⼿机上,启动Monkey通过-f 参数调⽤脚本即可。⼀、Monkey脚本API⽅法LaunchActivity(pkg_name, cl_name):启动应⽤,参数:包名和ActivityTap(x, y, tapDuration): 模拟⼀次⼿指单击事件,参数:x,y为控件坐标,tapDuration为点击的持续时间,此参数可省略RotateScreen(rotationDegree, persist): 旋转屏幕,参数:rotationDegree为旋转⾓度,1代表90度;persist表⽰旋转之后是否固定,0表⽰旋转后恢复,⾮0则表⽰固定不变。DispatchFlip(true/false): 打开或者关闭软键盘LongPress(2000): 长按2秒PressAndHold(x, y, pressDuration): 模拟长按事件DispatchString(input): 输⼊字符串Drag(xStart, yStart, xEnd, yEnd, stepCount): ⽤于模拟⼀个拖拽操作PinchZoom(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End, stepCount): 模拟缩放⼿势UserWait(sleepTime): 休眠⼀段时间DeviceWakeUp(): 唤醒屏幕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(5000): 等待5秒StartCaptureFramerate(): 获取帧率EndCaptureFramerate(input): 结束获取帧率⼆、monkey⾃定义脚本实战(免费领取Python⾃动化学习资料 ⼯具,⾯试宝典⾯试技巧,加QQ群,785128166,群内还会⼤佬技术交流)1、测试案例启动QQ,然后点击登录按钮进⼊登录页⾯,在登录界⾯输⼊⽤户名、密码,点击登录。2、搭建模拟器环境在itools或者夜神模拟器中,安装QQ最新版本,检查是否连接ADB,并获取App包名。C:Userschang>adb devicesList of devices attached127.0.0.1:56001 device#获取App的包名,先启动qq并获取焦点adb shell dumpsys window | findstr mCurrentFocus3、脚本开发Monkey脚本只能通过坐标的⽅式来定位点击和移动事件的屏幕位置,这⾥就需要提前获取坐标信息。获取坐标信息的⽅法很多,最简单的⽅法就是打开⼿机中的开发⼈员选项,打开“显⽰指针位置”。随后,在屏幕上的每次操作,在导航栏上都会显⽰坐标信息Monkey脚本主要包含两部分,⼀部分是头⽂件信息,⼀部分是具体的monkey命令。将下⾯脚本复制到e:⽂件中。#头⽂件信息type = raw eventscount = 1speed = 1.0#启动测试start data >>#启动应⽤的ActivityLaunchActivity(qq,ctivity)UserWait(2000)Tap(379,822,200) #点击登录按钮UserWait(2000)Tap(249,278,1000) #点击⽤户名⽂本框DispatchString(2878228288)#输⼊qq号码UserWait(2000)Tap(228,381,1000) #点击⽤户名输⼊框DispatchString(zxw1234)UserWait(2000)Tap(248,539,1000) #点击登录按钮UserWait(2000)4、执⾏脚本先将脚本⽂件发送到移动设备上,然后调⽤adb shell monkey指令执⾏脚本#将编写好的脚本push到模拟器的/data⽬录下adb push e: /data#调⽤monkey指令执⾏脚本adb -s 127.0.0.1:56001 shell monkey -f /data/ -v 15、查看执⾏结果C:Userschang>adb -s 127.0.0.1:56001 shell monkey -f /data/ -v 1:Monkey: seed=98 count=1:IncludeCategory: ER:IncludeCategory: Replaying 0 events with speed 1.0:Switch:#Intent;action=;category=ER;launchFlags=0x10200000;component=com // Allowing start of Intent { act= cat=[ER]cmp=qq/.ctivity } in package qq:Sending Touch (ACTION_DOWN): 0:(379.0,822.0):Sending Touch (ACTION_UP): 0:(379.0,822.0):Sending Touch (ACTION_DOWN): 0:(249.0,278.0):Sending Touch (ACTION_UP): 0:(249.0,278.0)// Shell command input text zxw1234 status was 0:Sending Touch (ACTION_DOWN): 0:(228.0,381.0):Sending Touch (ACTION_UP): 0:(228.0,381.0)// Shell command input text zxw1234 status was 0:Sending Touch (ACTION_DOWN): 0:(248.0,539.0):Sending Touch (ACTION_UP): 0:(248.0,539.0)Events injected: 20:Sending rotation degree=0, persist=false:Dropped: keys=0 pointers=0 trackballs=0 flips=0 rotations=0## Network stats: elapsed time=13890ms (0ms mobile, 0ms wifi, 13890ms not connected)// Monkey finished欢迎关注作者,如果觉得写的还不错,就给点个赞、收藏(后续持续更新)。

发布者:admin,转转请注明出处:http://www.yc00.com/web/1688090960a79443.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信