来源于:http://testerhome.com/topics/878

 # encoding=utf-8  

 #导入python中自带的time模块和sys模块,脚本中都要用到它们。
import time
import sys
#MonkeyRunner自带的三个api
from com.android.monkeyrunner import MonkeyRunner ,MonkeyDevice ,MonkeyImage #这个函数时确认年月日时分秒
now=time.strftime("%Y-%m-%d-%H-%M-%S")
#指定我们要保存图片的位置和打印log的位置
path='D:\\picture\\'
logpath="D:\\log\\" #python中获取当前运行的文件的名字
name=sys.argv[0].split("\\")
filename=name[len(name)-1] """
可以尝试输入这两句语句就可以明白上面的两个python方法了。
print(name)
print(filename)
""" #新建一个log文件
log=open(logpath+filename[0:-3]+"-log"+now+".txt",'w')
#连接设备,两个参数分别是等待的时间(这里的时间都是秒为单位),设备的序列号。
device=MonkeyRunner.waitForConnection(5,'b4726a2d') #安装锤子便签apk。参数是apk文件的位置,因为python不支持中文输入,所以在后面用了.decode('utf-8')这个方法转码。
device.installPackage ('D:\\apk\\锤子便签.apk'.decode('utf-8'))
#打印出操作信息到log文件里
log.write("安装apk……\n")
#等待2秒
MonkeyRunner.sleep(2) #启动app,参数里是app的包名/活动名
device.startActivity(component='com.smartisan.notes/.NotesActivity')
MonkeyRunner.sleep(2)
#打印操作信息
log.write("启动app……\n")
#截图
result = device.takeSnapshot()
#保存截图
result.writeToFile(path+"主页面".decode('utf-8')+now+'.png','png') #点击搜索款的位置坐标。
device.touch(111,155,'DOWN_AND_UP')
MonkeyRunner.sleep(2)
#输入smartisan字样
device.type("smartisan")
#截图
result1=device.takeSnapshot()
#保存截图
result1.writeToFile(path+"搜索框截图".decode('utf-8')+'.png','png') #移动第一个便签的位置到最后面去,参数是:一个起始点坐标,一个终点坐标,移动的时间,移动的步骤
device.drag((232,235),(216,472),3,2)
MonkeyRunner.sleep(3)
#截图
result2=device.takeSnapshot()
#保存截图
result2.writeToFile(path+"移动便签".decode('utf-8')+now+".png",'png') #第一个便签向右滑动
device.drag((109,360),(322,360))
MonkeyRunner.sleep(3) #截图
result3=device.takeSnapshot()
#保存截图
result3.writeToFile(path+"右移动便签".decode('utf-8')+now+".png",'png') #点击最后一个便签的位置
device.touch(182,583,'DOWN_AND_UP')
MonkeyRunner.sleep(5)
#点击发送的位置
device.touch(324,73,'DOWN_AND_UP')
MonkeyRunner.sleep(5)
#点击发送至长微博的位置
device.touch(227,789,'DOWN_AND_UP')
MonkeyRunner.sleep(5)
#点击生成长微博的位置
device.touch(228,791,'DOWN_AND_UP')
MonkeyRunner.sleep(5) #截图
result4=device.takeSnapshot()
#保存图片
result4.writeToFile(path+"发长微博截图".decode("utf-8")+now+'.png','png')
#点击下一步的位置
device.touch(426,81,'DOWN_AND_UP')
MonkeyRunner.sleep(3) #截图
result5=device.takeSnapshot()
#保存截图
result5.writeToFile(path+"输入微博账号".decode("utf-8")+now+'.png','png') #点击输入微博账号和密码的几个位置,分别输入账号和密码
device.touch(196,311,'DOWN_AND_UP')
MonkeyRunner.sleep(3)
device.type("powermo@126.com")
MonkeyRunner.sleep(3)
device.touch(168,378,'DOWN_AND_UP')
MonkeyRunner.sleep(3)
device.type("powermo1234")
MonkeyRunner.sleep(3)
#点击登录
device.touch(237,449,'DOWN_AND_UP')
MonkeyRunner.sleep(3) #截图
result6=device.takeSnapshot()
#保存截图
result6.writeToFile(path+"登陆微博".decode("utf-8")+now+'.png','png') #下面就开始对之前的截图进行对比了
#第一张截图做对比,去文件中找到我们要对比的图片
resultTrue=MonkeyRunner.loadImageFromFile('D:\\picture2\\shottrue.png')
log.write("主页面对比图片……\n")
#判断图片相识度是否是为90%
if(result.sameAs(resultTrue,0.9)):
#在命令行打印出信息
print("主页面图片对比成功")
#打印信息到log文件
log.write("主页面图片对比成功……\n")
else:
#打印信息到命令行
print("主页面图片对比失败")
log.write("主页面图片对比失败……\n") #去文件中找到我们规定的图片用来对比
result1True=MonkeyRunner.loadImageFromFile('D:\\picture2\\shottrue1.png')
#判断图片相识度是否是为90%
if(result1.sameAs(result1True,0.9)):
print("搜索框图片对比成功")
log.write("搜索框图片对比成功……\n")
else:
print("搜索框图片对比失败")
log.write("搜索框图片对比失败……\n") #对移动便签图片对比
result2True=MonkeyRunner.loadImageFromFile('D:\\picture2\\shottrue2.png')
##判断图片相识度是否是为80%
if(result2.sameAs(result2True,0.8)):
print("移动便签对比成功")
log.write("移动便签对比成功……\n")
else:
print("移动便签图片对比失败")
log.write("移动便签对比失败……\n") #对移动便签图片进行对比,去文件中找我们规定的图片
result3True=MonkeyRunner.loadImageFromFile('D:\\picture2\\shottrue3.png')
##判断图片相识度是否是为80%
if(result3.sameAs(result3True,0.8)):
print("右移便签图片对比成功")
log.write("右移便签图片对比成功……\n")
else:
print("右移便签图片对比失败")
log.write("右移便签图片对比失败……\n") #对长微博图片对比
result4True=MonkeyRunner.loadImageFromFile('D:\\picture2\\shottrue4.png')
if(result4.sameAs(result4True,0.8)):
print("发长微博图片对比成功")
log.write("发长微博图片对比成功……\n")
else:
print("发长微博图片对比失败")
log.write("发长微博图片对比失败……\n") result5True=MonkeyRunner.loadImageFromFile('D:\\picture2\\shottrue5.png')
if(result5.sameAs(result5True,0.8)):
print("输入微博账号图片对比成功")
log.write("输入微博账号图片对比成功……\n")
else:
print("输入微博账号图片对比失败")
log.write("输入微博账号图片对比失败……\n") result6True=MonkeyRunner.loadImageFromFile('D:\\picture2\\shottrue6.png')
if(result6.sameAs(result6True,0.8)):
print("登陆微博图片对比成功")
log.write("登陆微博图片对比成功……\n")
else:
print("登陆微博图片对比失败")
log.write("登陆微博图片对比失败……\n")

