App移动端测试(10)—— Monkey自定义脚本案例

1123 篇文章 44 订阅
631 篇文章 11 订阅

01、前言

Monkey自定义脚本案例:QQ的操作

02、Monkey API

  • LaunchActivity(pkg_name, cl_name)启动应用的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)打开或者关闭软键盘。

  • Drag(xStart, yStart, xEnd, yEnd, stepCount):用于模拟一个拖拽操作。

  • PinchZoom(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End, stepCount):模拟缩放手势。

  • LongPress():长按2秒。

  • 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)结束获取帧率。

03、获取元素的位置

X,Y的值。通过模拟器手机,【开发者选项】->【显示指针位置】,打开【显示指针位置】,然后在屏幕上点击某个元素,在屏幕的顶部可以看到元素的X,Y值。

 01、Monkey自定义脚本编写 

案例讲解

启动移动端qq、然后进行登录(输入用户名、密码)。

分析:

  • 知道qq的包与lanchable-activity的名字

  • 要操作用户名、密码,要知道具体的元素

  • 操作步骤需要组织(脚本)

02、脚本的设计

确定被测应用的包名与launchable-activity

注:代码可以左右滑动哦​​​​

##方式1:C:\Users\Leo>aapt dump badging C:\Users\Leo\Desktop\mobileqq_android.apkpackage: name='com.tencent.mobileqq' versionCode='1010' versionName='7.9.9'launchable-activity: name='com.tencent.mobileqq.activity.SplashActivity'##方式2:C:\Users\Leo>aapt dump badging C:\Users\Leo\Desktop\mobileqq_android.apk | find "launchable-activity"launchable-activity: name='com.tencent.mobileqq.activity.SplashActivity'  label='QQ' icon=''C:\Users\Leo>aapt dump badging C:\Users\Leo\Desktop\mobileqq_android.apk | find "pack"package: name='com.tencent.mobileqq' versionCode='1010' versionName='7.9.9'##方式3:C:\Users\Leo>aapt dump badging C:\Users\Leo\Desktop\mobileqq_android.apk | findstr packagepackage: name='com.tencent.mobileqq' versionCode='1010' versionName='7.9.9'C:\Users\Leo>aapt dump badging C:\Users\Leo\Desktop\mobileqq_android.apk | findstr launchable-activitylaunchable-activity: name='com.tencent.mobileqq.activity.SplashActivity'  label='QQ' icon=''

编写脚本(脚本的文件格式随意,后缀名随意txt)

注:代码可以左右滑动哦

#头文件type = raw eventscount = 1speed = 1.0
#启动qq,并测试start data >>
LaunchActivity(com.tencent.mobileqq,com.tencent.mobileqq.activity.SplashActivity)UserWait(10000)
Tap(134,891,1000) #点击登录UserWait(5000)
Tap(96,198,1000) #点击账号文本框UserWait(3000)
Tap(189,164,1000) #点击账号文本框,变化后的位置,UserWait(3000)DispatchString(3298373768)UserWait(3000)
Tap(134,210,1000) #点击密码文本框UserWait(5000)DispatchString(ABCD12345)UserWait(5000)
Tap(276,274,1000)

执行脚本

注:代码可以左右滑动哦

C:\Users\Leo>adb connect 127.0.0.1:62001already connected to 127.0.0.1:62001C:\Users\Leo>adb push C:\Users\Leo\Desktop\ScriptQq.txt /sdcardC:\Users\Leo\Desktop\ScriptQq.txt: 1 fi... pushed. 0.0 MB/s (519 bytes in 0.070s)C:\Users\Leo>adb shell monkey -f /sdcard/ScriptQq.txt -v 1

结果


最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值