欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

monkey测试跑多个apk|monkey命令

程序员文章站 2022-03-25 21:39:27
1.如何跑多个apk的monkey? 黑名单:执行除了黑名单中以外的apk; 白名单:只执行在白名单中的apk。 黑名单的设置方法: a.创建一个名称为blacklist的txt文档,在文件中输入应用程序的包名,如mms应用,则在文件中输入com.android.mms; 如果有多个应用程序不想被执 ......

1.如何跑多个apk的monkey?

黑名单:执行除了黑名单中以外的apk;

白名单:只执行在白名单中的apk。

 

黑名单的设置方法:

a.创建一个名称为blacklist的txt文档,在文件中输入应用程序的包名,如mms应用,则在文件中输入com.android.mms;

   如果有多个应用程序不想被执行,则在文件中添加多个包名,注意包名与包名之间均用回车键。

b.将blacklist.txt的文件导入到手机的/data目录下,然后在执行monkey测试的时候使用--pkg-blacklist-file参数再加上blacklist文件的存储路径,其他的参数设置则和测试单一apk没有区别。

 

例子:

monkey --pkg-blacklist-file /data/blacklist.txt -c <options> -s <seed> <限制语句> --throttle <milliseconds> -v 执行次数> d:\blacklist_test.txt //执行黑名单以外的应用(注意pkg前面两个‘-’

 

白名单的设置方法:

白名单的设置方法和黑名单的设置方法基本一致,只是在创建txt文档的时候,文件的命令应为whitelist。在执行monkey的时候,只执行白名单中的应用。

 

例子:

monkey --pkg-whitelist-file /data/whitelist.txt -c <options> -s <seed> <限制语句> --throttle <milliseconds> -v 执行次数 > d:\whitelist_test.txt //执行白名单的应用(注意pkg前面两个‘-’)

 

一、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. 四大类

        常用选项
        事件选项
        约束选项
        调试选项

具体的命令解释可以看这里:android 压力测试命令monkey详解

1).一个简单的monkey命令如下:

    adb shell monkey -p com.example.xystudy -s 500 -v 10000

2).工作中为了保证测试数量的完整进行,我们一般不会在发生错误时立刻退出压力测试。monkey 测试命令如下:

/**
 * monkey 作用的包:com.ckt.android.junit
 * 产生时间序列的种子值:500
 * 忽略程序崩溃、 忽略超时、 监视本地程序崩溃、 详细信息级别为2, 产生10000个事件 。
 */
  adb shell monkey -p com.xy.android.junit -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 > e:\monkey_log\java_monkey_log.txt

3).对了,如果monkey事件无法触发,或出现这种情况** sys_keys has no physical keys but with factor 2.0%.
在命令中加入–pct-syskeys 0,如下:

  adb shell monkey -p com.android.browser --pct-syskeys 0 -v 500

二、强制停止monkey测试

adb shell ps | awk '/com\.android\.commands\.monkey/ { system("adb shell kill " $2) }'