Android测试之Monkey Runner

简介: 什么是MonkeyRunnermonkeyrunner是Android sdk中自带的一个通过接收测试脚本(使用python语言编写的)来执行功能性测试的工具。

什么是MonkeyRunner

monkeyrunner是Android sdk中自带的一个通过接收测试脚本(使用python语言编写的)来执行功能性测试的工具。

MonkeyRunner的使用

步骤一:启动MonkeyRecorder,在Android sdk的tools\bin目录下新建monkey_record.py将如下代码拷贝进去。

from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner.recorder import MonkeyRecorder as recorder
device = mr.waitForConnection()
recorder.start(device)

步骤二:打开cmd进入Android sdk的tools\bin目录下执行如下操作

img_4cf758b5d28d0d7b7071ac21b608f03b.png

步骤四:进行录制

img_713e0c0698726351453940cd59ecaa8b.png
  • wait: 用来插入下一次操作的时间间隔,点击后即可设置时间,单位是秒
  • Press a Button:用来确定需要点击的按钮,包括menu、home、search,以及对按钮的press、down、up属性
  • Type Something:用来输入内容到输入框
  • Fling:用来进行拖动操作,可以向上、下、左、右,以及操作的范围
  • Export Actions:用来导出脚本,不需要后缀名,也可以添加后缀名.mr
  • Refresh Display:用来刷新手机界面,估计只有在断开手机后,重新连接时才会用到

步骤五:编写用来运行录制的脚本的脚本,需要我们在Android sdk的tools\bin新建一个文件monkey_playback.py并将如下代码拷贝进去用来运行脚本。

import sys
from com.android.monkeyrunner import MonkeyRunner

CMD_MAP = {  
   "TOUCH": lambda dev, arg: dev.touch(**arg),  
   "DRAG": lambda dev, arg: dev.drag(**arg),  
   "PRESS": lambda dev, arg: dev.press(**arg),  
   "TYPE": lambda dev, arg: dev.type(**arg),  
   "WAIT": lambda dev, arg: MonkeyRunner.sleep(**arg)  
   }  
 
#Process a single file for the specified device.  
def process_file(fp, device):  
   for line in fp:  
       (cmd, rest) = line.split("|")  
       try:  
           rest = eval(rest)  
       except:  
           print ("unable to parse options")  
           continue  
 
       if cmd not in CMD_MAP:  
           print ("unknown command: " + cmd) 
           continue  
 
       CMD_MAP[cmd](device, rest)  
 
 
def main():  
   file = sys.argv[1]  
   fp = open(file, "r")  
 
   device = MonkeyRunner.waitForConnection()  
     
   process_file(fp, device)  
   fp.close();  
     
 
if __name__ == "__main__":  
   main()

monkey_playback.py

步骤六:运行脚本,回放完成

# 在cmd命令行中输入命令:
monkeyrunner monkey_playback.py test.mr

补充:在运行monkeyrunner的时候可能会提示SWT folder '..\framework\x86_64' does not exist. Please set ANDROID_SWT to point to the folder conta,这需要我们对monkeyrunner.bat进行修改。

1).set frameworkdir=lib (纠正)==》set frameworkdir=..\lib

2).Dcom.android.monkeyrunner.bindir=..\framework -jar %jarpath% %* (纠正)==》Dcom.android.monkeyrunner.bindir=....\platform-tools -jar %jarpath% %*

个人博客:https://myml666.github.io

目录
相关文章
|
3月前
|
监控 安全 Android开发
【新手必读】Airtest测试Android手机常见的设置问题
【新手必读】Airtest测试Android手机常见的设置问题
151 0
|
3月前
|
Linux Android开发
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
43 0
|
3月前
|
安全 物联网 测试技术
构建未来:Android与IoT设备的无缝交互深入探索软件自动化测试的未来趋势
【5月更文挑战第30天】在物联网(IoT)技术快速发展的当下,Android系统因其开放性和广泛的用户基础成为了连接智能设备的首选平台。本文将探讨如何通过现代Android开发技术实现智能手机与IoT设备的高效、稳定连接,并分析其中的挑战和解决方案。我们将深入挖掘Android系统的底层通信机制,提出创新的交互模式,并通过实例演示如何在Android应用中集成IoT控制功能,旨在为开发者提供一套可行的指导方案,促进IoT生态系统的进一步发展。
|
3月前
|
Android开发 数据安全/隐私保护 iOS开发
ios和安卓测试包发布网站http://fir.im的注册与常用功能
ios和安卓测试包发布网站http://fir.im的注册与常用功能
79 0
ios和安卓测试包发布网站http://fir.im的注册与常用功能
|
3月前
|
网络协议 测试技术 网络性能优化
Android系统 以太网吞吐量和丢包测试
Android系统 以太网吞吐量和丢包测试
102 1
|
3月前
|
Java API Android开发
Android 11 修改libcore Cipher AS测试
Android 11 修改libcore Cipher AS测试
22 1
|
3月前
|
测试技术 持续交付 Android开发
安卓自动化测试:提高软件质量和可靠性
【4月更文挑战第14天】安卓自动化测试在应对移动应用的品质与可靠性挑战中扮演重要角色,提高测试效率,捕捉复杂错误。涵盖单元测试、集成测试、系统测试和UI测试,利用JUnit、Espresso、Robotium、Appium等工具。测试用例应易维护,覆盖率高,定期运行,并在稳定环境中执行。自动化测试降低长期维护成本,提升软件质量,确保应用一致性与稳定性,推动开发创新。未来工具将更智能高效,助力质量保证和用户体验优化。
47 1
|
3月前
|
存储 应用服务中间件 网络安全
Android 网络链接稳定性测试解决方案
Android 网络链接稳定性测试解决方案
85 0
|
3月前
|
监控 安全 Shell
深入探究App压力测试的关键要点:从零开始学习Monkey
Monkey是Google的自动化测试工具,用于模拟用户随机事件以测试应用的稳定性和压力。它可以在模拟器或设备上运行,通过随机点击发现潜在问题。
70 1
|
3月前
|
Linux 测试技术 Android开发
测试程序之UART 232/485适用于Android/Linux
测试程序之UART 232/485适用于Android/Linux
33 0

热门文章

最新文章