monkey测试

Appium+python自动化(十七)- 你难道是猴哥失散多年的混血弟弟???(超详解)

匿名 (未验证) 提交于 2019-12-02 22:51:30
简介 常用名:Monkey 原名:Monkey 出身年月:不详 职业:自动化测试工具 常住地址:花果山水帘洞1号 1、Monkey简介 Android的官方自动化测试领域有一只非常著名的“猴子”叫Monkey,这只“猴子”一旦启动,就会让被测的Android应用程序像猴子一样活蹦乱跳,到处乱跑。人们常用这只“猴子”来对被测程序进行压力测试,检查和评估被测程序的稳定性。 Android官方对这只“猴子”的描述是这样的:   The Monkey is a program that runs on your emulator or device and generates pseudo-random streams of user events such as clicks, touches, or gestures, as well as a number of system-level events. You can use the Monkey to stress-test applications that you are developing, in a random yet repeatable manner.   Monkey是一个程序,运行在您的模拟器或设备上,并生成伪随机的用户事件流,如点击,触摸或手势,以及一些系统级事件。

Monkey小白入门篇

丶灬走出姿态 提交于 2019-12-02 22:14:33
最近在学appium,涉及到monkey的操作与使用。边学习边总结~~一起加油哈 一、monkey简介   中文名:猴子   职业:压力测试小工具   用途:对待测Android应用程序进行压力测试,测试app是否会crash   Android官方描述: The Monkey is a program that runs on your emulator or device and generates pseudo-random streams of user events such as clicks, touches, or gestures, as well as a number of system-level events. You can use the Monkey to stress-test applications that you are developing, in a random yet repeatable manner. 中文翻译:Monkey是一个程序,运行在您的模拟器或设备上,并生成伪随机的用户事件流,如点击,触摸或手势,以及一些系统级事件。 您可以使用Monkey以随机但可重复的方式对您正在开发的应用程序进行压力测试。   monkey官方文档: https://www.android-doc.com/tools/help/monkey

Android Monkey压测命令

泪湿孤枕 提交于 2019-12-02 09:23:39
测试步骤: 1.安装ADB 2.连接被测手机和电脑 3.打开CMD命令行 4.输入monkey命令 adb shell monkey -p your.package.name --pct-touch 30 --ignore-crashes --ignore-timeouts--throttle 250 -s 2 -v -v -v 5000000 一.monkey测试命令有哪些选项? 1:常用选项 --help:打印帮助信息 -v:指定打印信息的详细级别,一个 -v增加一个级别 , 默认级别为 0 。-v -v -v 为最详细日志。 2:事件选项 -s:指定产生随机事件种子值,相同的种子值产生相同的事件序列。如: -s 200 --throttle:每个事件结束后的间隔时间——降低系统的压力(如不指定,系统会尽快的发送事件序列)。如:--throttle 100 --pct-touch:指定触摸事件的百分比,如:--pct-touch 5% , 相关的还有以下option: --pct-motion <percent> (滑动事件) --pct-trackball <percent> (轨迹球事件) --pct-nav <percent> (导航事件 up/down/left/right) --pct-majornav <percent> (主要导航事件 back key 、

monkey工具使用

北战南征 提交于 2019-12-02 02:04:47
一、搭建环境   只要按照配置Android SDK环境和环境变量即可 二、连接手机   在dos命令下输入“adb devices”   界面会显示已连接设备的信息   在dos命令下输入“adb shell pm list packages”   界面会显示当前安装的软件包名 三、monkey参数大全    参数介绍: -p <允许的包名列表> 用此参数指定一个或多个包。指定包之后,monkey将只允许系统启动指定的app。如果不指定包, monkey将允许系统启动设备中的所有app。 指定一个包:adb shell monkey -p com.shjt.map 100 指定多个包:adb shell monkey -p fishjoy.control.menu –p com.shjt.map 100 -v 用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下 表所示: Level 0 : adb shell monkey -p com.shjt.map -v 100 // 缺省值,仅提供启动提示、测试完成和最终结果等少量信息 Level 1 : adb shell monkey -p com.shjt.map -v -v 100 // 提供较为详细的日志,包括每个发送到Activity的事件信息 Level 2 : adb shell

Monkey测试感想

我与影子孤独终老i 提交于 2019-12-01 20:27:56
monkey测试主要做随机的黑盒测试,通过不断输入伪随机的事件流来测试应用的稳定性,但是由于monkey太过皮,太过随机,最后根本无法控制,很容易陷于一个页面无法出来,或者陷入某个无关紧要的地方无法出来,导致测试结果并不具有很好的意义。 基于上述原因,尝试了一些二次开发monkey的测试工具,例如maxim,可以通过一些黑白名单控制,或者输入指定事件流,或者指定不同的测试随机模式,深度优先或者控件识别等,在使用了之后发现,还是会出现陷入到一个地方出不来的情况,虽然加入了熔断机制,在一个地方执行了太多次数后可以自动触发熔断并拉起,然后还是会进入一个死循环。 当然,基于上述的一些问题,我们可以指定测试哪些页面,但是会发现如果单个指定某几个activity,随机的意义又不是那么大了,我在一个二个页面进行随机,如果页面深度不是很深,那一直在这些页面测试也没有多大意义。由此开始思考,什么样的应用适合进行monkey测试。 以自己的应用来说,主要的页面功能其实不多,就是一个上课页面,其余一些小功能都隐藏在一些小地方,而实际测试过程中,基本都没有触发到小地方,覆盖的activity还是不够的,而上课页面其实以翻页为主,一些功能又隐藏在不同的分页当中,也很难随机到,因此发现并不太适合做monkey测试。那么什么样的应用适合做呢? 以直播软件为例,直播分类,各个直播间,页面结构比较规律

Monkey压力测试

耗尽温柔 提交于 2019-12-01 11:57:10
一、Monkey压力测试的原理 1. adb shell monkey的运行机制 实际上是执行手机中/system/bin/monkey这个脚本; 2. Monkey事件注入机制 Monkey注入系统事件是通过 framework 层的 hidenApi (如:activemanager,inputmanager,windowmanager) 获取系统服务。 Monkey中有11种事件,这些事件在MonkeyEventSource中对事件之间的比例进行设置。Monkey事件根据类型比例生成事件队列,循环查找事件。 a.触摸事件(inputmanager):包括屏幕以及物理键的触摸,滑动,点击事件。 b.Activity事件(activemanager):是指我们调用Android系统组件的事件。 c.Window事件(windowmanager):是指操作Window的事件,例如转屏。 3.Monkey核心类 a. Monkey.java, 程序的入口,根据参数选择合适的MonkeyEventSource,并适时触发MonkeyEvent; b. MonkeyEventSource.java, MonkeyEvent的工厂,是一个接口; c. MonkeyEvent.java,各种事件的具体实现。 二、查找手机上的安装包包名 1.adb shell pm list package

测试那些事儿-monkey脚本

强颜欢笑 提交于 2019-12-01 08:56:14
monkey脚本主要包含两部分,一部分是头部信息,另一部分是monkey命令。 # 头文件信息 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 注意事项 头文件代码书写注意 “=”两边预留空格

Android压力测试命令monkey详解

╄→гoц情女王★ 提交于 2019-11-30 05:21:49
一、Monkey 是什么? Monkey 就是SDK中附带的一个工具。 二、Monkey 测试的目的? :该工具用于进行压力测试。 然后开发人员结合monkey 打印的日志 和系统打印的日志,结局测试中出现的问题。 三、Monkey 测试的特点? Monkey 测试,所有的事件都是随机产生的,不带任何人的主观性。 四、Monkey 命令详解 1).标准的monkey 命令 [adb shell] monkey [options] <eventcount> , 例如: adb shell monkey -v 500 --------产生500次随机事件,作用在系统中所有activity(其实也不是所有的activity,而是包含 Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY 的activity)。 上面只是一个简单的例子,实际情况中通常会有很多的options 选项 2).四大类—— 常用选项 、 事件选项 、 约束选项 、 调试选项 1:常用选项 复制代码 代码如下: --help:打印帮助信息 -v:指定打印信息的详细级别,一个 -v增加一个级别 , 默认级别为 0 。 2:事件选项 复制代码 代码如下: -s:指定产生随机事件种子值,相同的种子值产生相同的事件序列。 如: -s 200 --throttle

