自定义脚本的稳定性测试

常规Monkey测试执行的是随机的事件流,但如果只是想让Monkey测试某个特定场景这时候就需要用到自定义脚本了,Monkey支持执行用户自定义脚本的测试,用户只需要按照Monkey脚本的规范编写好脚本,存放到手机上,启动Monkey通过-f 参数调用脚本即可。

测试案例

启动考研帮app3.1.0,然后跳过升级提示和引导页面,进入到登录界面并输入用户名密码进行登录。

需求分析

  • 从用户角度来思考步骤该怎样进行?
  • 要操作的元素该如何定位?
  • 怎样将操作步骤转化为测试脚本?
获取元素坐标点位置

Monkey脚本只能通过坐标的方式来定位点击和移动事件的屏幕位置,这里就需要提前获取坐标信息。获取坐标信息的方法很多,最简单的方法就是打开手机中的开发人员选项,打开“显示指针位置”。随后,在屏幕上的每次操作,在导航栏上都会显示坐标信息。

Monkey脚本API简介

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

Tap(x, y, tapDuration): 模拟一次手指单击事件。参数:x,y为控件坐标,tapDuration为点击的持续时间,此参数可省略。

UserWait(sleepTime): 休眠一段时间

DispatchPress(keyName): 按键。参数: keycode。 RotateScreen(rotationDegree, persist): 旋转屏幕。 参数:rotationDegree为旋转角度, e.g. 1代表90度;persist表示旋转之后是否固定,0表示旋转后恢复,非0则表示固定不变。

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): 模拟缩放手势。

LongPress(): 长按2秒。

DeviceWakeUp(): 唤醒屏幕。

PowerLog(power_log_type, test_case_status): 模拟电池电量信息。

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

RunCmd(cmd): 运行shell命令。

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

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

LaunchInstrumentation(test_name,runner_name): 运行一个instrumentation测试用例。

DispatchTrackball: 模拟发送轨迹球事件。

ProfileWait: 等待5秒。

StartCaptureFramerate(): 获取帧率。

EndCaptureFramerate(input): 结束获取帧率。

Monkey脚本格式

Monkey脚本主要包含两部分,一部分是头文件信息,一部分是具体的monkey命令。

type = raw events

count = 1

speed = 1.0

//下面为monkey命令

start data >>

具体的monkey脚本内容

编写脚本

kyb.txt

#头文件信息

type = raw events

count = 1

speed = 1.0

#启动测试

start data >>

LaunchActivity(com.tal.kaoyan,com.tal.kaoyan.ui.activity.SplashActivity)

UserWait(2000)

Tap(624,900,1000) #点击取消升级

UserWait(2000)

Tap(806,64,1000) #点击跳过

UserWait(2000)

Tap(217,378,1000) #点击用户名输入框

DispatchString(zxw1234)

UserWait(2000)

Tap(197,461,1000) #点击密码输入框

DispatchString(zxw123456)

UserWait(2000)

Tap(343,637,1000) #点击登录按钮

执行脚本

脚本编写完成后,传到手机设备上,然后执行。

adb push C:\Users\Shuqing\Desktop\kyb1.txt /sdcard

adb shell monkey -f /sdcard/kyb1.txt -v 1

执行结果

C:\Users\Shuqing>adb shell monkey -f /sdcard/kyb.txt -v 1

:Monkey: seed=1524592021303 count=1

:IncludeCategory: android.intent.category.LAUNCHER

:IncludeCategory: android.intent.category.MONKEY

Replaying 0 events with speed 1.0

:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.tal.kaoyan/.ui.activity.SplashActivity;end

// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.tal.kaoyan/.ui.activity.SplashActivity } in package com.tal.kaoyan

:Sending Touch (ACTION_DOWN): 0:(267.0,1233.0)

// Allowing start of Intent { act=com.android.systemui.recent.action.TOGGLE_RECENTS cmp=com.android.systemui/.recent.RecentsActivity } in package com.android.systemui

:Sending Touch (ACTION_UP): 0:(267.0,1233.0)

Events injected: 5

:Sending rotation degree=0, persist=false

:Dropped: keys=0 pointers=0 trackballs=0 flips=0 rotations=0

## Network stats: elapsed time=7201ms (0ms mobile, 0ms wifi, 7201ms not connected)

// Monkey finished

注意事项

头文件代码书写注意“=”两边预留空格,否则会出现如下报错。

java.lang.NumberFormatException: Invalid int: ""

参考资料

https://www.cnblogs.com/mgzc-1508873480/p/7911373.html

