MonkeyRunner可能大家已经听过无数次了,大家在网上也看过了各种关于的它的资料了,我这里就不再过多的啰嗦它的用途了,它可以对app做功能测试也可以对手机Rom做功能测试,在没有app源码的情况下monkeyrunner可以做到很好的功能测试。MonkeyRunner有一个录制脚本的工具和回放的功能,大家去下载monkeyrecody.py和monkeyplayback.py这两个脚本就可以了,这个我这里也不讲了,网上去google可以搜到很好的教程,
  下面是我对锤子便签的一个MonkeyRunner测试脚本。这里会用到点击,拖动,截图,截图对比的一些方法,基本上我们写monkeyrunner测试脚本中常调用到的方法都用到了,这里对锤子便签测试思路是这样的:先按照正常的操作使用步骤,一步步的操作下去,每操作一步都截图,操作完成之后,再来对截图进行对比并打印出对比结果在log文本里。这里用到的是坐标点的定位方法。
  

#!/usr/bin/env monkeyrunner
# 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")

锤子便签的 monkeyrunner 测试脚本相关推荐

  1. 锤子便签的Monkeyrunner 测试脚本

    MonkeyRunner可能大家已经听过无数次了,大家在网上也看过了各种关于的它的资料了,我这里就不再过多的啰嗦它的用途了,它可以对app做功能测试也可以对手机Rom做功能测试,在没有app源码的情况 ...

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

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

  3. Android自动化测试 - MonkeyRunner(二) 锤子便签测试脚本

    来源于:http://testerhome.com/topics/878 1 # encoding=utf-8 2 3 4 #导入python中自带的time模块和sys模块,脚本中都要用到它们. 5 ...

  4. 用现成的脚本,终于把锤子便签笔记批量导出了

    锤子笔记是一款功能强大的笔记应用,以前我用锤子便签主要是轻度使用场景,做一些小记,并且它可以多端同步( Android iOS web ),小巧.内容支持图片.标签内容打开即提取.复制粘贴方便.APP ...

  5. 求和!李姐万岁!用ChatGPT写GitBook布局锤子便签配色的WordPress主题

    我早期在Github写<Chrome插件英雄榜>连载的时候,用的是GitBook的自动构建功能,也就是在Github仓库,按照一定的规范存储markdown格式文章和配置文件,GitBoo ...

  6. android 锤子标签,Smartisan Notes锤子便签

    Smartisan Notes锤子便签是一款安卓手机上的便签服务软件,在这里可以帮助用户随时添加记录内容,能够查看全部便签内容,还可以随时编辑记录内容,能够按照重要性进行提醒服务,使用方法简单,支持通 ...

  7. 用锤子便签搭建简单的unittest框架

    写了一个简单的小例子,能通过appium打开锤子便签,并输入"abc",通过断言检测输入的信息是否正确 用了pycharm这个IDE来编写appium,运行时需要先在命令行输入ap ...

  8. note同步不及时 one_朱海舟回应锤子便签同步不及时:工程师已经解决

    集微网消息(文/数码控),有不少网友反映自己用的锤子便签没法及时同步数据,对此锤子科技产品经理朱海舟回应称工程师已经把该问题解决,用户只需更新APP即可. 至于部分安卓用户无法同步锤子便签数据的问题, ...

  9. 有人在Github上用几行代码就造了个锤子便签

    开源最前线(ID:OpenSourceTop) 猿妹整编 链接:https://github.com/nihaojob/markdown-css-smartisan 锤子便签,作为老罗的又一款设计感爆 ...

最新文章

  1. HDOJ/HDU 2566 统计硬币(公式~遍历~)
  2. Linux疑难杂症解决方案100篇(十)-uptime命令查看linux系统负载
  3. java并发编程基础系列(五): 创建线程的四种方式
  4. 函数默认形参与占位参数
  5. LeetCode 1165. 单行键盘(哈希)
  6. 利用python模拟菜刀反弹shell绕过限制
  7. linux差分包升级流程,OTA 差分升级包的制作
  8. KNN算法虹膜图片识别(源码)
  9. 梵语和藏语_藏语与梵文的区别
  10. 如何vista中使用netmeeting
  11. premiere(Pr)为视频配字幕 开放式字幕使用详解
  12. OutMan——单例模式、代理模式以及iOS沙盒(sandbox)机制
  13. 陈莉君教授: 回望踏入Linux内核之旅(下篇)
  14. 8255并行接口与交通灯控制
  15. 如何在服务器开启PathInfo
  16. [Centos7]Mirai QQ机器人监听播报TeamSpeak3用户状态
  17. 管理学定律五:二八定律与木桶理论
  18. 面试笔记 如何3秒钟看出一个人的实力?| 奸商行走江湖7年的经验分享
  19. mysql 多表 查询慢_详解Mysql多表联合查询效率分析及优化
  20. 【Azure Data Platform】Azure SQLDW与ADLS的整合

热门文章

  1. Linux命令行命令速查手册(整理)
  2. Xylan-PEG-NHS|木聚糖-聚乙二醇-琥珀酰亚胺
  3. 升职加薪的方法很简单,但做起来很难,兼说我新工作转正后的初心
  4. BFPRT(中位数的中位数)算法
  5. 1PL、3PL和4PL之间有什么区别?
  6. 妻子的容颜,与丈夫有关
  7. 开咖啡店需要注意什么?知名咖啡店总结五点
  8. ai人工智能培训讲师计算机视觉讲师叶梓:计算机视觉领域的自监督学习模型——MAE-6
  9. 国泰君安_测试_面经
  10. 参数优化多尺度排列熵算法