monkey详解

天涯浪子 提交于 2019-11-29 16:03:47
Monkey是Android系统自带的一个命令行工具,用户主要是通过adb命令来启动Monkey,Monkey在运行时,会根据命令行参数的配置,生成伪随机事件流,并在Android设备上执行对应的测试事件。同时,Monkey还会对测试系统进行监测 Monkey综合示例: 例子:adb shell monkey -p com.macrovideo.v380pro --ignore-crashes --ignore-timeouts --kill-process-after-erro --ignore-security-exceptions --throttle 1000 -v -v -v -s 5 1000000 > E:\log.txt 这条命令就是向系统发送1000000次随机事件,各随机事件的时间间隔为1秒钟,它的种子时5,测试过程中忽略相关的安全、 超时、崩溃等异常。 输出Monkey的命令行使用方法: —— -v 表示反馈信息的级别,Monkey命令行中每增加一个-v参数,Monkey日志反馈信息的级别就会对应增加一个Level —— -s <seed>伪随机数生成器的种子值,如果用相同的种子值再次运行Monkey —— --throttle<milliseconds> 在事件之间插入固定延迟,通过这个选项可以减缓Monkey的执行速度。 如果不指定该选项

ADB常用命令

一世执手 提交于 2019-11-29 04:53:17
ADB常用命令 常用命令 环境变量配置好后就可以开始使用命令了 显示系统中全部设备: adb devices 终止adb服务进程: adb kill-server 重启adb服务进程: adb start-server 查看屏幕分辨率: adb shell wm size 安装apk到sd卡: adb install -s // 比如:adb install -s baidu.apk 安装APK: adb install //比如:adb install baidu.apk 卸载APK: adb uninstall //比如:adb uninstall com.baidu.aaa 卸载app但保留数据和缓存文件: adb uninstall -k //比如:adb uninstall -k com.baidu.search 设备连接 连接设备: adb connect 192.168.1.61 断开设备: adb disconnect 192.168.1.61 列出手机装的所有app的包名: adb shell pm list packages 列出系统应用的所有包名: adb shell pm list package -s 列出除了系统应用的第三方应用包名:adb shell pm list package -3 adb shell pm list package -f