MonkeyRunner在自动化测试里的应用场景!

news/2025/2/16 1:20:25/

MonkeyRunner是Android提供的一个自动化测试工具,主要用于对Android设备或模拟器进行功能和压力测试。以下是一些MonkeyRunner在自动化测试中的应用场景及实例代码:

图片

基本操作测试

图片

点击屏幕上的特定位置或元素。

模拟滑动和手势操作。

发送按键事件。

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice# 连接到设备或模拟器device = MonkeyRunner.waitForConnection()# 点击屏幕上的坐标(500, 500)device.touch(500, 500, MonkeyDevice.DOWN_AND_UP)# 模拟向右滑动操作device.drag((200, 200), (800, 200), 0.5, 5)# 发送回退键事件device.press('KEYCODE_BACK', MonkeyDevice.DOWN_AND_UP)

图片

应用安装和卸载

图片

自动安装APK文件。

测试应用的启动和关闭。

卸载已安装的应用。

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice# 连接到设备或模拟器device = MonkeyRunner.waitForConnection()# 安装APK文件device.installPackage('/path/to/my_app.apk')# 启动应用(假设包名是com.example.myapp)device.startActivity(component='com.example.myapp/.MainActivity')# 等待一段时间(例如3秒)让应用加载MonkeyRunner.sleep(3000)# 截取屏幕快照并保存为图片snapshot = device.takeSnapshot()snapshot.writeToFile('/path/to/screenshot.png', 'png')# 关闭应用device.shell('am force-stop com.example.myapp')# 卸载应用device.uninstallPackage('com.example.myapp')

图片

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

UI自动化测试

图片

查找屏幕上特定的UI元素。

模拟对UI元素的操作。

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage# 连接到设备或模拟器device = MonkeyRunner.waitForConnection()# 截取屏幕快照snapshot = device.takeSnapshot()# 查找屏幕上具有特定描述符的UI元素image_template = MonkeyImage.openFromFile('/path/to/ui_element_template.png')elements = snapshot.findObjects(image_template)if elements:    # 对找到的第一个UI元素进行操作    element = elements[0]    x, y = element.getCenter()    device.touch(x, y, MonkeyDevice.DOWN_AND_UP)else:    print("UI element not found.")

图片

性能测试

图片

计算操作的执行时间。

监控系统资源的使用情况。

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice# 连接到设备或模拟器device = MonkeyRunner.waitForConnection()# 开始计时start_time = MonkeyRunner.currentTimeMillis()# 执行一系列操作...device.touch(500, 500, MonkeyDevice.DOWN_AND_UP)device.drag((200, 200), (800, 200), 0.5, 5)device.press('KEYCODE_BACK', MonkeyDevice.DOWN_AND_UP)# 结束计时并计算执行时间end_time = MonkeyRunner.currentTimeMillis()execution_time = end_time - start_timeprint(f"Operations took {execution_time} milliseconds.")# 获取系统的CPU和内存使用情况cpu_info = device.getCPUUsage()memory_info = device.getMemoryInfo()print(f"CPU usage: {cpu_info.user}%, {cpu_info.system}%")print(f"Memory usage: {memory_info.free} free, {memory_info.total} total")

图片

以上就是MonkeyRunner在自动化测试中的一些应用场景和实例代码。请注意,MonkeyRunner主要适用于功能性测试和简单的用户界面测试,对于复杂的UI交互和深度逻辑验证,可能需要配合其他测试框架和工具,如 Espresso 或 UI Automator。同时,由于MonkeyRunner使用的是Java API,因此在Python脚本中调用时需要注意语法和类型转换。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!


http://www.ppmy.cn/news/1380310.html

相关文章

2023年第三届中国高校大数据挑战赛第二场赛题D题赛题:行业职业技术培训能力评价(成品论文 代码与思路 视频讲解)

赛题 中国是制造业大国,产业门类齐全,每年需要培养大量的技能娴熟的技术工人进入工厂。某行业在全国有多所不同类型(如国家级、省级等)的职业技术培训学校,进行 5 种技能培训。学员入校时需要进行统一的技能考核&…

C语言函数—库函数

函数是什么? 数学中我们常见到函数的概念。但是你了解C语言中的函数吗? 维基百科中对函数的定义:子程序 在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method, subprogram, ca…

八股文-持续更新......

文章目录 SpringSpringBootDubboMQMysqlNettyRedis并发ZookeeperMybatisElasticsearchLinux微服务ZookeeperMybatisElasticsearchLinux

day1-C++

1>提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数要求使用C风格字符串完成。 代码&#xff1a; #include <iostream> #include <string.h> using namespace std;int main() {string str ;int low 0, …

语音情感基座模型emotion2vec

在语音技术领域&#xff0c;准确理解用户的语音指令和意图是构建高效人机交互系统的基础。一个高品质的语音交互系统不仅需要理解字面上的语言内容&#xff0c;更应捕捉到说话者语音中蕴含的情感信息。这正是语音情感识别&#xff08;SER&#xff09;技术要解决的问题&#xff…

Python与FPGA——图像锐化

文章目录 前言一、图像锐化二、Python robert锐化三、Python sobel锐化四、Python laplacian锐化五、FPGA sobel锐化总结 前言 在增强图像之前一般会先对图像进行平滑处理以减少或消除噪声&#xff0c;图像的能量主要集中在低频部分&#xff0c;而噪声和图像边缘信息的能量主要…

群晖docker安装sql server

安装步骤 开启群晖 SSH&#xff0c;通过 SSH 工具连接到群晖&#xff0c;运行下面的命令拉取mssql 2019 镜像 sudo docker pull mcr.microsoft.com/mssql/server:2019-latest然后在 docker 中就可以看到该镜像&#xff1a; 在群晖 docker 共享文件夹中创建 mssql2009 文件夹 …

linux操作系统的常用命令

Linux操作系统有许多常用命令,这些命令涵盖了系统管理、文件操作、网络配置等多个方面。以下是一些常用的Linux命令: 文件和目录操作: ls:列出目录内容。cd:改变当前目录。pwd:显示当前工作目录的路径。mkdir:创建新目录。rmdir:删除空目录。cp:复制文件或目录。mv:移…