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

news/2024/5/5 15:21:55/文章来源:https://blog.csdn.net/m0_58026506/article/details/126972798

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

结果


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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_11467.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你到底是前端人还是搬砖人?推荐一款国产摸鱼神器!

☀️ 前言 大家好我是小卢,前几天在群里见到有群友抱怨一周内要完成这么一个大概20~30页的小程序。 群友: 这20多个页面一个星期让我开发完,我是不相信😮‍💨。群友1: 跑吧,这公司留着没用了,不…

【Python 技能树共建】Beautiful Soup

Beautiful Soup 模块是什么 初学 Python 爬虫,十之八九你采集的目标是网页,因此快速定位到网页内容,就成为你面临的第一道障碍,本篇博客就为你详细说明最易上手的网页元素定位术,学完就会系列。 本文核心使用到的是 …

Spring Security 中的RBAC角色和权限

在这篇文章中,我们将看看使用 Spring boot的R ole B ased A ccess Control ( RBAC )。 了解 RBAC 在 RBAC 模型中存在三个关键实体。他们是, 用户或主题 ——执行操作的系统参与者。它可以代表一个自然人、一个自动帐户,甚至是另一个应用程…

专业思维导图软件 Mindjet MindManager 2021下载

Mindjet MindManager 2021 是一款专业的思维导图软件,美国Mindjet公司开发,一款视觉工作管理的思维导图软件,界面友好功能强大,头脑风暴、会议管理及项目管理工具帮您轻松创建思维导图,有序组织思维、资源和项目进程。…

win10+cuda+cudnn+anconda+pytorch+pycharm全家桶安装

1、下载安装cuda: 网址:CUDA Toolkit 11.7 Update 1 Downloads | NVIDIA Developer 网址下方可以找到以前版本 安装完后,可以在命令行窗口输入nvcc --version查看cuda版本是否正确 显卡驱动版本与cuda版本对应关系: 2、安装cud…

操作系统实验四 进程间通信

★观前提示:本篇内容为操作系统实验内容,代码等内容经测试没有问题,但是可能会不符合每个人实验的要求,因此以下内容建议仅做思路参考。 目录一、实验目的二、实验内容三、具体实现四、实验总结一、实验目的 多道程序设计中&…

【前端面试】-- 必知必会的promise题

