3.MonkeyImage类
MonkeyImage类在测试过程中用来保存各种格式的测试截图,并可以进行图像对比。
常用方法
- takeSnapshot() 进行屏幕截图
- writeToFile() 保存图像文件到指定的文件路径
用法示例
from com.android.monkeyrunner import MonkeyImage as mi
print("takeSnapshot")
screenshot=device.takeSnapshot()
screenshot.writeToFile(r'E:\monkeyrunner_script\test.png','png')
综合实践
测试场景
- 连接设备,自动安装并启动考研帮app
- 启动后登录账号(账号zxw1234 密码:zxw123456),然后截图并保存到指定文件位置。
思路分析
- 连接设备
- 安装app
- 启动app
- 输入用户名密码点击登录按钮
- 截图
脚本实现
kyb_login.py
# coding:utf-8
from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner import MonkeyRunner as md
from com.android.monkeyrunner import MonkeyImage as mi
print("connect devices---------------")
device = mr.waitForConnection()
print("install kao app")
device.installPackage(r'D:\download\kaoyan3.1.0.apk')
print("launch app ----------------")
package = 'com.tal.kaoyan'
activity = 'com.tal.kaoyan.ui.activity.SplashActivity'
runComponent = package+'/'+activity
device.startActivity(component=runComponent)
mr.sleep(3)
print("touch cancel button app")
device.touch(501,746,'DOWN_AND_UP')
mr.sleep(2)
print("touch skip button app")
device.touch(637,53,'DOWN_AND_UP')
mr.sleep(2)
print("input use and pas")
device.touch(120,277,'DOWN_AND_UP')
device.type('自己的用户名')
mr.sleep(2)
device.touch(114,358,'DOWN_AND_UP')
device.type('自己的密码')
mr.sleep(2)
print("touch login button app")
device.touch(364,481,'DOWN_AND_UP')
mr.sleep(2)
print('take snapshot')
screenshot = device.takeSnapshot()
screenshot.writeToFile(r'D:\download\kaotest.png','png')
执行前
执行后
注意事项
方法调用错误
AttributeError: type object 'com.android.monkeyrunner.XXXXX' has no attribute XXXXXX
检查调用的方法名是否写错,特别是注意区分大小写。
字符编码错误
SyntaxError: Non-ASCII character in file 'E:\monkeyrunner_script\kyb.py', but no encoding declared;
需要在代码顶部补充 # -- coding: utf-8 -- 或者去掉代码中的中文字符