monkey自定义脚本实践的更多相关文章

  1. Appium - monkey自定义脚本实践(四)

    monkey自定义脚本实践 一.获取元素坐标点位置 二.Monkey脚本API简介 常规Monkey测试执行的是随机的事件流,但如果只是想让Monkey测试某个特定场景这时候就需要用到自定义脚本了,M ...

  2. Appium自动化测试教程-自学网-monkey自定义脚本实践

    自定义脚本的稳定性测试 常规Monkey测试执行的是随机的事件流,但如果只是想让Monkey测试某个特定场景这时候就需要用到自定义脚本了,Monkey支持执行用户自定义脚本的测试,用户只需要按照Mon ...

  3. 笔记之monkey自定义脚本

    自定义脚本的稳定性测试 常规MOnkey测试执行的是随机的事件流,但如果只是想让Monkey测试某个特定场景者时候就需要用到自定义脚本,Monkey支持执行用户自定义脚本的测试,用户之需要按照Monk ...

  4. monkey自定义脚本

    自定义脚本稳定性测试 常规的monkey是执行随机的事件流,如果想让monkey测试某个特定的场景,这个时候需要自定义脚本. 用户需要先笔记好脚本再存放在手机上,通过启动monkey -f参数调用脚本 ...

  5. selenium IDE录制脚本和自定义脚本-->Katalon Recorder(二)

    selenium IDE提供了两种生成脚本的方式:录制脚本和自定义脚本 录制脚本:1.打开firefox空白标签,在标签上输入需要录制脚本的网址:2.打开selenium IDE界面中的录制按钮(圆形 ...

  6. ArcMap自定义脚本工具制作

    原文 ArcMap自定义脚本工具制作 在制图的前期,一般需要做一些数据的整理,如图层合并.裁剪等工作.虽然在ArcMap中也有提供对应的工具,但使用起来需要点技巧.如批量裁剪,虽然可以实现,但出来的结 ...

  7. zabbix 获取不到自定义脚本的值解决

    agent端: zabbix 自定义脚本 [root@localhost script]# cat check_ping.sh #!/bin/bash result=$(/usr/local/nagi ...

  8. 使用自定义脚本扩展程序自动执行 VM 自定义任务

     在 Build 开发者大会上推出VM 扩展程序的其中一个称为"自定义脚本扩展程序",它支持 PowerShell.如果这是您第一次访问这些博客,可能需要查看以前的博客,请单击 ...

  9. 自学Zabbix3.10.1.5-事件通知Notifications upon events-媒介类型自定义脚本

    自学Zabbix3.10.1.5-事件通知Notifications upon events-媒介类型自定义脚本

随机推荐

  1. Java原型模式

    原型模式 原型模式也称克隆模式.原型模式jian ming zhi yi,就是先创造出一个原型,然后通过类似于Java中的clone方法,对对象的拷贝,克隆类似于new,但是不同于new.new创造出 ...

  2. 讲讲跳跃表(Skip Lists)

    跳跃表(Skip Lists)是一种有序的数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的.在大部分情况下,跳跃表的效率可以和平衡树相媲美,并且在实现上比平衡树要更为 ...

  3. PhpStorm 运行出现502 Bad Gateway

    打开PhpStorm,菜单栏File --> Settings... 一.点开Languages & Frameworks 选PHP PHP language level:选PHP版本, ...

  4. 后端开发者的Vue学习之路(四)

    目录 上节内容回顾: npm 介绍 安装 常用命令: 补充: 基于npm的Hello World 项目结构分析 用法迁移 小提醒 ES6语法 知识补充 单文件组件 使用注意: 路由 开启路由 定义路由 ...

  5. Microsoft Dynamics CRM 2015 and Microsoft Dynamics CRM 2016 Performance and Scalability Documentation

    摘要: 本人微信公众号:微软动态CRM专家罗勇 ,回复285或者20181126可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me ...

  6. Oracle获取表字段名,字段类型,字段长度,注释

    SELECT b.comments as 注释, a.column_name as 列名, a.data_type || '(' || a.data_length || ')' as 数据类型, a. ...

  7. git 更新分支的信息

    假如服务器的某个分支删除了,但是本地通过git branch -av还是可以看得到,感觉很烦,通过以下命令就可以更新分支的情况. git fetch origin --prune

  8. 【原】Java学习笔记006 - 流程控制

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:写一万次&q ...

  9. 【转载】FPGA 中的latch 锁存器

    以下这篇文章讲述了锁存器的一些概念和注意事项.原文标题及链接: FPGA 中的latch 锁存器 - 快乐至永远上的博客 - 与非博客 - 与网 http://www.eefocus.com/liuy ...

  10. chrome总是提示“请停用开发者模式运行的扩展程序”

    方法1:通过组策略的扩展白名单.要下载一个组策略管理模板 1.开始 -> 运行 -> 输入gpedit.msc -> 回车确定打开计算机本地组策略编辑器(通过Win + R快捷键可以 ...