安卓自动化测试--Momkey 自定义脚本实现自动化

作者:神秘网友 发布时间:2021-02-23 17:20:15

安卓自动化测试--Momkey 自定义脚本实现自动化

MonkeyScript

MS 是官方提供的,除了像猴子一样随机乱点之外,还可以通过编写脚本的形式,完成一系列固定的操作。MS 提供一整套完善的 API 来进行支持,主要还是基于坐标点的操作,包含常用的:点击、长按、输入、等待等操作。

脚本用法

1、LaunchActivity(pkg_name, cl_name):启动应用的Activity。参数:包名和启动的Activity。
2、Tap(x, y, tapDuration): 模拟一次手指单击事件。参数:x,y为控件坐标,tapDuration为点击的持续时间,此参数可省略。
3、UserWait(sleepTime): 休眠一段时间
4、DispatchPress(keyName): 按键。参数: keycode。

5、RotateScreen(rotationDegree, persist): 旋转屏幕。 参数:rotationDegree为旋转角度, e.g. 1代表90度;persist表示旋转之后是否固定,0表示旋转后恢复,非0则表示固定不变。
6、DispatchString(input): 输入字符串。
7、DispatchFlip(true/false): 打开或者关闭软键盘。
8、PressAndHold(x, y, pressDuration): 模拟长按事件。
9、Drag(xStart, yStart, xEnd, yEnd, stepCount): 用于模拟一个拖拽操作。
10、PinchZoom(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End, stepCount): 模拟缩放手势。
LongPress(): 长按2秒。
11、DeviceWakeUp(): 唤醒屏幕。
12、PowerLog(power_log_type, test_case_status): 模拟电池电量信息。
13、WriteLog(): 将电池信息写入sd卡。
14、RunCmd(cmd): 运行shell命令。
15、DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFlags): 向指定位置,发送单个手势。
16、DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFilags): 发送按键消息。
17、LaunchInstrumentation(test_name,runner_name): 运行一个instrumentation测试用例。
18、DispatchTrackball: 模拟发送轨迹球事件。
19、ProfileWait: 等待5秒。
20、StartCaptureFramerate(): 获取帧率。
21、EndCaptureFramerate(input): 结束获取帧率。

脚本规格

#头部信息
type = raw events
count =1
speed = 1.0

 

#启动测试
start data 

 

具体例子:

#头部信息
type = raw events
count =1
speed = 1.0

#启动测试
start data 

LaunchActivity(com.tt.test, com.com.tt.test.MainActivity)

#点击登录
Tap(116,330,3000)
UserWait(2000)

#选择密码登录
Tap(140,543, 3000)
UserWait(2000)

#点击账号输入框
Tap(226,543,2000)
UserWait(2000)

#输入账号
DispatchString(966104405)
UserWait(2000)

#点击密码输入框
UserWait(2000)

Tap(221,730, 2000)
#输入密码
UserWait(2000)
DispatchString(123456)
UserWait(2000)
#点击登录
Tap(140,961,2000)

  

用例执行:

把用例传到手机上,然后用adb命令执行:

adb push D:\mon.mks  /sdcard

adb shell monkey -f /sdcard/mon.mks -v 1

#1代表执行次数,可以参考monkey的命令
#脚本执行也时基于Monkey命令,两者结合使用

  

Monkey 介绍

Monkey测试时Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕,滑动Trackall、按键等操作来对设备上的程序进行压力测试,检查程序多久的时间会发生异常。

Monkey用法

基本语法:

$ adb shell monkey [packageName] [options]

#实例
$ adb shell monkey -p com.tencent.test --pct-touch 30 -v 500

可选参数如下:

九个事件

--pct-touch percent0

调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)(——点击事件,涉及down、up)

--pct-motion percent1

调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成) (——注:move事件,涉及down、up、move三个事件)

--pct-trackball percent2

调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)--(轨迹球)

--pct-nav percent3

调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)

--pct-majornav percent4

调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)

--pct-syskeys percent5

调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)

--pct-appswitch percent6

调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法。(从一个Activity跳转到另一个Activity)

--pct-flip percent7

调整“键盘翻转”事件的百分比。

--pct-anyevent percent8

调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等。

红色的数字对应下面百分比对应的数字。比如下图中0:15.0%,表示分配--pct-touch事件15%。测试100次分配15次测试down-up。

百分比控制

如果在monkey参数中不指定上述参数,这些动作都是随机分配的,9个动作其每个动作分配的百分比之和为100%,我们可以通过添加命令选项来控制每个事件的百分比,进而可以将操作限制在一定的范围内。

