Python+Monkeyrunner 真机自动化测试

# coding:utf-8
from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner import MonkeyDevice as md
from com.android.monkeyrunner import MonkeyImage as mi
from com.android.monkeyrunner.easy import EasyMonkeyDevice as emd
from com.android.monkeyrunner.easy import By
import os

# 首先我要连接一台手机
device = mr.waitForConnection()

# ************************************************************************
# 判断手机 是否打开viewserver 如果打开 可以使用EasyMonkeyDevice
def viewServer():
viewServer=os.system( "adb shell service call window 3")
# print(viewServer)
if viewServer== 0:
# print("开启ViewServer")
ovs=os.system( "adb shell service call window 1 i32 4939")
if ovs== 0:
# print("你的手机无法打开viewserver 无法使用EasyMonkeyDevice")
return False
else:
# print("你的手机已经打开viewServer")
return True
else:
# print("你的手机已经打开viewServer")
return True


# ************************************************************************

# easy_device=emd(device)
# mr.alert("success")


def installApp():
# 安装jkt
device.installPackage( "D: \\ JKT \\ apks \\ JKT_V1.2.24-release.apk")
print( "安装jkt--ok")
# 安装weike2.1.16
device.installPackage( "D: \\ JKT \\ apks \\ Weike_V2.1.16-release.apk")
print( "安装weike--ok")
# 安装test
device.installPackage( "D: \\ JKT \\ apks \\ Weike_V2.1.10-debug-androidTest.apk")
print( "安装test--ok")
# 安装wechat6.6.5
device.installPackage( "D: \\ JKT \\ apks \\ Wechat_V6.6.5.apk")
print( "wechat--ok")


def setUpSetting():
print( "***********************Setting begining**************************")
# 打开setting
device.startActivity(
component= "com.android.settings/com.android.settings.Settings")
print( "不锁屏设置")
# 点击显示
device.touch( 500, 1150, "DOWN_AND_UP")
mr.sleep( 1)
# 点击休眠
# 下滑点击从不
device.touch( 500, 950, "DOWN_AND_UP")
mr.sleep( 1)
device.drag(( 500, 1000),( 500, 700), 1, 10)
mr.sleep( 1)
device.touch( 350, 1150, "DOWN_AND_UP")
mr.sleep( 1)
device.takeSnapshot().writeToFile( "D: \\ PythonProject \\ MonkeyRunner \\ a3s \\ standard_images \\ setting_1.png") #截图并保存
# 返回
device.press( 'KEYCODE_BACK', "DOWN_AND_UP")
# 应用权限管理
for i in range( 1, 5):
device.drag(( 500, 1000),( 500, 500), 2, 10)
mr.sleep( 1)
device.touch( 350, 1150, "DOWN_AND_UP")

def setUpSperSU():
print( "***********************supersu begining**************************")
device.startActivity(
component= "eu.chainfire.supersu/eu.chainfire.supersu.MainActivity-Material")
mr.sleep( 1)
# 点击设置
device.touch( 600, 210, "DOWN_AND_UP")
mr.sleep( 1)
# 点击重新验证
device.touch( 500, 900, "DOWN_AND_UP")
mr.sleep( 1)
# 点击默认操作
device.touch( 200, 1100, "DOWN_AND_UP")
mr.sleep( 1)
# 点击默认操作--授权
device.touch( 200, 650, "DOWN_AND_UP")
# 截图并与标准图进行比较
# standardImage=mr.loadImageFromFile("D:\\PythonProject\\MonkeyRunner\\a3s\\standard_images\\supersu_1.png") #标准图
mr.sleep( 2)
# image=mi.getSubImage(0,0,720,1080) #指定矩形截图
device.takeSnapshot().writeToFile( "D: \\ PythonProject \\ MonkeyRunner \\ a3s \\ standard_images \\ supersu_1.png") #截图并保存
# image=mr.loadImageFromFile("D:\\PythonProject\\MonkeyRunner\\a3s\\standard_images\\supersu_1_1.png")#比较
# 实际操作中,因为截图中的时间不一致 会一直报错
# if mi.sameAs(standardImage,image):
# print("all right!")
# else:
# mr.alert("something wrong!!")

# 下滑
device.drag(( 500, 1000),( 500, 400), 2, 10)
mr.sleep( 0.1)
device.drag(( 500, 1000),( 500, 400), 2, 10)
mr.sleep( 0.1)
device.drag(( 500, 1000),( 500, 400), 2, 10)
mr.sleep( 0.1)
# 点击开机允许所有授权申请
device.touch( 500, 900, "DOWN_AND_UP")
mr.sleep( 1)
device.takeSnapshot().writeToFile( "D: \\ PythonProject \\ MonkeyRunner \\ a3s \\ standard_images \\ supersu_2.png") #截图并保存
#下滑
device.drag(( 500, 1000),( 500, 400), 2, 10)
mr.sleep( 0.1)
device.drag(( 500, 1000),( 500, 400), 2, 10)
mr.sleep( 0.1)
device.drag(( 500, 1000),( 500, 400), 2, 10)
mr.sleep( 0.1)
# 点击开机允许所有授权申请
device.touch( 500, 600, "DOWN_AND_UP")
mr.sleep( 1)
device.takeSnapshot().writeToFile( "D: \\ PythonProject \\ MonkeyRunner \\ a3s \\ standard_images \\ supersu_3.png") #截图并保存
print( "***********************supersu 设置完成**************************")




def setUpXposed():
device.startActivity(
component= "de.robv.android.xposed.installer/de.robv.android.xposed.installer.WelcomeActivity")
mr.sleep( 1)
print( "ok")


# def setUpJkt():
# device.startActivity(component="")

def main():
if viewServer():
print( "可以使用emd,调用新的方法。。。。")
else:
# installApp()
setUpSetting()
# setUpSperSU()


if __name__ == '__main__':
main()

猜你喜欢

转载自blog.csdn.net/sunfellow2009/article/details/80598968