MonkeyRunner+Python自动化测试一
- 多设备控制:monkeyrunner API 可以跨多个设备或模拟器应用一个或多个测试套件。您可以通过物理方式连接所有设备并/或同时启动所有模拟器,以编程方式依次连接到每个设备,然后运行一个或多个测试。您还可以编程方式启动模拟器配置,运行一个或多个测试,然后关闭模拟器。
- 功能测试:monkeyrunner 可以对 Android 应用自始至终地运行自动化测试。您可以通过按键或轻触事件提供输入值,并以屏幕截图的形式查看结果。
- 回归测试 - monkeyrunner 可通过以下方法测试应用稳定性:运行某个应用,然后将它的输出屏幕截图与一组已知正确的屏幕截图进行比较。
- 可扩展的自动化 - 由于 monkeyrunner 是一个 API 工具包,因此您可以开发一整套系统(包括基于 Python 的模块和用于控制 Android 设备的程序)。除了使用 monkeyrunner API 本身,您还可以使用标准 Python os 和 subprocess模块来调用 Android 工具,例如 Android 调试桥。
|
方法
|
|
|
void
|
alert (string message, string title, string okTitle)
针对运行当前程序的进程显示一个提醒对话框。
|
|
integer
|
choice(string message, iterable choices, string title)
显示一个对话框,其中列出了针对运行当前程序的进程的选项。
|
|
void
|
help(string format)
使用指定格式以类似于 Python 的 pydoc 工具的样式显示 monkeyrunner API 引用。
|
|
string
|
input (string message, string initialValue, string title, string okTitle, string cancelTitle)
显示一个接受输入的对话框。
|
|
void
|
sleep (float seconds)
将当前程序暂停指定的秒数。
|
|
MonkeyDevice
|
waitForConnection (float timeout, string deviceId)
尝试在 monkeyrunner 后端与指定的设备或模拟器之间建立连接。返回的是MonkeyDeviced实例
|
|
常量
|
||
|
string
|
DOWN
|
将此参数与 press() 或 touch() 的 type 参数一起使用可发送 DOWN 事件。
|
|
string
|
UP
|
将此参数与 press() 或 touch() 的 type 参数一起使用可发送 UP 事件。
|
|
string
|
DOWN_AND_UP
|
将此参数与 press() 或 touch() 的 type 参数一起使用可发送 DOWN 事件,紧跟着发送 UP 事件。
|
|
方法
|
|
|
void
|
broadcastIntent (string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, iterable flags)
向此设备广播 Intent,就像 Intent 来自应用一样。
|
|
void
|
drag (tuple start, tuple end, float duration, integer steps)
在此设备的屏幕上模拟拖动手势(轻触、按住和移动)。
|
|
object
|
getProperty (string key)
在给定系统环境变量的名称后,返回此设备的相应值。此方法的详细说明中列出了可用的变量名称。
|
|
object
|
getSystemProperty (string key)
. adb shell getprop <key>. This is provided for use by platform developers. 的等效 API
|
|
void
|
installPackage (string path)
将包含在 packageFile 中的 Android 应用或测试软件包安装到此设备上。如果应用或测试软件包已安装,则会被替换。
|
|
dictionary
|
instrument (string className, dictionary args)
在 Android 插桩下运行指定的组件,并在字典中返回结果,该字典的具体格式由正在运行的组件决定。该组件必须已存在于此设备上。
|
|
void
|
press (string name, dictionary type)
将 type 指定的按键事件发送到键码(name)指定的按键。
|
|
void
|
reboot (string into)
将此设备重新启动到 bootloadType 指定的引导加载程序中。
|
|
void
|
removePackage (string package)
从此设备中删除指定的软件包,包括其数据和缓存。
|
|
object
|
shell (string cmd)
执行 adb shell 命令并返回结果(如果有)。
|
|
void
|
startActivity (string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, flags)
通过发送根据提供的参数构造的 Intent,在此设备上启动一个 Activity。
|
|
MonkeyImage
|
takeSnapshot()
捕获此设备的整个屏幕缓冲区,并生成一个 MonkeyImage 对象,其中包含当前显示内容的屏幕截图。
|
|
void
|
touch (integer x, integer y, integer type)
将 type 指定的轻触事件发送到由 x 和 y 指定的屏幕位置。
|
|
void
|
type (string message)
将消息中包含的字符发送到此设备,就好像这些字符是用设备键盘输入的一样。这等同于使用按键事件类型 DOWN_AND_UP 针对 message 中的每个键码调用 press()。
|
|
void
|
wake ()
唤醒此设备的屏幕。
|
|
属性组
|
属性
|
说明
|
备注
|
|
build
|
board
|
设备主板的代号
|
请参阅 Build
|
|
brand
|
为其定制操作系统的运营商或提供商。
|
||
|
device
|
设备设计名称。
|
||
|
fingerprint
|
当前正在运行的 Build 的唯一标识符。
|
||
|
host
|
|||
|
ID
|
变更清单编号或标签。
|
||
|
model
|
设备的最终用户可见名称。
|
||
|
product
|
整体产品名称。
|
||
|
tags
|
描述 Build 的逗号分隔标记,例如“unsigned”和“debug”。
|
||
|
type
|
Build 类型,例如“user”或“eng”。
|
||
|
user
|
|||
|
CPU_ABI
|
本机代码指令集的名称,格式为 CPU 类型加 ABI 惯例。
|
||
|
manufacturer
|
产品/硬件制造商。
|
||
|
version.incremental
|
源代码控制系统用来表示此版本的软件的内部代号。
|
||
|
version.release
|
此版本的软件的用户可见名称。
|
||
|
version.sdk
|
与此版本的操作系统相关联的用户可见 SDK 版本。
|
||
|
version.codename
|
当前开发代号,如果此版本的软件已发布,则为“REL”。
|
||
|
display
|
width
|
设备的显示屏宽度(以像素为单位)。
|
如需了解详情,请参阅 DisplayMetrics。
|
|
height
|
设备的显示屏高度(以像素为单位)。
|
||
|
density
|
显示屏的逻辑密度。系统会按照此系数调整 DIP(密度无关像素)单位,以适应设备的分辨率。调整 DIP 是为了使 1 DIP 相当于 160 ppi 显示屏上的一个像素。例如,在 160 dpi 屏幕上,密度为 1.0,而在 120 dpi 屏幕上,密度为 0.75。
该值并非与实际屏幕尺寸完全相符,但会根据显示屏 DPI 的大幅变化进行调整。如需了解详情,请参阅 density。
|
||
|
am.current
|
package
|
当前正在运行的软件包的 Android 软件包名称。
|
am.current 键可返回当前正在运行的 Activity 的相关信息。
|
|
action
|
当前 Activity 的操作。其格式与软件包清单中 action 元素的 name 属性相同。
|
||
|
comp.class
|
启动当前 Activity 的组件的类名称。如需了解详情,请参阅 comp.package。
|
||
|
comp.package
|
启动当前 Activity 的组件的软件包名称。组件由软件包名称和软件包所包含的类的名称指定。
|
||
|
data
|
启动当前 Activity 的 Intent 中包含的数据(如果有)。
|
||
|
categories
|
由启动当前 Activity 的 Intent 指定的类别。
|
||
|
clock
|
realtime
|
自设备重新启动后经过的毫秒数,包括深度睡眠时间。
|
如需了解详情,请参阅 SystemClock。
|
|
uptime
|
自设备重新启动后经过的毫秒数,不包括深度睡眠时间
|
||
|
millis
|
从 UNIX 纪元开始算起的当前时间(以毫秒为单位)。
|
|
方法
|
|
|
string
|
convertToBytes (string format)
将当前图片转换为特定格式并以字符串形式返回该图片,然后您可以将其作为二进制字节的可迭代对象来访问。
|
|
tuple
|
getRawPixel (integer x, integer y)
以 (a,r,g,b) 格式的整数元组形式返回图片位置 (x,y) 处的单个像素。
|
|
integer
|
getRawPixelInt (integer x, integer y)
以 32 位整数形式返回图片位置 (x,y) 处的单个像素。
|
|
MonkeyImage
|
getSubImage (tuple rect)
根据当前图片的矩形选择区创建一个新的 MonkeyImage 对象。
|
|
boolean
|
sameAs (MonkeyImage other, float percent)
将此 MonkeyImage 对象与另一个对象进行比较,并返回比较结果。percent 参数指定两张“等同”的图片之间可以存在
的百分比差异。
|
|
void
|
writeToFile (string path, string format)
将当前图片以 format 指定的格式写入 filename 指定的文件。如果未提供扩展名且未指定格式,则使用默认格式“png”
(Portable Network Graphics)。
|
MonkeyRunner+Python自动化测试一的更多相关文章
- Python自动化测试入门
在当前自动化测试中,最火的语言就是Python,很容易上手.然后就是Java+testng+appium做的UI自动化测试.下面我们就用Python脚本,做自动化集成测试. (1)获取APK文件中ID ...
- python自动化测试(2)-自动化基本技术原理
python自动化测试(2) 自动化基本技术原理 1 概述 在之前的文章里面提到过:做自动化的首要本领就是要会 透过现象看本质 ,落实到实际的IT工作中就是 透过界面看数据. 掌握上面的这样的本领 ...
- python自动化测试(4)-使用第三方python库技术实现
python自动化测试(4)-使用第三方python库技术实现 1 概述 关于测试的方法论,都是建立在之前的文章里面提到的观点: 功能测试不建议做自动化 接口测试性价比最高 接口测试可以做自动化 ...
- python自动化测试(3)- 自动化框架及工具
python自动化测试(3) 自动化框架及工具 1 概述 手续的关于测试的方法论,都是建立在之前的文章里面提到的观点: 功能测试不建议做自动化 接口测试性价比最高 接口测试可以做自动化 后面所谈到 ...
- (学习网址)Python 自动化测试
1.Python自动化测试地址 http://www.wtoutiao.com/author/python-selenium.html 2.unittest参考网址: 1)python自动化测试报告H ...
- python 自动化测试资料
python 自动化测试资料: http://yunpan.cn/QXVvwVJsAsPnb
- selenium + python 自动化测试环境搭建
selenium + python 自动化测试 —— 环境搭建 关于 selenium Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操 ...
- android - python 自动化测试 移动互联网 - SegmentFault
android - python 自动化测试 移动互联网 - SegmentFault splinter
- Python自动化测试 -ConfigParser模块读写配置文件
C#之所以容易让人感兴趣,是因为安装完Visual Studio, 就可以很简单的直接写程序了,不需要做如何配置. 对新手来说,这是非常好的“初体验”, 会激发初学者的自信和兴趣. 而有些语言的开发环 ...
随机推荐
- SSM框架之mybatis极速入门!
- Java的安装和配置
1. 下载JDK 前往甲骨文官网(https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html)下载JDK,这里 ...
- Spring security OAuth2.0认证授权学习第三天(认证流程)
本来之前打算把第三天写基于Session认证授权的,但是后来视屏看完后感觉意义不大,而且内容简单,就不单独写成文章了; 简单说一下吧,就是通过Servlet的SessionApi 通过实现拦截器的前置 ...
- Html中让输入框input和紧接在后的按钮button在垂直方向上对齐
<table border="0px" width="360px"> <tr><td colspan="10" ...
- node.js之koa安装
默认安装了node 1.cmd中工作目录下输入npm init:一路回车即可: 2.还是在此目录下输入npm i koa:我这里是安装的淘宝镜像即是输入cpm i koa. 3.打开编辑器在文件目录下 ...
- Android 重构方案
前言 最近面试了很多候选人,发现很多同学在简历上都写得非常厉害,负责架构设计,项目重构之类的.但是问起来,很多人都说不出个所以然来.今天我们不谈架构设计,我们聊一下重构.我面试时候经常会问,你是怎么重 ...
- 217。数据中是否有重复元素(哈希表/set简法)
给定一个整数数组,判断是否存在重复元素. 如果任意一值在数组中出现至少两次,函数返回 true .如果数组中每个元素都不相同,则返回 false . 示例 1: 输入: [1,2,3,1] 输出: t ...
- SpringBoot项目整合Retrofit最佳实践,这才是最优雅的HTTP客户端工具!
大家都知道okhttp是一款由square公司开源的java版本http客户端工具.实际上,square公司还开源了基于okhttp进一步封装的retrofit工具,用来支持通过接口的方式发起http ...
- Docker应用安装
一.安装mysql 1.查看可用的 MySQL 版本 访问 MySQL 镜像库地址:https://hub.docker.com/_/mysql?tab=tags . 可以通过 Sort by 查看其 ...
- 并发编程(四)Thread类详解
一.引言 Thread类中存在着许多操作线程的方法,学习Thread类是非常有必要的,前面我们也嘘唏了创建线程的几种方式,若线程的创建不是以继承Thread类的方式创建的,那我们又改如何使用Threa ...