参考文章:

https://blog.csdn.net/sinat_41688684/article/details/82868809utm_medium=distribute.pc_relevant.none-task-blog-searchFromBaidu-9.controldist_request_id=630237c5-0350-4a53-a718-1be732f26049depth_1-utm_source=distribute.pc_relevant.none-task-blog-searchFromBaidu-9.control

https://blog.csdn.net/huangwei858/article/details/47660581

安卓自动化测试--Momkey 自定义脚本实现自动化 相关文章

  1. 【转】性能测试常见瓶颈分析及调优方法

    转自https://www.cnblogs.com/imyalost/p/10850811.html 性能测试常见瓶颈分析及调优方法 在性能测试过程中,最重要的一部分就是性能瓶颈定位与调优。而引发性能瓶颈的原因是多种多样的,在之前的博客:常见的性能测试缺陷有进行介绍。 这篇博客,来聊聊性能

  2. .Net Core内存回收模式及性能测试对比

    .NET Core 两种GC模式: Server GC / Workstation GC Server GC : 主要应用于多处理器系统,并且作为ASP.NET Core宿主的默认配置。它会为每个处理器都创建一个GC Heap,并且会并行执行回收操作。该模式的GC可以最大化吞吐量和较好的收缩性。这种模式的特点是初

  3. 接口自动化测试--requests库

    Requests库基本使用 requests是python实现的最简单易用的HTTP库,建议爬虫使用request import requests url = "https://api.github.com/events" 获取某个网页 import requests r = requests.get("https://api.github.com/events") print(r) # Response [200]

  4. Jenkins自动化部署详细教程(转)

    大纲 【推荐】我凭这三招轻松拿到offer.pdf(吐血整理) 1.背景 在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试; 或者前后端分离后,经常会修改接口,然后重新部

  5. jmeter实现api自动化测试

    1 介绍 2 环境安装 3 准备工作 4 环境配置 5 web页面显示测试报告 1. 介绍 文章介绍了通过jmeter事先录制api脚本,然后使用ant进行编译,最后生成html的接口测试报告,并且通过web展示。 这种测试主要应用于持续集成环境中,在运维部署代码完成之后,迅速对

  6. 安卓自动化打包(基于gradle)

    1 前言 2 编译环境安装 3 开始编译 4 每日自动打包实现 1. 前言 工作关系,需要做安卓环境的自动打包,领导要求公司产品、测试、开发等小伙伴每天来上班之前,可以在指定位置下载开发,测试,生产环境最新的安卓版本安装包,可以每日验证产品开发进度以及及

  7. 基于cobbler的自动化安装实践

    1 Cobbler介绍 2 Cobbler部署 2.1 环境介绍 2.2 部署cobbler 3 配置cobbler管理DHCP 3.1 Cobbler管理DHCP服务器介绍 3.2 Cobbler管理DHCP服务器配置 4 Cobbler导入镜像 5 Kickstart文件生成 6 在装机时设置Centos7网卡为eth0 7 设置cobbler引导页面 8 系统安

  8. 每日打包之自动化安装(打通app自动化测试)

    1 前言 2 实现介绍 3 环境搭建 3.1 电脑环境搭建: 3.2 手机环境配置 4 我的安装包获取方式 5 手动安装apk应用 6 Python 自动安装apk应用 1. 前言 我们前段时间实现了安卓和ios的自动打包,可以每天把最新的代码制作成安装包,放到下载目录,让产品,测试等

  9. Sysbench 测试磁盘性能

    简介 硬盘作为电脑的一个主要部件,不仅肩负着记录一切数据信息的重要职责,而且它的性能对整个系统的性能有直接影响。由于磁存储介质的发展较一日千里的半导体技术落后,所以硬盘在整机系统中很多时候充当着一个? 瓶颈 ? 的角色。如果把一台整机比喻成一只

  10. mysql8.0.19自动化安装脚本

    #!/bin/sh. /etc/init.d/functions#创建mysql用户id mysql /dev/null || { useradd -r -d /data/mysql -s /sbin/nologin mysql ; action "创建用户成功"; }#安装依赖包yum install -q -y libaio perl-Data-Dumper libncurses* /dev/null#创建mysql的家目录文

每天更新java,php,javaScript,go,python,nodejs,vue,android,mysql等相关技术教程,教程由网友分享而来,欢迎大家分享IT技术教程到本站,帮助自己同时也帮助他人!

Copyright 2020, All Rights Reserved. Powered by 跳墙网(www.tqwba.com)|网站地图|关键词