Android自动化测试 - MonkeyRunner(二) 锤子便签测试脚本的更多相关文章

  1. 锤子便签的 monkeyrunner 测试脚本(转)

    https://testerhome.com/topics/878 MonkeyRunner可能大家已经听过无数次了,大家在网上也看过了各种关于的它的资料了,我这里就不再过多的啰嗦它的用途了,它可以对 ...

  2. android widget 开发实例 : 桌面便签程序的实现具体解释和源代码 (上)

    如有错漏请不吝拍砖指正,转载请注明出处,很感谢 桌面便签软件是android上经常使用软件的一种,比方比較早的Sticky Note,就曾很流行, Sticky Note的介绍能够參见 http:// ...

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

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

  4. Android自动化测试 - MonkeyRunner(三) 随手练习测试脚本

    #coding=utf-8 import os import time #import MonkeyRunner three module from com.android.monkeyrunner ...

  5. Android自动化测试,5个必备的测试框架

    Appium Appium是一个开源的移动测试工具,支持iOS和Android,它可以用来测试任何类型的移动应用(原生.网络和混合).作为一个跨平台的工具,你可以在不同的平台上运行相同的测试.为了实现 ...

  6. 魅族便签,是否能成为国内便签应用的No.1?

    继前不久锤子科技推出便签 Android 新版后,近期魅族在PRO 6公布会上也公布了最新的魅族便签应用.这一次魅族把便签应用拓展到了整个Android体系,也就是说.其它不论什么的Android手机 ...

  7. 【JMeter4.0学习(五)】JMeter对服务器监控测试脚本开发

    目录: 下载相关JMeter插件 服务器监控测试脚本开发 附:参考相关文档 本文主要来说一下如何通过JMeter插件来监控服务器CPU.内存.磁盘.网络等相关资源. 一.首先,需要下载相关JMeter ...

  8. Android自动化测试中Monkeyrunner详解

    之前有写过monkey测试详细说明,几天就说说monkeyrunner. monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器 ...

  9. Appium移动自动化测试(二)--安装Android开发环境(转)

    Appium移动自动化测试(二)--安装Android开发环境 2015-06-04 17:30 by 虫师, 35299 阅读, 23 评论, 收藏, 编辑 继续Appium环境的搭建. 第二节   ...

