首先文件所在目录:

MonkeyRunner所在目录:

运行命令(通过cd 命令  进入Tools目录下):

运行脚本:monkeyrunner.bat ..\honeywell\jsq.py

源文件代码为:

# coding=utf-8

import sys
from com.android.monkeyrunner import MonkeyRunner as mr,MonkeyDevice
from com.android.monkeyrunner.easy import EasyMonkeyDevice,By
from com.android.chimpchat.hierarchyviewer import HierarchyViewer #连接设备
device = mr.waitForConnection(30,"emulator-5554")
if not device:
print >> sys.stderr,"fail"
sys.exit(1)
#连接设备完成
mr.sleep(2.0)
#打开主屏幕-根据ResourceId
# #
upArrow="id/all_apps_handle"
easy_device = EasyMonkeyDevice(device)
easy_device.touch(By.id(upArrow), MonkeyDevice.DOWN_AND_UP)
mr.sleep(2.0)
#启动Activity 打开拨号键
activityName="com.android.dialer/.DialtactsActivity"
device.startActivity(component = activityName)
#等待时间,防止操作太快,设备反应不及时
mr.sleep(2.0) #点击添加拨号动作
action_button="id/floating_action_button" easy_device.touch(By.id(action_button), MonkeyDevice.DOWN_AND_UP)
mr.sleep(2.0)
#开始拨号
button_1="id/one"
button_2="id/two"
button_3="id/three"
button_4="id/four"
button_5="id/five"
button_6="id/six"
button_7="id/seven"
button_8="id/eight"
button_9="id/nine"
button_0="id/zero"
easy_device.touch(By.id(button_1), MonkeyDevice.DOWN_AND_UP) easy_device.touch(By.id(button_8), MonkeyDevice.DOWN_AND_UP) easy_device.touch(By.id(button_9), MonkeyDevice.DOWN_AND_UP) easy_device.touch(By.id(button_1), MonkeyDevice.DOWN_AND_UP) easy_device.touch(By.id(button_1), MonkeyDevice.DOWN_AND_UP) easy_device.touch(By.id(button_6), MonkeyDevice.DOWN_AND_UP) easy_device.touch(By.id(button_9), MonkeyDevice.DOWN_AND_UP) easy_device.touch(By.id(button_5), MonkeyDevice.DOWN_AND_UP) easy_device.touch(By.id(button_0), MonkeyDevice.DOWN_AND_UP) easy_device.touch(By.id(button_8), MonkeyDevice.DOWN_AND_UP) easy_device.touch(By.id(button_7), MonkeyDevice.DOWN_AND_UP)
mr.sleep(2.0)
#添加联系人
createNewId="id/cliv_name_textview"
easy_device.touch(By.id(createNewId), MonkeyDevice.DOWN_AND_UP)
mr.sleep(2.0)
#姓名输入 获取焦点
device.touch(300,1060,'DOWN_AND_UP')
mr.sleep(1.0)
#输入
device.type('JackChen')
mr.sleep(2.0)
#关闭键盘
device.press('KEYCODE_BACK',MonkeyDevice.DOWN_AND_UP)
#保存联系人
mr.sleep(2.0)
menu_save="id/menu_save"
easy_device.touch(By.id(menu_save), MonkeyDevice.DOWN_AND_UP)
mr.sleep(2.0)
device.press('KEYCODE_HOME',MonkeyDevice.DOWN_AND_UP)
mr.sleep(2.0)
componentName='com.google.android.apps.messaging/.ui.ConversationListActivity'
#启动特定的Activity
device.startActivity(component = componentName)
mr.sleep(2.0)
#新建信息
messageAdd="id/start_new_conversation_button"
easy_device.touch(By.id(messageAdd), MonkeyDevice.DOWN_AND_UP)
mr.sleep(2.0)
numText="id/recipient_text_view"
easy_device.touch(By.id(numText), MonkeyDevice.DOWN_AND_UP)
mr.sleep(1.0) device.type('')
mr.sleep(3.0)
#点击10086
device.touch(301,300,'DOWN_AND_UP')
mr.sleep(2.0)
device.press('KEYCODE_BACK',MonkeyDevice.DOWN_AND_UP)
mr.sleep(1.0)
messageTxt="id/compose_message_text"
easy_device.touch(By.id(messageTxt), MonkeyDevice.DOWN_AND_UP)
mr.sleep(1.0)
device.type('Hello,jack') #等待时间,防止操作太快,设备反应不及时
mr.sleep(1.0)
btn_send="id/self_send_icon"
easy_device.touch(By.id(btn_send), MonkeyDevice.DOWN_AND_UP) mr.sleep(3.0)
conversationImg = device.takeSnapshot()
conversationImg.writeToFile('d:\\SendMessage.png','png');

@陈卧龙的博客

