Appium自动化测试教程-自学网-monkeyrunner API
MonkeyRunner API
MonkeyRunner工具主要有三个类:
- MonkeyRunner
- MonkeyDevice
- MonkeyImage
官方API文档 :http://www.android-doc.com/tools/help/monkeyrunner_concepts.html#
1.MonkeyRunner类:
MonkeyRunner提供连接真机和模拟器、输入、暂停、警告框等方法。

常用方法
waitForConnection(float timeout,string deviceid),
from com.android.monkeyrunner import MonkeyRunner as mr
print("connect devices...")
device=mr.waitForConnection()
# device=mr.waitForConnection(5,'127.0.0.1:62001')
2.MonkeyDevice类
MonkeyDevice类提供了安装和卸载程序包、开启Activity、发送按键和点击事件、运行测试包等方法。

常用方法
- installPackage (string path)
- removePackage (string package)
- startActivity (string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, flags)
- touch (integer x, integer y, integer type)
touch参数说明
integer x,x坐标值。
integer y,y坐标值。
integer type,key event类型(如DOWN、UP、DOWN_AND_UP)。
DOWN为按下事件 UP为弹起事件 DOWN_AND_UP为按下弹起事件。
- drag (tuple start, tuple end, float duration, integer steps)
drag参数详细说明如下:
tuple start,拖拽起始位置,为tuple类型的(x,y)坐标点。
tuple end,拖拽终点位置,为tuple类型的(x,y)坐标点。
float duration,拖拽手势持续时间,默认为1.0s。
-integer steps,插值点的步数,默认值为10。
实践案例:
连接设备,安装考研帮App并启动
代码实现
kyb_start.py
from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner import MonkeyDevice as md
print("connect devices...")
device=mr.waitForConnection()
print("install app...")
device.installPackage(r'C:\Users\Shuqing\Desktop\kaoyan3.1.0.apk')
package = 'com.tal.kaoyan'
activity = 'com.tal.kaoyan.ui.activity.SplashActivity'
runComponent = package + '/' + activity
print("launch App...")
device.startActivity(component=runComponent)
代码执行方式
monkeyrunner scripfile
C:\Users\Shuqing>monkeyrunner E:\monkeyrunner_script\kyb.py
3.MonkeyImage类
MonkeyImage类在测试过程中用来保存各种格式的测试截图,并可以进行图像对比。

