monkeyrunner的官方文档:

https://developer.android.com/studio/test/monkeyrunner

monkeyrunner脚本可以执行截图操作

具体执行步骤:

进入monkeyrunner.bat的文件夹

D:\android_sdk\tools\bin

执行dos命令

monkeyrunner C:\Users\user\Desktop\testReport\batDoc\monkeyrunnerTest.py

遇到报错

SWT folder '..\framework\x86_64' does not exist. Please set ANDROID_SWT to point to the folder conta

解决办法: https://blog.csdn.net/qq_21650171/article/details/78986788

具体python脚本如下:

import sys
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage
#parameter
txt1_x=30
txt1_y=400
txt2_x=30
txt2_y=600
btn1_x=100
btn1_y=700
seconds=1
type='DOWN_AND_UP'
txt1_msg='zhizhi'
txt2_msg='yin' #package name and activity name
package ='com.patech.testApp'
activity='.AddressActivity'
component=package+'/'+activity
#connect device
device=MonkeyRunner.waitForConnection() device.installPackage('C:\\Users\\user\\Desktop\\testReport\\batDoc\\app-debug.apk')
print ('Installing apk') device.startActivity(component)
print('launching apk') MonkeyRunner.sleep(seconds) device.touch(txt1_x,txt1_y,type)
device.type(txt1_msg)
#device.press('KEYCODE_ENTER','DOWN_AND_UP')
print ('input txt1') device.touch(txt2_x,txt2_y,type)
device.type(txt2_msg)
#device.press('KEYCODE_ENTER','DOWN_AND_UP')
print ('input txt2') MonkeyRunner.sleep(seconds) device.touch(btn1_x,btn1_y,type)
print('click button') #get the snapshot
picture=device.takeSnapshot()
picture.writeToFile('C:\\Users\\user\\Desktop\\testReport\\batDoc\\apkTest.png','png')
print ("you've get a picture")
device.press('KEYCODE_HOME','DOWN_AND_UP')
print ('Back to home.')

 

执行一些系统操作:

 

import sys
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage
#parameter
device_id='8b4235be'
device=MonkeyRunner.waitForConnection(1000,device_id)
device.installPackage('C:\\Users\\user\\Desktop\\testReport\\batDoc\\app-debug.apk')
#删除应用
device.remove('com.patech.testApp')

  

获取一些信息(在手机端执行的)

import android
droid=android.Android()
pkgs=droid.getRunningPackages()
apps=droid.getLaunchableApplications()
print(pkgs.result)
print(apps.result)

 

在PC端展示一些提示窗口

import sys
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage
#parameter
message = 'please input qq'
initialValue='350343754'
title='zhizhi'
okTitle='save'
cancelTitle='cancel' QQ=MonkeyRunner.input(message,initialValue,title,okTitle,cancelTitle)
MonkeyRunner.alert(QQ,title,okTitle)  

 

截图到当前目录下

import os
import sys
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice
device=MonkeyRunner.waitForConnection()
picture = device.takeSnapshot()
path=os.path.abspath(__file__)
print(path)
path=os.path.dirname(os.path.abspath(__file__))
print(path)
picture.writeToFile(path+'/snapshot.png','png')

  

获取手机的基本信息

from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice
device=MonkeyRunner.waitForConnection()
display=device.getProperty('build.type')
print(display)
#getSystemProperty = adb shell getprop
display=device.getSystemProperty('build.type')
print(display)

  

图像比较,图像转换,获取像素点,唤醒手机等等省略。

最后提一下怎么获取monkeyrunner的帮助文档。

参考:https://www.jianshu.com/p/67e78ff87da1

在monkeyrunner.bat的同个文件夹下,新建help.py,内容如下,在android源码中有,但是我没下载,网上downlo的:

下载地址:http://androidxref.com/source/xref/sdk/monkeyrunner/scripts/

#!/usr/bin/env monkeyrunner
# Copyright 2010, The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from com.android.monkeyrunner import MonkeyRunner as mr import os
import sys supported_formats = ['html', 'text', 'sdk-docs'] if len(sys.argv) != 3:
print 'help.py: format output'
sys.exit(1) (format, saveto_path) = sys.argv[1:] if not format.lower() in supported_formats:
print 'format %s is not a supported format' % format
sys.exit(2) output = mr.help(format=format)
if not output:
print 'Error generating help format'
sys.exit(3) dirname = os.path.dirname(saveto_path)
try:
os.makedirs(dirname)
except:
print 'oops'
pass # It already existed fp = open(saveto_path, 'w')
fp.write(output)
fp.close() sys.exit(0)

  

进入monkeyrunner.jar的目录,我的是D:\android_sdk\tools\lib,解压monkeyrunner.jar,将解压后的D:\android_sdk\tools\lib\resources\com\android\monkeyrunner 目录下的三个.cs文件:html.cs,sdk-doc.cs,text.cs挪到D:\android_sdk\tools\lib\com\android\monkeyrunner 文件夹中。

然后执行monkeyrunner的命令:

monkeyrunner help.py html C:\Users\user\Desktop\testReport\monkeyrunner.html

  

