问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么使用monkey测试开关机100次

发布网友 发布时间:2022-04-20 12:56

我来回答

2个回答

热心网友 时间:2022-04-09 11:31

一、为什么要用Monkey 测试?
简单在说就是象猴子一样乱点,为了测试软件的稳定性,健壮性。号称最快速有效的方法。有时候运行相同系列的测试,即使是复杂的测试,但是以相同的顺序和路径,即使一遍又一遍地运行也很少机会能发现内存和资源使用的bug。而此时猴子就比人更有效了。
简介
Monkey是一个命令行工具 ,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。Monkey包括许多选项,它们大致分为四大类:
· 基本配置 选项,如设置尝试的事件数量。
· 运行约束选项,如设置只对单独的一个包进行测试。
· 事件类型和频率。
· 调试选项。
在Monkey运行的时候,它生成事件,并把它们发给系统。同时,Monkey还对测试中的系统进行监测,对下列三种情况进行特殊处理:
· 如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。
· 如果应用程序崩溃或接收到任何失控异常 ,Monkey将停止并报错。
· 如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。
按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。
二、怎么用的?
首先用一个最简单的例子分析:
//p参数: 表示指定测试的程序
//v参数: 表示查看monkey生成的一些详细的随机的事件名
//数字100: 表示测试事件数为100
monkey -p com.example.android.apis  -v -v -v 100
结果如下:
:Monkey: seed=0 count=100
:AllowPackage: com.example.android.apis
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
//各种事件所占的比例。
//各数字分别表示:
[--pct-touch PERCENT]
[--pct-motion PERCENT]
[--pct-trackball PERCENT]
[--pct-syskeys PERCENT]
[--pct-nav PERCENT]
[--pct-majornav PERCENT]
[--pct-appswitch PERCENT]
[--pct-flip PERCENT]
[--pct-anyevent PERCENT]
// Event percentages:
//   0: 15.0%
//   1: 10.0%
//   2: 15.0%
//   3: 25.0%
//   4: 15.0%
//   5: 2.0%
//   6: 2.0%
//   7: 1.0%
//   8: 15.0%
:Switch:
//表示跳转到com.example.android.apis 里面的ApiDemos这一个Activity里。
#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.example.android.apis/.ApiDemos;end
//允许此Intent跳转,
    // Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.android.apis/.ApiDemos } in package com.example.android.apis
//发送的一些动作,如点击按下,点击放开,移动。
:Sending Pointer ACTION_MOVE x=-4.0 y=2.0
:Sending Pointer ACTION_UP x=0.0 y=0.0
:Sending Pointer ACTION_DOWN x=207.0 y=282.0
:Sending Pointer ACTION_UP x=189.0 y=289.0
:Sending Pointer ACTION_DOWN x=95.0 y=259.0
:Sending Pointer ACTION_UP x=95.0 y=259.0
:Sending Pointer ACTION_DOWN x=295.0 y=223.0
:Sending Pointer ACTION_UP x=290.0 y=213.0
:Sending Pointer ACTION_MOVE x=-5.0 y=3.0
:Sending Pointer ACTION_MOVE x=0.0 y=-5.0
//拒绝此跳转,因为它是跳转到非它自己的包的Activity,本测试中是指写测试它程序所在的包,此跳转是跳出本程序,进入到桌面。
    // Rejecting start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] cmp=com.android.launcher/.Launcher } in package com.android.launcher