常用方法
- takeSnapshot() 进行屏幕截图
- writeToFile() 保存图像文件到指定的文件路径
用法示例
from com.android.monkeyrunner import MonkeyImage as mi
print("takeSnapshot")
screenshot=device.takeSnapshot()
screenshot.writeToFile(r'E:\monkeyrunner_script\test.png','png')
综合实践
测试场景
- 连接设备,自动安装并启动考研帮app
- 启动后登录账号(账号zxw1234 密码:zxw123456),然后截图并保存到指定文件位置。
- 连接设备
- 安装app
- 启动app
- 输入用户名密码点击登录按钮
- 截图
思路分析
脚本实现
kyb_login.py
from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner import MonkeyDevice as md
from com.android.monkeyrunner import MonkeyImage as mi
print("connect devices...")
device=mr.waitForConnection()
print(" install app")
device.installPackage(r'C:\Users\Shuqing\Desktop\kaoyan3.1.0.apk')
print("launch app...")
package='com.tal.kaoyan'
activity='com.tal.kaoyan.ui.activity.SplashActivity'
runComponent=package+'/'+activity
device.startActivity(component=runComponent)
mr.sleep(3)
print("touch cancel button")
device.touch(618,895,'DOWN_AND_UP')
mr.sleep(1)
print("touch skip button")
device.touch(804,67,'DOWN_AND_UP')
mr.sleep(1)
print("input username and password")
device.touch(57,373,'DOWN_AND_UP')
mr.sleep(2)
device.type('zxw1234')
device.touch(152,480,'DOWN_AND_UP')
mr.sleep(2)
device.type('zxw123456')
mr.sleep(2)
print("touch login button")
device.touch(331,634,'DOWN_AND_UP')
print("takeSnapshot")
screenshot=device.takeSnapshot()
screenshot.writeToFile(r'D:\monkeyrunner\kyb.png','png')
注意事项
方法调用错误
AttributeError: type object 'com.android.monkeyrunner.XXXXX' has no attribute XXXXXX
检查调用的方法名是否写错,特别是注意区分大小写。
字符编码错误
SyntaxError: Non-ASCII character in file 'E:\monkeyrunner_script\kyb.py', but no encoding declared;
需要在代码顶部补充 # -- coding: utf-8 -- 或者去掉代码中的中文字符
Appium自动化测试教程-自学网-monkeyrunner API的更多相关文章
- Appium自动化测试教程-自学网-monkeyrunner简介
monkeyrunner简介 MonkeyRunner工具是使用Jython(使用Java编程语言实现的Python)写出来的,它提供了多个API,通过monkeyrunner API 可以写一个Py ...
- Appium自动化测试教程-自学网-adb命令
adb命令: adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信.它可为各种设备操作提供便利,如安装和调试应用. T ...
- Appium自动化测试教程-自学网-SDK
SDK:软件开发工具包,被软件开发工程师用于特定的软件包.软件框架.硬件平台.操作系统等建立应用软件的开发工具的集合. 因此,Android SDK指的是Android专属的软件开发工具包. 1,安装 ...
- Appium自动化测试教程-自学网-app基础知识
Instrumentation的缺点是不支持跨应用,比如我想要先调起通讯录,在操作其他的app,则不支持. 第一步,应该确定系统哪些模块适合自动化.哪些不适合做自动化,明确做自动化给我们带来的好处是什 ...
- Appium自动化测试教程-自学网-monkey自定义脚本实践
自定义脚本的稳定性测试 常规Monkey测试执行的是随机的事件流,但如果只是想让Monkey测试某个特定场景这时候就需要用到自定义脚本了,Monkey支持执行用户自定义脚本的测试,用户只需要按照Mon ...
- Appium自动化测试教程-自学网-monkey简介
Monkey简介 在Android的官方自动化测试领域有一只非常著名的“猴子”叫Monkey,这只“猴子”一旦启动,就会让被测的Android应用程序像猴子一样活蹦乱跳,到处乱跑.人们常用这只“猴子” ...
- Appium自动化测试教程-自学网-monkey日志管理
日志管理作用 Monkey日志管理是Monkey测试中非常重要的一个环节,通过日志管理分析,可以获取当前测试对象在测试过程中是否会发生异常,以及发生的概率,同时还可以获取对应的错误信息,帮助开发定位和 ...
- Appium自动化测试教程-自学网-monkey参数
monkey 参数 参数分类 · 常规类参数 · 事件类参数 · 约束类参数 · 调试类参数 常规类参数 常规类参数包括帮助参数和日志信息参数.帮助参数用于输出Monkey命令使用指导:日志信息参数将 ...
- Appium自动化测试教程-自学网-monkey事件
操作事件简介 Monkey所执行的随机事件流中包含11大事件,分别是触摸事件.手势事件.二指缩放事件.轨迹事件.屏幕旋转事件.基本导航事件.主要导航事件.系统按键事件.启动Activity事件.键盘事 ...
随机推荐
- 转:如何正确彻底删除webpack 全局或是局部?
原文链接:如何正确彻底删除webpack 全局或是局部? 就需要卸载cli 配置webpack ,提示需要安装 webpack-cli,选择yes 后安装webpack-cli , 可是问题不断,所以 ...
- MySQL事务原理浅析
前言 因为自己对数据的可靠性,可用性方面特别感兴趣,所以在MySQL事务方面看了很多资料,也看了很多博客,所以想到自己也写一篇博客整理整理自己所学内容,尽量用自己的语言解释得通俗易懂. 事务经典场景 ...
- PowerBuilder学习笔记之2PowerScript语言(三)
教材地址:https://wenku.baidu.com/view/1e82d26925c52cc58ad6be05.html?sxts=1565679996440 2.6嵌入式SQL语句 2.6.1 ...
- JQuery EasyUI框架
1. JQuery EasyUI框架概述 1.1. JQuery EasyUI是什么东西 答:JQuery EasyUI就是一套基础JQuery的富客户端的UI框架.像这些将常用的控件封装成一个UI ...
- [v]Windows下Git安装指南
参考<Git权威指南>安装整理,图书配套网址参见[1] 1. Cygwin下安装配置Git 1. 在Windows下安装配置Git有2种不同的方案 (1)msysGit, (2)Cygwi ...
- you might not need jquery
What's the oldest version of IE you need to support? IE10 /**json**/ var request = new XMLHttpReques ...
- MySQL 数据库的安装与卸载
一.安装 (1)打开下载的 mysql 安装文件双击解压缩,运行“mysql-5.5.40-win32.msi” (2)选择安装类型, 有“Typical(默认) ”. “Complete(完全) ” ...
- stm32和cortex M3学习内核简单总结
1.stm32综述 2.寄存器组 3.操作模式和特权级别 4.存储器映射 5.中断和异常 6.其他 Stm32综述 这可以说是我第一款认真学习的单片机了,学完这个就要开启我通往arm9的大门了,接下来 ...
- lumen路由配置nginx
nginx配置文件中添加: set $root_path '/data/www/m.domain.com/public'; root $root_path; location / { ...
- 第三篇:Python基本数据类型
在了解基本数据类型的时候,我们需要了解基本数据类型有哪些?数字int.布尔值bool.字符串str.列表list.元组tuple.字典dict等,其中包括他们的基本用法和其常用的方法,这里会一一列举出 ...