随机推荐

  1. September 28th 2016 Week 40th Wednesday

    Love all, trust a few, do wrong to none. 爱所有人,信任一些人,不妨害任何人. Reading is a way for me to expand my min ...

  2. 常用iOS的第三方框架

    图像:1.图片浏览控件MWPhotoBrowser       实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等 ...

  3. iOS - 二维码扫描和应用跳转

    序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如ZXing或者ZBar.使用时集成麻烦, ...

  4. CocoaPods 安装

    虽然网上关于CocoaPods安装教程多不胜数,但是我在安装的过程中还是出现了很多错误,所以大家可以照下来步骤装一下,我相信会很好用. 前言 在iOS项目中使用第三方类库可以说是非常常见的事,但是要正 ...

  5. Android Programming: Pushing the Limits -- Chapter 2: Efficient Java Code for Android

    Android's Dalvik Java 与 Java SE 进行比较 Java代码优化 内存管理与分配 Android的多线程操作 Android’s Dalvik Java 与 Java SE ...

  6. CLR via C#(04)- 本是同根生

    一.等值性——Equals()方法 有时候我们需要比较两个对象是否相等,比如在一个ArrayList中进行排序查找等操作时. System.Object提供了Equals()虚方法: class Ob ...

  7. APP消息推送:通知和透传

    目前市场上的消息推送方式有两种:通知和透传.什么是透传?透传即是透明传送,即传送网络无论传输业务如何,只负责将需要传送的业务传送到目的节点,同时保证传输的质量即可,而不对传输的业务进行处理.透传消息, ...

  8. .net学习之泛型、程序集和反射

    一.泛型1.CLR编译时,编译器只为MyList<T>类型产生“泛型版”的IL代码——并不进行泛型的实例化,T在中间只充当占位符.例如:MyList 类型元数据中显示的<T> ...

  9. Android 下拉刷新

    以前旧版用的是开源的PullToRefresh第三方库,该库现在已经不再维护了: chrisbanes/Android-PullToRefreshhttps://github.com/chrisban ...

  10. 无废话ExtJs 入门教程十五[员工信息表Demo:AddUser]

    无废话ExtJs 入门教程十五[员工信息表Demo:AddUser] extjs技术交流,欢迎加群(201926085) 前面我们共介绍过10种表单组件,这些组件是我们在开发过程中最经常用到的,所以一 ...