Android App专项测试—压力测试

本文介绍Android平台上的三种自动化测试工具:Monkey、MonkeyScript及MonkeyRunner。详细解析了它们的工作原理及应用场景,通过实例演示如何利用这些工具进行自动化测试。

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

来源:慕课网http://www.imooc.com/learn/729

目录

  1. Monkey
  2. Monkey Script
  3. MonkeyRunner

注:以Android手机自带计算器举例

第一部分 Monkey
1. 什么是Monkey?
Android系统自带的一个工具,可发送用户伪随机事件
2. Monkey在哪里?
Android手机系统中,具体位置: /system/farmework/

$adb shell  //进入手机
$cd /system/framework  //进入此目录
$ls //查看monkey.jar

3.举例
使用monkey命令,测试手机上的计算器

步骤1: 获取被测应用包名

$adb logcat | grep START 
打开手机上计算器,查找最后一行cmp=com.android.calculator2/.Calculator

步骤2:输入monkey命令

$adb shell monkey -p com.android.calculator2 --throttle 1000 --pct-touch 100 10

–throttle 事件之间的间隔,毫秒为单位
–pct-touch 100 touch事件占100%
还有其他许多参数,请自行搜索

第二部分 Monkey Script
1. 什么是Monkey Script?
以脚本的方式,运行monkey命令,可以按照用户意愿执行操作。
2. 实践
使用monkey,点击计算器7 + 8
步骤1: 新建脚本文件monkey.script,内容如下

type=user
count=10
speed=1.0
start data >>

//启动计算器
LaunchActivity(com.android.calculator2,com.android.calculator2/.Calculator)
UserWait(2000)

//点击右上角 ...
DispatchPointer(10, 10, 0, 1000, 400, 1, 1, -1, 1, 1, 0, 0)
DispatchPointer(10, 10, 1, 1000, 400, 1, 1, -1, 1, 1, 0, 0)
UserWait(2000)

//清除记录
DispatchPointer(10, 10, 0, 800, 500, 1, 1, -1, 1, 1, 0, 0)
DispatchPointer(10, 10, 1, 800, 500, 1, 1, -1, 1, 1, 0, 0)
UserWait(2000)

//点击 7
DispatchPointer(10, 10, 0, 200, 700, 1, 1, -1, 1, 1, 0, 0)
DispatchPointer(10, 10, 1, 200, 700, 1, 1, -1, 1, 1, 0, 0)
UserWait(2000)

//点击 +
DispatchPointer(10, 10, 0, 1000, 1500, 1, 1, -1, 1, 1, 0, 0)
DispatchPointer(10, 10, 1, 1000, 1500, 1, 1, -1, 1, 1, 0, 0)
UserWait(2000)

//点击 8
DispatchPointer(10, 10, 0, 400, 700, 1, 1, -1, 1, 1, 0, 0)
DispatchPointer(10, 10, 1, 400, 700, 1, 1, -1, 1, 1, 0, 0)
UserWait(2000)

步骤2: 将上面的monkey.script文件push到手机系统的data/local/tmp目录下

步骤3: 执行脚本
第1种方法,在电脑命令行执行脚本
$adb shell monkey -f /data/local/tmp/monkey.script 2

第2种方法,进入手机系统执行脚本

adb shell
cd /data/local/tmp
monkey monkey.script 2

其中,数字2是执行脚本的次数

比较:Monkey工具,只能随机输入事件
Monkey Script,可以按照人的行为去执行相应操作,并完成重复的操作,但不能截图

第三部分 Monkey Runner

1) 可弥补monkey script的不能截图缺点
2) 与设备无关
举例:mooc.py

#!/usr/bin/python
#-*- UTF-8 -*-
from com.android.monkeyrunner import MonkeyRunner
MonkeyRunner.alert('Hello mook friends','This is tittle','OK')

命令行运行:monkeyrunner mooc.py
运行结果:屏幕上弹出对话框

#!/usr/bin/python
#-*- UTF-8 -*-
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
#连接设备
device = MonkeyRunner.waitForConnection(3,"018e212d20c9787e")
#启动app
device.startActivity("com.android.calculator2/.Calculator")
MonkeyRunner.sleep(2)
#click ...
device.touch(1000,400,"DOWN_AND_UP")
MonkeyRunner.sleep(1)
#click clear
device.touch(800,500,"DOWN_AND_UP")
MonkeyRunner.sleep(1)
#click 7
device.touch(200,700,"DOWN_AND_UP")
MonkeyRunner.sleep(1)
#click +
device.touch(1000,1500,"DOWN_AND_UP")
MonkeyRunner.sleep(1)
#click 8
device.touch(400,700,"DOWN_AND_UP")
image = device.takeSnapshot()
image.writeToFile('./test.png','png')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值