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, 就可以很简单的直接写程序了,不需要做如何配置. 对新手来说,这是非常好的“初体验”, 会激发初学者的自信和兴趣. 而有些语言的开发环 ...
随机推荐
- ASP.NET Core 3.x Razor视图运行时刷新实时编译
前言: 很长一段时间没有写过ASP.NET Core Razor(.cshtml)视图开发WEB页面了,今天刚好把之前做的一个由ASP.NET Core 2.2+Razor开发的项目升级到ASP.NE ...
- 《Offer一箩筐》求职之前你必须知道的 4 件事!!
「MoreThanJava」 宣扬的是 「学习,不止 CODE」. 如果觉得 「不错」 的朋友,欢迎 「关注 + 留言 + 分享」,文末有完整的获取链接,您的支持是我前进的最大的动力! Hi~ 这里是 ...
- C#知识点:抽象类和接口浅谈
首先介绍什么是抽象类? 抽象类用关键字abstract修饰的类就是叫抽象类,抽象类天生的作用就是被继承的,所以不能实例化,只能被继承.而且 abstract 关键字不能和sealed一起使用,因为se ...
- shell小技巧(1)计算一个文件中空行数量
方法1: grep -E "^$" 1.txt | wc -l 详解:在网上摘抄,个人觉得不使用-E参数也行,利用正则^$可帅选出空行 方法2: file="1.txt& ...
- pwnable.kr之fd
题目如图: 在终端输入:ssh fd@pwnable.kr -p2222 连接到远程终端,如图: 输入ls -l,查看文件: 输入whoami,查看自身用户名称: 根据题目意思我们只要打开flag文件 ...
- cookie和session讲解
1.cookie是什么? 保存在浏览器本地上的一组组键值对 2.session是什么? 保存在服务器上的一组组键值对 3.为什么要有cookie? HTTP是无协议状态,每次请求都是互相独立的,没有办 ...
- 操作BOM对象
操作BOM对象 目录 操作BOM对象 1. 浏览器介绍 2. window 3. Navigator(不建议使用) 4. screan 5. location(重要) 6. document(内容:D ...
- 备忘录:SQL SERVER2014 出现:“Cannot find one or more components”
目录 1. 起因 2. 解决方案 3. 备注 4. 参考 2020年9月13日 00:40:09-shanzm 1. 起因 因为卸载vs2015的时候,使用了一个VS2013/2015卸载工具Tota ...
- list列表(也叫数组),以及常用的一些方法
列表的表达: 元祖tuple,元祖是不可被修改的列表 1.列表的增,list.append(元素).或list.insert(index,元素) 2.列表的删,list.pop(可指定index也可不 ...
- [05] 通过P/Invoke加速C#程序
通过P/Invoke加速C#程序 任何语言都会提供FFI机制(Foreign Function Interface, 叫法不太一样), 大多数的FFI机制是和C API. C#提供了P/Invoke来 ...