安卓自动化测试案例(跑在MonkeyRunner上)的更多相关文章

  1. 《Python自动化测试修炼宝典》线上课程已经成功入驻网易云课堂......

    <Python自动化测试修炼宝典>线上课程已经成功入驻网易云课堂...... IT测试老兵利用工作之余,亲自录制的<Python自动化测试修炼宝典>线上课程已经成功入驻网易云课 ...

  2. .NET跨平台之旅:生产环境中第2个跑在Linux上的ASP.NET Core站点

    今天我们在生产环境中上线了第2个跑在Linux上的ASP.NET Core站点.这是一个简单的Web API站点,通过命令行的方式调用安装在Linux服务器上的程序完成操作.之前用的是nodejs,现 ...

  3. .Net程序跑在Linux上

    .Net越来越拥抱开源了,今天就试了如何让.Net程序跑在Linux上,果然再无人可以阻挡.Net的脚步了. Linux Disibutaion:Open Logic 7.2 1.Install .N ...

  4. 如何快速把安卓应用移植到BlackBerry 10上

    如何快速把安卓应用移植到BlackBerry 10上 相关博客: BlackBerry相关文档 http://developer.blackberry.com/android/documentatio ...

  5. 案例实战:每日上亿请求量的电商系统,JVM年轻代垃圾回收参数如何优化?

    出自:http://1t.click/7TJ 目录: 案例背景引入 特殊的电商大促场景 抗住大促的瞬时压力需要几台机器? 大促高峰期订单系统的内存使用模型估算 内存到底该如何分配? 新生代垃圾回收优化 ...

  6. 是时候考虑让你的Spark跑在K8S上了

    [摘要] Spark社区在2.3版本开始,已经可以很好的支持跑着Kubernetes上了.这样对于统一资源池,提高整体资源利用率,降低运维成本(特别是技术栈归一)有着非常大的帮助.这些趋势是一个大数据 ...

  7. android 自动化测试案例之 MonkeyRunner

    #-*- coding: UTF-8 -*- #上面第一行是设置文件编码,windows下第一行必须是这个#文件名 MonkeyRunner.py#功能: 使用monkey runner测试app,此 ...

  8. 安卓自动化测试工具MonkeyRunner之使用ID进行参数化,以及List选择某项和弹出框点击确定的写法

    一.List选择某项的操作步骤: 1.通过父结点得出列表各子项 2.将选择项的文本与列表中的子项进行比较 3.计算出选择项的坐标位置 截取实例: from com.android.monkeyrunn ...

  9. APP自动化测试中Monkey和 MonkeyRunner

    在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程步步执行测试,得到实际结果与期望结果的比较.在此过程中,为了节省人力.时间或硬件资源,提高测试效率,便引入了自动化测试的概念.自动化测 ...

随机推荐

  1. Mobile first! Wijmo 5 + Ionic Framework之:费用跟踪 App

    费用跟踪应用采用了Wijmo5和Ionic Framework创建,目的是构建一个hybird app. 我们基于<Mobile first! Wijmo 5 + Ionic Framework ...

  2. beego+vue父子组件通信(父子页面传值、父子组件传值、父子路由传值)

    场景:有head和foot,为父组件 侧栏tree为子组件 点击tree,右侧孙组件根据点击tree的id,来更改表格内容. 首先是父子(本例中是子组件与孙组件)通信,目前是父传到子,暂时还没有子传到 ...

  3. Java并发编程(十三)线程间协作的两种方式:wait、notify、notifyAll和Condition

    在现实中,需要线程之间的协作.比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权.因为生产者如果 ...

  4. HTTP的Referrer和Referrer Policy设置

    Referrer referrer是HTTP请求header的报文头,用于指明当前流量的来源参考页面.通过这个信息,我们可以知道访客是怎么来到当前页面的.这对于Web Analytics非常重要,可以 ...

  5. Asp.Net WebApi Get请求整理(一)

    Asp.Net WebApi+JQuery Ajax的Get请求整理 一.总结 1.Asp.Net WebApi默认不支持Get请求,需要在Action方法上指定[HttpGet], 除非Action ...

  6. EntityFramework Code-First 简易教程(五)-------领域类配置

    前言:在前篇中,总是把领域类(Domain Class)翻译成模型类,因为我的理解它就是一个现实对象的抽象模型,不知道对不对.以防止将来可能的歧义,这篇开始还是直接对Domain Class直译. 前 ...

  7. 【PAT】B1084 外观数列(20 分)(纯C)

    第一层循环,用来循环计算第几个元素 第二层用来计算当前元素的下一个 #include<stdio.h> #include<string.h> char aaa[100000] ...

  8. 【Excel】SUMIF函数的兼容性

    兼容性非常强的两个函数 SUMIF() 说兼容性,当然得说SUMIF了. 来,我们先举个例子. 现有一个表格,算起来只有"科目划分"."发生额"两列内容,但是折 ...

  9. kafka 配置文件参数详解

    kafka的配置分为 broker.producter.consumer三个不同的配置 一 BROKER 的全局配置 最为核心的三个配置 broker.id.log.dir.zookeeper.con ...

  10. DataUtils对Connection的获取、释放和关闭的操作学习

    DataSourceUitls介绍 DataSourceUitls类位于org.springframework.jdbc.datasource包下,提供了很多的静态方法去从一个javax.sql.Da ...