zoukankan      html  css  js  c++  java
  • monkey 安装

    monkey的简单介绍
    Monkey测试是Android app自动化测试的一种手段,Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入等,看设备是否出异常。
    当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机事件,所以可以用Monkey用随机重复的方法去测试app.

    一:前提:电脑已经安装AndroidSDK

    1.设安装包: xxx.apk ,包名为:com.xxx_xxx

    2.把安装包放在:C:monkey (monkey为新建的文件夹)

    3.cmd进入命令行,手机和电脑连接。手机打开开发者模式,允许调试

    4.输入:adb devices ,出现下图的提示,表示连接成功,就可以进行下一步操作。

    二:输入命令:cd C:monkey 这样就进入了放置安装包的目录下,就可以安装安装包了

    1.安装包:adb install xxx.apk

    2.查看包名:aapt dump badging C:monkeyxxx.apk

    3. 直接运行10次 :adb shell monkey -v -p com.xxx_xxx(包名) 10

    4.重复以上操作: adb shell monkey -s (seed) -v <envent-count> 如:adb shell monkey -s 1535655135292 -v 10

    5.生成txt日志:adb shell monkey -v -p com.xxx_xxx(包名) 10 >./monkey_log.txt

    三:指定时间参数设置

    在Monkey中,虽然输入的事件是随机产生的,但是可以指定输入事件类型的百分比,让其控制在我们需要的范围内。

    在Monkey中,可以设定的事件类型有:

    --pct-touch <percent>:指定触摸事件的百分比。--pct-motion <percent>:指定滑动事件的百分比--pct-trackball <percent>:指定轨迹球事件的百分比--pct-nav <percent>:指定导航事件中,up、down、left、right等事件的百分比--pct-majornav <percent>:指定导航事件中,back、menu等事件的百分比--pct-syskeys <percent>:指定系统按键的百分比,包括HOME、Back、音量等。--pct-appswitch <percent>:指定Activity之间切换的比例。--pct-anyevent <percent>:指定任意事件的百分比

    默认情况下,如果不设置,会是-pct-anyevent为百分之百,也就是纯随机事件。如果通过其他的参数配置了之后,如果相加的百分比不为百分百,余下的百分比部分也会生成随机事件。

    四、 调试选项

    --ignore-crashes   忽略崩溃

    --ignore-timeouts   忽略超时

    --ignore-security-exceptions   忽略安全异常

    --kill-process-after-error   通知系统停止发生错误的进程;应用程序仅是静止在发生错误时的状态,系统并不会结束该应用的进程

    --monitor-native-crashes   跟踪本地方法的崩溃问题

    adb shell monkey -p 包名 -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v -v 10000 >D:monkeylog.txt

    --throttle 毫秒,在事件之间插入固定的时间毫秒延迟,使用此参数减缓monkey的运行速度;不设置此参数,事件没有延迟,将以最快的速度生成

    adb shell monkey --throttle 300 -v 100

    300毫秒是实际用户操作的最快300毫秒左右的一个动作事件

    五、日志参数

    -v 较少的日志信息 
    -v -v 较为丰富的日志信息 
    -v -v -v 最高级别的日志信息

    一般情况下单个app monkey 模拟测试10万次足矣。

    六、以下是app monkey测试的详细步骤
    1. 先进入cmd界面,输入adb devices,查看是否正常连接。
    2. 输入adb logcat | findstr START 监控app,打开你要测试的app,cmd查看app的包名。cmp=右边的就是app的包名。
    3. 输入adb logcat -c 先清除下logcat日志信息
    4. 输入adb logcat -v time >F:logcat.log
    5. 输入adb shell monkey -p +app包名 -v 10000 >F:monkey.log

    0–> –pct-touch
    1–> –pct-motion
    3–> –pct-trackball
    6–> –pct-nav
    7–> –pct-majornav
    8–> –pct-syskeys
    9–> –pct-appswitch
    11–> –pct-anyevent

    七、通过adb命令做回归测试 

    当开发修改问题后,需要做回归测试验证是否修改ok,此时测试人员需要使用上一次跑的monkey测试中的seed值做回归测试。

    ** System appears to have crashed at event 468 of 1000 using seed 1557722456728

    该seed值,在上次跑完脚本的时候,可以在最后一行显示打印出来,记得日志显示使用详细,即-v -v -v才能看到seed值


    adb shell monkey -p +包名 -s +seed值 -v 10000 
    比如 
    adb shell monkey -p com.shanjian.originaldesign -s 1536629919450 -v10000

    八、monkey日志分析 
    当monkey测试时出现问题,此时我们需要分析定位问题,我们需要分析monkey日志

    Monkey测试出现的异常的原因: 
    一般是两种原因导致的,一个是crash 程序崩溃,导致crash原因如下 
    a)、程序存在空指针 
    b)、cpu不足 
    c)、内存不足

    另一种是ANR 程序无响应,导致anr无响应原因如下: 
    a)、线程阻塞 
    b)、cpu不足 
    c)、内存不足

    查找分析原因:

    1. 当monkey测试出现异常终止,请打开logcat日志搜索关键字‘anrin’,如果存在该关键字,说明app出现了ANR异常,我们需要把/data/anr目录下的trace.txt文件取下来。 
    2. 取下来trace.txt文件后,将出现问题的进程号对应的日志发给软件工程师定位,如果在logcat日志里没有搜索到’anrin’关键字,就搜索’nullpointer’异常关键字的上下日志,发给开发定位 
    3. 当出现ANR后,需要导出,步骤如下: 
    1. 输入adb shell 
    2. 输入cd /data/anr/ 
    3. 输入ls

    退出exit后,直接在cmd下输入
    4. adb pull /data/anr/traces.txt   d: race.txt 
    5. 在logcat将出现anr问题的进程号复制,然后在trace.txt文件里按ctrl+F 查找,粘贴进程号,查找对应的问题

    --------------------- 

    作者:shawn xie123
    来源:CSDN
    原文:https://blog.csdn.net/xiezhiming1234/article/details/82121232
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    C++ Boost Thread 编程指南
    boost的Any库学习
    人生规划,关注未来,才能持续发展
    察言观色—看穿他人心理的6种方法
    MS SQL Server 2008发布与订阅
    WebService代理类中对枚举类型的序列化
    Winform注册和注销全局快捷键
    sql server中如何为数据表添加表的描述MS_Description
    如何修改SQL Server 2008数据库服务器名称
    IIS 上发布网站后编译器错误信息: CS0016: 解决办法
  • 原文地址:https://www.cnblogs.com/bzdmz/p/10852766.html
Copyright © 2011-2022 走看看