文档就downlo到对应的地址了。

monkeyrunner的脚本录制功能

从网上下载playback.py和recorder.py,网址:http://androidxref.com/source/xref/sdk/monkeyrunner/scripts/

运行命令

monkeyrunner monkey_recorder.py

  

录制完成后保存脚本为.mr格式,执行语句如下:

monkeyrunner monkey_playback.py C:\Users\user\Desktop\testReport\batDoc\record.mr

  

Android测试monkeyRunner的更多相关文章

  1. 【Android测试】【第九节】MonkeyRunner—— 初识

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4836815.html 不得不说两句,过了这么久才再次更新博 ...

  2. Android自动化测试 - MonkeyRunner(一)介绍

    MonkeyRunner介绍: MonkeyRunner是Google提供的一个基于坐标点的Android黑盒自动化测试工具. Monkeyrunner工具提供了一套API让用户/测试人员来调用,调用 ...

  3. 【Android测试】【随笔】获得App的包名和启动页Activity

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5157308.html 前言 经常看到一些刚刚接触Andro ...

  4. android 测试(转)

    个人接触android的时间也不是很长,稍微总结下在做Android测试的过程中,初次接触的同学需要些什么准备,以及需要些什么知识?下面讲到的东西可能很多人会觉得很简单,但我确实碰到过有新同学对这些点 ...

  5. Android测试分析二

    什么是android测试,分为黑盒测试和白盒测试. 黑盒就是测试人员看不到代码的,针对需求而进行的一系列测试动作,看代码所展现出来的效果是否和需求一样,或者有什么意外的情况没有处理等,一般开发交给测试 ...

  6. android测试分析1

    Android测试框架,开发环境中集成的一部分,提供一个架构和强有力的工具 可以帮助测试你的应用从单元到框架的每个方面. 测试框架有这些主要特征: 1.Android测试组件基于Junit.你可以使用 ...

  7. monkey测试===monkeyrunner测试教程(1)

    1.安装测试环境 jdk 安装与配置 android sdk安装与配置 Python编辑器安装与配置 以上安装请自行百度教程 Monkeyrunner使用方法 http://www.android-d ...

  8. Android测试提升效率批处理脚本(三)

    前言: 前面放出过几次批处理,这次只放一个环境检查的被管理员给打回来了,不得不再找找几个有含金量的放出来,请看正文~~~ 目录 1.Android环境检查 2.Android内存监控 3.模拟蓝牙手柄 ...

  9. Android测试基础题(三)

    今天接着给大家带来的是Android测试基础题(三).    需求:定义一个排序的方法,根据用户传入的double类型数组进行排序,并返回排序后的数组 俗话说的好:温故而知新,可以为师矣 packag ...

随机推荐

  1. tornodo学习之路

    tornodo的ioloop是什么?(A) A.事件循环 B.对象循环 C.没有对象不用循环 别人是否可以分析放在本地的cookie?(B) A.否 B.是 WSGI是什么?(A) A.web服务器网 ...

  2. Makefile中宏定义

    实际上是gcc命令支持-D宏定义,相当于C中的全局#define: gcc -D name gcc -D name=definition Makefile中可以定义变量(和宏很像),但是是给make解 ...

  3. Ajax基本概念

    一. Ajax 1. 什么是ajax Ajax: asynchronous  javascript  and  xml (异步js和xml) 其是可以与服务器进行(异步/同步)交互的技术一. ajax ...

  4. SpringCloud服务注册与发现中心-Eureka

    1.服务注册与发现的好处: 假设没有这个东西,那么如果存在a,b,c三个同样的服务: 而现在有一个u服务需要用到a或b或c提供的接口,那么u里面肯定是需要配置这三个服务的地址,然后调用的时候还有问题就 ...

  5. Python 数据处理库pandas教程(最后附上pandas_datareader使用实例)

    0 简单介绍 pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库.本文是对它的一个入门教程. pandas提供了快速,灵活和富有 ...

  6. vue利用keep-alive/beforeRouteLeave前进刷新后退不刷新(缓存)

      keep-alive缓存 在vue中默认router-link进入页面组件都是不缓存的.对于数据不会更新的页面.可以使用keep-alive来缓存以提高性能. 在项目src/router/inde ...

  7. Windows终端命令行工具Cmder

    在IT这一行,大部分情况下都是推荐大家使用Linux或者类Unix操作系统去编程,Linux作为一代优秀的操作系统,已经人尽皆知,在IT行业已经成为核心.有条件的大佬都选择了使用mac编程,最优秀的莫 ...

  8. AdventureWorks 安装和配置[转自 微软msdn]

    AdventureWorks 安装和配置 2018/06/19 适用对象:SQL ServerAzure SQL 数据库Azure SQL 数据仓库并行数据仓库 AdventureWorks 下载链接 ...

  9. 无重复字符串的最长子串 python

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...

  10. [JZOJ5280]膜法师题解--思维+前缀和

    [JZOJ5280]膜法师题解--思维+前缀和 题目链接 暴 力 过 于