自动化测试之 Monkey 自定义脚本测试+日志的管理

         一般情况Monkey测试执行的是随机的事件流,如果只是想让Monkey具体的测试某个特定场景时就需要用到自定义脚本了,因为Monkey支持自定义脚本测试,这时就需要按照Monkey脚本的规则进行脚本编写,再存储到手机上,启动Monkey后通过 -f 参数来调用自定义的脚本即可。

目录

1、开启模拟器坐标导航栏

2、常用 Monkey 脚本 API 介绍

3、了解 Monkey 脚本的格式

4、查看豌豆荚的appActivity

5、编写测试豌豆荚的测试脚本:

6、将编写好的测试脚本放入手机模拟器中

7、执行测试脚本

8、执行脚本后的日志管理


1、开启模拟器坐标导航栏

先打开 夜神模拟器,选择 设置—>开发者选项—>选中 “指针位置” 复选框,接下来在 Nox 的桌面就会显示一个坐标导航栏,有助于快速找到我们选中的内容的坐标

2、常用 Monkey 脚本 API 介绍

# 启动应用的Activity,参数:(包名 和 启动的Activity)
LaunchActivity(pkg_name, cl_name)

# 模拟一次手指单击事件。参数:(x,y为控件坐标,tapDuration为点击的持续时间,不过这个参数可以不用写)
Tap(x, y, tapDuration)

# 休眠一段时间
UserWait(sleepTime)

# 输入字符串 
DispatchString(input)

# 打开或者关闭软键盘 
DispatchFlip(true/false)

# 模拟用户的长按事件
PressAndHold(x, y, pressDuration)

# 用于模拟用户的一个拖拽操作
Drag(xStart, yStart, xEnd, yEnd, stepCount)

#  模拟用户的缩放手势
PinchZoom(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End, stepCount)

# 长按2秒
LongPress()

# 唤醒屏幕
DeviceWakeUp()

# 等待5秒
ProfileWait

# 获取帧率 
StartCaptureFramerate()

# 结束获取帧率
EndCaptureFramerate(input)

# 用来模拟电池电量信息
PowerLog(power_log_type, test_case_status)

# 将电池信息写入sd卡
WriteLog()

# 运行shell命令
RunCmd(cmd)

# 执行一个instrumentation测试用例
LaunchInstrumentation(test_name,runner_name)

# 向指定的位置,发送单个手势
DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFlags)

# 发送按键消息
DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFilags)

3、了解 Monkey 脚本的格式

Monkey 的脚本内容主要包含两部分:一个是头文件信息,另一个是具体的Monkey命令

type = raw events  # = 两边一定要留空格,如果不留空格的话会报错
count = 1          # 指脚本执行的次数
speed = 1.0        # 指脚本执行的速率
# 下面为monkey命令  
start data >>   
# 具体的monkey脚本内容  

4、查看豌豆荚的appActivity

   首先要配置下 aapt,具体配置可参考:aapt配置

# 在 Terminal 中输入:
aapt dump badging /APP包文件路径/wandoujia.apk

找到 'launchable-activity' 对应的启动信息:

5、编写测试豌豆荚的测试脚本:

# wdj.txt
# 头文件信息

type = raw events

count = 1

speed = 1.0

# 启动测试
start data >>

LaunchActivity(com.wandoujia.phoenix2,com.pp.assistant.activity.PPMainActivity)
UserWait(1000)

Tap(24.8,55.9,500)     # 点击左上角图标进入管理页面
UserWait(1000)

Tap(91.8, 449.3,500)   # 点击垃圾清理进入深度清理页面
UserWait(1000)

Tap(231.5,771,300)     # 点击一键清理

6、将编写好的测试脚本放入手机模拟器中

# 在 Terminal 中输入以下命令,将编写好的脚本放入到模拟其中
adb push ./wdj.txt /sdcard

# 如果在执行上面的命令后,出现如下错误
# adb server version (32) doesn't match this client (41); killing...
# * daemon started successfully
adb: error: failed to get feature set: no devices/emulators found

# 解决方法:重新连接以下设备即可
adb connect 127.0.0.1:62001

7、执行测试脚本

# 在 Terminal 输入:
adb shell monkey -f /sdcard/wdj.txt -v 1

8、执行脚本后的日志管理

        对于Monkey的日志管理是使用Monkey测试中的一个关键环节,因为通过对日志管理的分析,可以获取到当前测试对象在测试过程中有没有发生异常,以及发生的概率,也可以同时获取对应的错误信息,能够帮助开发快速定位和解决问题

        Monkey的日志保存方法有:      

# 1、将日志保存在自己的电脑上
adb shell monkey -f /sdcard/wdj.txt -v 1 >/存放路径/wdjj.txt

# 2、将日志保存在设备上面
第一步:adb shell 
第二步:root@android:/ # monkey -f /sdcard/wdj.txt -v 1 >/sdcard/wddj.txt

# 3、将日志中的标准流与错误流进行分开保存(1>保存的是标准流的日志信息,2>保存的是错误流的日志信息)
adb shell monkey -f /sdcard/wdj.txt -v 1 1>/存放路径/right.txt 2>/存放路径/error.txt

发布了37 篇原创文章 · 获赞 63 · 访问量 9684

猜你喜欢

转载自blog.csdn.net/xiao66guo/article/details/97644553