博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
monkeyrunner学习笔记(1)- monkeyrunner入门
阅读量:4685 次
发布时间:2019-06-09

本文共 2013 字,大约阅读时间需要 6 分钟。

monkeyrunner简介

  • monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。
  • 主要设计目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件
  • 在工作站上通过API定义的特定命令和事件控制设备或模拟器。
  • 与monkey工具无关monkeyrunner工具使用Jython,你可以通过Python语法访问API中的常量、类和方法monkeyrunner工具使用Jython,你可以通过Python语法访问API中的常量、类和方法
    • monkey直接运行于设备或模拟器的adb shell,生成用户或系统事件的伪随机流
    • monkeyrunner则从workstation通过api发送特定命令和事件来控制设备或模拟器
  • monkeyrunner工具使用Jython,你可以通过Python语法访问API中的常量、类和方法

monkeyrunner测试类型

  1. 多设备控制:monkeyrunner API可以将一个或多个测试套件(test suites)应用于多台设备。功能测试: monkeyrunner可以为一个应用自执行从头到尾的自动化测试。功能测试: monkeyrunner可以为一个应用自执行从头到尾的自动化测试。 
    • 设备可以是通过物理连接在一起,也可以是同时启动所有的模拟器,或者是两者的混合
    • 通过程序控制依次进行连接,然后运行一个或多个测试
  2. 功能测试: monkeyrunner可以为一个应用自执行从头到尾的自动化测试。 
  3. 回归测试:monkeyrunner可以运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。
  4. 可扩展的自动化:monkeyrunner 是一个api工具包,你自己可以开发一套基于python模块和程序的系统,来控制Android设备。
    • 可以使用标准的Python os和subprocess模块来调用Android Debug Bridge这样的Android工具。
    • 可以为monkeyrunner API添加自己的类

一个简单的monkeyrunner程序

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage#returning a MonkeyDevice objectdevice = MonkeyRunner.waitForConnection() #returns a booleandevice.installPackage(r'C:\Users\Administrator\Desktop\mrtest\demo.apk')#Runs the componentdevice.startActivity(component='com.example.android.apis/.ApiDemos')#sleep 3 secondsMonkeyRunner.sleep(3) device.press('KEYCODE_HOME', MonkeyDevice.DOWN_AND_UP)result = device.takeSnapshot()result.writeToFile(r'C:\Users\Administrator\Desktop\mrtest\shot1.png', 'png')MonkeyRunner.alert("Test Completed!", "alert", "ok") 

monkeyrunner运行

两种运行方式:

1. 提供一个py文件作为运行参数,则monkeyrunner将视文件内容为Python程序运行 
2. 不加py文件参数,则monkeyrunner会启动一个交互会话(interactive session)
两种方法都需要调用SDK目录tools子目录下的monkeyrunner

monkeyrunner -plugin 
参数 说明
-plugin <plugin_jar> (可选) 声明一个包含monkeyrunner插件的jar文件。如果需要包含多个文件,可以通过反复使用该参数实现。
<program_filename> 如果提供了这个参数,monkeyrunner命令会将这个文件中的内容作为一个Python程序来运行。如果未提供该参数,monkeyrunner命令会启动一个交互回话(interactive session)
<program_options> (可选)<program_file>指明的程序所需的标记和参数

 

转载于:https://www.cnblogs.com/WangKangReg/p/4488453.html

你可能感兴趣的文章
C#中小数点后保留两位小数,四舍五入的函数及使用方法(转)
查看>>
CF GYM 100703A Tea-drinking
查看>>
Servlet 与 Ajax 交互一直报status=parsererror
查看>>
python 字符串转变量方法
查看>>
接口型模式
查看>>
C#中使用SqlBulkCopy的批量插入和OracleBulkCopy的批量插入
查看>>
vue2.0读书笔记1-基础
查看>>
转iphone如何调试EXC_BAD_ACCESS
查看>>
session 与 cookie的区别用法
查看>>
decorator在Python中的作用
查看>>
详谈kubernetes滚动更新-1
查看>>
JQuery学习三(隐式迭代和节点遍历)
查看>>
铁乐学Python_day06-整数和字符串小数据池
查看>>
const char *p" 和 "char * const p" 有何区别
查看>>
【机器学习实验】使用朴素贝叶斯进行文本的分类
查看>>
Python心得基础篇【10】装饰器
查看>>
更改tomcat端口号方法,Several ports (8005, 8080, 8009)
查看>>
软件工程理论、方法与实践(第六章)
查看>>
交换机,路由器,集线器,有什么区别
查看>>
使用 Windows Vista 的凭据提供程序创造自定义的登录体验
查看>>