Promise 想必大家都十分熟悉,想想就那么几个 api,可是你真的了解 Promise 吗? 请迎接测试: 以下 promise 均指代 Promise 实例,环境是 Node.js 题目一: const promise new Promise((resolve, reject) > {conso…

ES8JC-ASEMI快恢复二极管ES8JC

编辑:ll ES8JC-ASEMI快恢复二极管ES8JC 型号:ES8JC 品牌:ASEMI 封装:SMC 特性:快恢复二极管 正向电流:8A 反向耐压:600V 恢复时间:35ns 引脚数量:2 芯片个数:1 芯片尺寸:84MIL 浪涌电流:125A 漏电流:<5ua 工作温度:-40℃~150℃ 包装方式:30/管;3000/箱 备受…

华为云各Region网络延迟实测

一、测试综述 测试内容&#xff1a; 序号 评测内容 测试日期 1 华为云各大区公网接入网络延迟 2022-09-20 2 华为云各大区之间网络延迟&#xff08;通过公网&#xff09; 2022-09-20 3 华为云各大区之间网络延迟&#xff08;通过云连接&#xff09; 2022-09-20 测…

【Linux】聊聊删文件的那些破事

聊聊删文件的那些破事前言正文rm命令find命令perl方式10w文件删除对比50w文件删除对比100w文件删除对比结语前言 在操作系统的日常运维中&#xff0c;我们经常会做文件的创建、删除、修改操作&#xff0c;尤其是删除&#xff0c;无论是定期清理日志文件&#xff0c;还是做完一…

传统光流方法汇总

又搬运了一个3d视觉相关的~~ 还是先道歉 就是学习用 还是公交上回家看那种 ~~ 这次分享传统光流方法汇总及其在深度学习中的应用&#xff01;&#xff08;基于相位/能量/匹配/变分&#xff09; 回望传统光流估计方法 近年来&#xff0c;随着深度学习技术的快速发展&#xff…

嵌入式分享合集63

一、PCB为什么一定要做阻抗 在具有电阻、电感和电容的电路里&#xff0c;对交流电所起的阻碍作用叫做阻抗。阻抗常用Z表示&#xff0c;是一个复数&#xff0c;实部称为电阻&#xff0c;虚部称为电抗。 其中电容在电路中对交流电所起的阻碍作用称为容抗&#xff0c;电感在电路…

Pr:多机位编辑

很多时候一个机位满足不了影视创作的需求。比如拍摄人物动作&#xff0c;如果能使远景、近景、特写等一些镜头相互衔接&#xff0c;将会使得角色显得更加丰富饱满。不同的景别传达着不同的信息&#xff0c;更容易交待环境和表达角色的情绪。早期人们在拍摄的同时完成多机位切换…

应用层 HTTP 代理服务器转发消息时的相关头部 请求头 X-Forwarded-For

在http消息传递过程当中会经过很多正向代理服务器和反向代理服务器&#xff0c;这些代理服务器在转发消息的时候会涉及到http的头部&#xff0c;下面将会介绍这些头部&#xff0c;包括由于存在这些代理服务器所以客户端和源服务器之前有许多的tcp连接&#xff0c;有一些http头部…

Flutter快学快用15 服务通信:Flutter 中常见的网络协议

上一课时之前&#xff0c;我们的接口都是在代码中模拟假数据&#xff0c;并没有从服务端获取数据&#xff0c;但是在实际开发中&#xff0c;必须与服务端进行交互。本课时主要介绍在 Flutter 中常见的网络传输协议序列化方式&#xff0c;并对其中比较常用的协议进行简单实践&am…

大数据培训技术phoenix表操作

phoenix表操作 1 显示所有表 &#xff01;table 或 &#xff01;tables 2 创建表 CREATE TABLE IF NOT EXISTS us_population ( State CHAR(2) NOT NULL, City VARCHAR NOT NULL, Population BIGINT CONSTRAINT my_pk PRIMARY KEY (state, city)); 如下显示&#xff1a; 在p…

超级基础篇_疑惑实验

1、多态&#xff1a; 多态是什么&#xff1f; 多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口&#xff0c;使用不同的实例而执行不同操作多态的优点 1.消除类型之间的耦合关系 2. 可替换性 3. 可扩充性 …

树的应用 —— 二叉树:二叉树的性质

树的应用 —— 二叉树 二叉树&#xff08;Binary Tree&#xff09;是n &#xff08;n ≥0&#xff09;个节点构成的集合&#xff0c;或为空树&#xff08;n 0&#xff09;&#xff0c;或为非空树。 对于非空树T &#xff0c;要满足&#xff1a; ①有且仅有一个被称为根的节点…

FFmpeg入门详解之20:视频编码原理简介

视频为何需要压缩&#xff1f; 原因&#xff1a;未经压缩的数字视频的数据量巨大 ● 存储困难 ○ 一G只能存储几秒钟的未压缩数字视频。 ● 传输困难 ○ 1兆的带宽传输一秒的数字电视视频需要大约4分钟。 主要压缩了什么东西&#xff1f; 原始视频压缩的目的是去除冗余信息&a…

结构体的理解

结构体前言结构体&#xff1f;定义变量如何赋初值&#xff1f;结构体的访问结构体的嵌套使用注意事项结构体的大小内存对齐默认对齐数的修改为什么存在内存对齐&#xff1f;结构体传参位段什么是位段&#xff1f;位段的内存分配深入剖析位段“存”数据位段的“取”位段的跨平台…