zoukankan      html  css  js  c++  java
  • Monkey稳定性测试——你必须要懂的App稳定性测试

    App稳定性测试

    稳定性测试就是指软件长时间的持续运行,系统版本是否稳定,是否能否持续的为用户提供服务。

    指标:
      异常的次数
      异常的频率

    App的稳定性测试如何实施?

    首选Monkey

    Monkey是向系统发送随机的用户事件流(如按键输入、触摸屏输入和手势输入等),实现对正在开发的应用程序进行稳定性测试。可以更好的模拟用户操作,确保App的稳定性。

    Monkey运行原因

    1、Monkey 程序是由 Android 系统自带,使用 Java 语言写成,其本身是安卓系统下的一个monkey.jar文件。在Android文件系统中的存放路径是: /system/framework/monkey.jar;

    2、Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey;
    3、Monkey 启动方式:在 cmd 命令提示符里面输入命令行来启动 monkey 测试。

    4、命令行:adb shell monkey——monkey.shell——monkey.jar——安卓进程——设备上执行测试

    Monkey原理图:

    在这里插入图片描述

    一、所需软件:

    Python3.7
    Pycharm社区版
    SDK 下载网址:http://www.androiddevtools.cn/
    雷神模拟器
    58同城apk

    二、SDK环境搭建

    1、下载 android-sdk,这个是做 android 测试和开发的必备环境,如果不

    会下载的话,在 QQ 群:644956177群文件下载

    1、解压后,里面有个 SDK manager.exe 双击打开
    在这里插入图片描述
    3.勾选你要现在的 API 版本和对应的 android 版本,后面模拟器会用到,然后坐等下载
    在这里插入图片描述
    在系统变量新建:ANDROID_HOME,对应变量值:
    E:android-sdk-windows(sdk 安装路径)在这里插入图片描述
    2.path 添加两个变量,将以下箭头所指的两个文件路径添加到 path 里
    在这里插入图片描述
    path下添加如下两个路径:

    E:android-sdk-windows ools 和 E:android-sdk-windowsplatform-tools在这里插入图片描述
    adb环境

    1.因为 adb 是在 D:androidsdkandroid-sdk-windowsplatform-tools

    这个目录下的,所以上面添加了环境变量后,可以直接在 cmd 里面运行了。

    2.在 cmd 输入 adb 可以查看对应版本号
    在这里插入图片描述
    三、连接雷神模拟器—adb connect 127.0.0.1:5555

    首先要打开USB调式选项(默认是没有开启调式模式的)

    开启调式模式操作步骤:依次打开设置–关于-连击5次版本号,再返到我设置主页就可以看到开发者选项
    在这里插入图片描述
    雷电模拟器:adb connect 127.0.0.1:5555

    使用指令:adb devices
    在这里插入图片描述
    连接信息解释
    手机设备:显示设备的序列号,即b2355f8a

    模拟器:显示ip地址和端口,即127.0.0.1:62001

    device:已识别的设备,连接成功

    unauthorized:没有授权,需要手机上授权后才能连接

    unkown:未识别的设备

    offline:离线设备

    主流安卓模拟器连接方式:
    夜神模拟器:adb connect 127.0.0.1:62001
    逍遥安卓模拟器:adb connect 127.0.0.1:21503
    天天模拟器:adb connect 127.0.0.1:6555
    海马玩模拟器:adb connect 127.0.0.1:53001
    网易MUMU模拟器:adb connect 127.0.0.1:7555 MacOS:adb connect 127.0.0.1:5555
    genymotion模拟器:adb connect 127.0.0.1:5555
    谷歌原生模拟器:adb connect <设备的IP地址>:5555

    Monkey

    Monkey命令-事件数
    Monkey支持的所有命令

    adb shell monkey
    在这里插入图片描述

    必选的命令

    COUNT:事件数
    通过事件数量来测试稳定性
    adb shell monkey 次数 即,adb shell monkey 50在这里插入图片描述
    注:可能小伙伴发现这速度也忒快了,我看都没看清,这人的速度也没这么快,不合理。哈,那接着,控制每一次操作的间隔时间

    Monkey命令-事件间隔
    –throttle 在事件之间插入固定延迟。通过这个选项可以控制Monkey发送事件的频率。时间单位是ms(毫秒)1000毫秒=1秒

    例1:发送10个事件,持续执行时间1分钟

    adb shell monkey --throttle 6000 10,即10个事件,做完一个事件就等待6秒后再执行
    在这里插入图片描述
    备注:扯了半天,小伙伴想知道我要去检测公司的app倒 底要怎么整

    Monkey命令-指定包

    p 此参数指定了一个包,Monkey将只允许系统启动这些包里的Activity

    -p -p 如果用此参数指定了多个包,Monkey将只允许系统启动这些包里的Activity
    例3:对58同城进行稳定性测试,执行100次事件
    adb shell monkey -p com.wuba 100
    在这里插入图片描述

    获取包名

    adb shell pm list packages
    在这里插入图片描述
    知识点:

    有可伙伴可能会问,我压根不知道我学习的app的名包叫啥那怎么找呢?
    aapt dump badging D: estxxx.apk(APK的全名),如手机淘宝.apk
    在这里插入图片描述
    Monkey命令-日志设置
    -v Level 0 除启动提示、测试完成和最终结果之外,提供较少信息

    -v-v Level 1 提供较为详细的测试信息,如逐个发送到Activity的事件

    -v-v-v Level 2 提供更加详细的设置信息,如测试中被选中的或未被选中的Activity。

    例4:对58同城进行稳定性测试,执行100次事件,分别查看不同日志级别记录的信息情况

    adb shell monkey -p com.wuba -v 100
    adb shell monkey -p com.wuba -v-v 100
    adb shell monkey -p com.wuba -v -v -v 100

    日志导出到本地

    adb shell monkey -p com.wuba -v-v-v 100 >d:wuba.txt
    在这里插入图片描述
    Monkey命令-seed值
    在Monkey运行过程中,肯定会发现异常、奔溃、无响应等问题,对于此类问题如何进行复现呢?

    -s 伪随机数生成器的seed值。如果用相同的seed值再次运行Monkey,它将生成相同的事件序列。

    使用场景:

    复现bug,回归测试(验证bug)
    adb shell monkey -s 1593077384911 -p com.wuba -v-v-v 100 >d:wuba4.txt
    adb shell monkey -s 100 -p com.wuba -v-v-v 50

    在Monkey运行过程中,我们可以通过结束进程的方式来终止Monkey的执行,当然在运行过程中遇到异常、奔溃等情况Monkey也会停止。为了保证执行的事件数执行完整,我们可以通过调试选项的设置来防止在运行过程中Monkey命令的提前结束。

    –ignore-crashes 忽略在应用程序出现crash时导致的monkey停止

    –ignore-timeouts 忽略在应用程序出现ANR问题时导致monkey停止

    –ignore-security-exceptions 忽略应用程序发生许可错误时导致monkey停止

    例5:对58同城进行稳定性测试,执行50次事件,忽略过程中遇到的异常,直到50次事件完成

    adb shell monkey -p com.wuba --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions -v-v-v 50

    部份参数:

    –pct-touch:触摸事件 --pct-trackball :轨迹事件

    –pct-motion:动作事件(手势) --pct-nav :基本导航事件

    –pct-appswitch:启动activity事件 -pct-majornav:主要导航事件

    –pct-rotation:屏幕旋转事件 --pct-syskeys:“系统”按键事件

    总结:

    1、Monkey是对安卓apk进行随机事件的操作,通过报告来查看apk是否稳定

    2、只适用安卓平台

    3、根据公司不同产品的特性可设置不同概率来针对性测试或回归(如抖音他的滑动频率高)

    如果对软件测试、接口测试、自动化测试、性能测试、持结集成、面试经验交流。感兴趣可以644956177,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

  • 相关阅读:
    iOS工作笔记(十二)
    隐藏底部导航栏tabbar
    SDWebImage的使用及图片不改变问题的解决
    NSString转化为NSDictionary
    makeObjectsPerformSelector用法
    iOS中点与像素
    iOS动画的简单介绍
    Pods安装时卡在Updating local specs repositories界面时的处理
    使用uicollectionView时需要注意的问题
    Sublime Text 3 自定义配置快捷键
  • 原文地址:https://www.cnblogs.com/TFBOYS0806/p/13578005.html
Copyright © 2011-2022 走看看