MonkeyRunner API(二)

本文深入解析MonkeyImage类在自动化测试中的应用,包括屏幕截图、图像保存及对比功能。通过实例演示如何使用MonkeyRunner自动化工具,实现考研帮APP的安装、启动、登录流程,并保存登录后的屏幕截图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 -- 或者去掉代码中的中文字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值