//继续发送动作。
:Sending Pointer ACTION_DOWN x=74.0 y=201.0
:Sending Pointer ACTION_UP x=74.0 y=201.0
:Sending Pointer ACTION_MOVE x=3.0 y=-2.0
:Sending Pointer ACTION_UP x=0.0 y=0.0
:Sending Pointer ACTION_MOVE x=-4.0 y=2.0
Events injected: 100
//丢弃的,键=0,指针=0,轨迹球=0,翻转=0。
:Dropped: keys=0 pointers=0 trackballs=0 flips=0
//网络统计经过时间为4202ms,其中4202ms是用于在手机上的,0ms用于无线网络上,没有连接的时间为0ms。
## Network stats: elapsed time=4202ms (4202ms mobile, 0ms wifi, 0ms not connected)
//monkey测试完成。
// Monkey finished
从例子中可以看出,该程序在这次测试中没有问题,若程序出现问题终端将打印出异常供程序员查找错误。
以下是monkey命令行的一些参数:
-p:所在测试的包,可以是一个也可以是多个 如 monkey -p com.androd.sms -p com.androd.explorer
-c:如果用此参数指定了一个或几个类别,Monkey将只允许系统启动被这些类别中的某个类别列出的Activity。如果不指定任何类别,Monkey将选择下列类别中列出的Activity: Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY。要指定多个类别,需要使用多个-c选项,每个-c选项只能用于一个类别。
-ignore-crash:当应用程序崩溃或发生任何失控异常时,Monkey将停止运行。如果设置此选项,Monkey将继续向系统发送事件,直到计数完成。
-ignore-timeouts:通常,当应用程序发生任何超时错误(如“Application Not Responding”对话框)时,Monkey将停止运行。如果设置此选项,Monkey将继续向系统发送事件,直到计数完成。
-ignore-security-exceptions:通常,当应用程序发生许可错误(如启动一个需要某些许可的Activity)时,Monkey将停止运行。如果设置了此选项,Monkey将继续向系统发送事件,直到计数完成。
-monitor-native-crashes:监视并报告Android系统中本地代码的崩溃事件。如果设置了–kill-process-after-error,系统将停止运行。
-kill-process-after-error:如果程序出现错误,monkey将结束此程序进程。
-hprof:设置此项,将在monkey事件序列之前和之后立即生成profilling报告。这将会在data/misc中生成大文件(约5mb)所以要小心使用它。
-pct-touch:调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕的某单一位置)。
-pct-motion:动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的随机事件和一个up事件组成)。
-pct-trackball:调整轨迹事件的百分比(轨迹事件由一个或几个随机移动组成,有时还伴随着点击)。
-pct-syskeys:调整系统按键事件的百分比(这些按键通常被保留,由系统使用,如home,back,start call,end call及音量控制)。
-pct-nav 调整基本导航事件的百分比(导航事件来自方向输入设备的up/down/left/right组成)。
-pct-majornav:调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)
-pct-appswitch:调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法。
-pct-anyevent:调整启动Activity的百分比。它包罗了所有其它的事件类型,如:按键,其它不常用的设备按钮。
-pct-flip:
–wait-dbg:停止执行中的Monkey,直到有调试器和它相连接。
–dbg-no-events:设置此选项,Monkey将执行初始启动,进入到一个测试Activity,然后不会再进一步生成事件。为了得到最佳结果,把它与-v、一个或几个包约束、以及一个保持Monkey运行30秒或更长时间的非零值联合起来,从而提供一个环境,可以监视应用程序所调用的包之间的转换。
-setup:
-f:
-port:为monkey开启专用端口。此时只monkey不会帮你乱点击,而此时你自己就是一只monkey了,在你乱点的时候,monkey会输出你点击后回馈的信息。如果你打完命令之后模拟器上没有启动你所要启动的包,你需要自己启动,但是你只能启动你-p中指定的那几个包。ctrl+c中断。
--throttle :当事件起效时等待的毫秒数。
-s:随机数生成器的seed值。如果用相同的seed值再次运行monkey,它将生成相同的事件序列。
COUNT:要发送的事件数。
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
              [-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
              [--ignore-crashes] [--ignore-timeouts]
              [--ignore-security-exceptions] [--monitor-native-crashes]
              [--kill-process-after-error] [--hprof]
              [--pct-touch PERCENT] [--pct-motion PERCENT]
              [--pct-trackball PERCENT] [--pct-syskeys PERCENT]
              [--pct-nav PERCENT] [--pct-majornav PERCENT]
              [--pct-appswitch PERCENT] [--pct-flip PERCENT]
              [--pct-anyevent PERCENT]
              [--wait-dbg] [--dbg-no-events]
              [--setup scriptfile] [-f scriptfile [-f scriptfile] ...]
              [--port port]
              [-s SEED] [-v [-v] ...] [--throttle MILLISEC]
              COUNT

热心网友 时间:2022-04-09 12:49

你知道怎么操作了吗?可以告诉我吗?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 如何利用monkey进行手机app测试 我用monkey测了个软件,后面遇到崩溃就停止运行了... 如何停止Monkey测试 APP测试中的MONKEY命令到底是干什么 android的app应用,monkey测试是怎么录制脚本进行... 动物的全部英语单词 想重做系统 硬盘里的东西都不要了 想重新分区 应该... C盘这些文件在哪里怎么删除? monkey怎么说 棒棒堂monkey的资料 monkey怎么读呀? monkey什么意思 monkey的音标 什么是数据表的“关键字” 分享wifi热点,赚钱的软件 免费WIFI用快上确实好,但是他们的热点从哪来,只... 如何让WIFI热点结合微信公众号月入十万 WiFi无线上网速度很快却是免费的,那运营商赚什么... 免费的wifi热点怎么可以给自己做广告 如何利用猎豹免费wifi赚钱 台湾发型师Monkey是谁 android monkey的测试结果怎么分析? 急!!动物的英语单词 monkey自动化 怎么避免弹窗 执行monkey怎么生成log 农行金穗QQ联名IC贷记卡有什么用? 农行金穗QQ联名IC贷记卡怎么收费的呢?这到底是张... 农行金穗QQ联名IC贷记卡怎么样?有什么优惠 中国农业银行金穗qq联名ic信用卡有哪些特色 我办了一张农行金穗qq联名ic贷记卡我不知道还款日... 请问什么是农行金穗QQ联名卡? 农行金穗qq联名ic贷记卡条件 申请农行金穗QQ联名IC贷记卡多长时间发卡? 农业银行金穗qq联名ic贷记卡怎样激活 农行金穗qq联名ic贷记卡可以取现金吗 农业银行金穗qq联名ic贷记卡的年费吗 农行金穗QQ联名IC贷记卡,与普通信用卡有什么区别?... 农行金穗qq联名ic贷记卡刷卡消费有积分吗 办农行金穗qq联名ic贷记卡要卡费吗 农行金穗qq联名ic贷记卡的最低额度是多少