• Monkey测试


    目录

    一:测试环境搭建

    二:monkey测试:

    三:seed实践

    四:--throttle实践

    五:忽略崩溃事件

    六:忽略超时事件

    七:Monkey测试可以测试哪些方面的功能?

    八:在Monkey测试期间,应该需要注意哪些方面的问题?

    九:Monkey测试的优点和缺点是什么?

    十:Monkey测试期间,如何监控和记录测试结果?

    十一:Monkey测试对测试用例的覆盖率有何影响?

    十二:如果Monkey测试发现了某个应用程序的问题,您是如何解决它的?

    十三:如何保证Monkey测试的可靠性和有效性?

    十四:怎样制定有效的Monkey测试策略?


    一:测试环境搭建

                  1:下载android-sdk_r24.4.1-windows

                  2:下载Java

                  3:配置环境变量:关于怎么配置环境变量(百度一下:monkey环境搭建,)

    二:monkey测试:

    1:基本命令:

    adb shell monkey

    注:在这个操作之前,设备必须要电脑连接,如图:

      

    2:monkey高级参数应用

    Seed实践

           1:首先要打开待测得apk,然后在命令行里面输入:

    adb shell dumpsys activity | find “mFocusedActivity”,获

    取要测试的APP包名,如图:

    以计算器为例,测试

    命令:

    adb shell monkey –p com.android.calculator2 –v 100

    注:-p: 用此参数指定一个或多个包。指定包之后,monkey将只允许系统启动指定的app

     -v:用亍指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别

    如图:

    三:seed实践

           用亍指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的

     命令:

    adb shell monkey –p com.android.calculator2 –v 1000

    执行过程出现程序报错,

    如图的意思:在执行第七次时,随机数生成器的seed值,如:seed值后面的数值。Seed值一般用于复现现象,比如说:当程序出现报错时,会随机生成seed值,此时只要在命令中加入seed值,就能复现问题。

    输入:

    adb shell monkey -p com.android.calculator2 -s 1262865229687 1000

    四:--throttle实践

                  用亍指定用户操作(即事件)间的时延,单位是毫秒;如果指定这个参数,monkey会尽可能快的 生成和发送消息

           输入:

    adb shell monkey -p com.android.calculator2 –-throttle 3000 100

    :忽略崩溃事件

    --ignore-crashes,

    APP压力测试12小时,会出现各种程序报错和异常,需要加入:以下参数:

    输入:

    adb shell monkey -p com.android.calculator2 --ignore-crashes –v –v 100000

    即使出现程序报错异常,也照常测试,不会停止测试

    六:忽略超时事件

    --ignore-timeouts

    APP压力测试12小时,会出现各种程序报错和异常,需要加入:以下参数:输入:

    adb shell monkey -p com.android.calculator2 --ignore-timeouts –v –v 100000

    即使出现程序超时等待,也照常测试,不会停止测试

    Monkey  日志结果分析

    1crash结果析取

           实践过程:1:安装待测试的APP

                         2:执行压力命令

                         3:析取crashException的信息

    例子:

    adb shell monkey -p com.android.calculator2 -v -v 1000 >D:123.txt

     在测试计算器时,出现报错,可以查看log日志,在日志中搜索“”crash“”关键字

          

          

    截取crash之后的log信息,提供给开发工程师,分析原因

    21ANR结果析取

           实践过程:1:安装待测试的APP

                         2:执行压力命令

                         3:析取ANRException的信息

    例子:

    adb shell monkey -p com.android.calculator2 --ignore-crashes -v -v 10000 >D:123.txt

    在测试计算器时,出现程序无响应时,可以查看log日志,在日志中搜索“”crash“”关键字

    Monkey参数大全,请参考:百度    

    http://www.cnblogs.com/bixiaopeng/articles/2149904.html

    七:Monkey测试可以测试哪些方面的功能?

    Monkey测试可以测试以下方面的功能:

    1. 应用程序的稳定性:Monkey测试可以测试应用程序的稳定性,避免应用程序崩溃或出现错误。

    2. 用户界面:Monkey测试可以测试应用程序的用户界面,包括按钮、文本框、滑动条、图标等等。

    3. 资源管理:Monkey测试可以测试应用程序的资源管理能力,包括内存、CPU使用情况等。

    4. 应用程序的兼容性:Monkey测试可以测试应用程序在不同版本的操作系统、不同型号的手机以及不同语言环境下的兼容性。

    5. 应用程序的安全性:Monkey测试可以测试应用程序的安全性,发现可能存在的漏洞和风险。

    6. 其他功能:Monkey测试还可以测试应用程序的性能、响应速度、网络连接、数据存储等等。

    八:在Monkey测试期间,应该需要注意哪些方面的问题?

    在Monkey测试期间,应该注意以下几个方面的问题:

    1. 确保测试设备的安全:由于Monkey测试会随机触发各种操作,因此执行Monkey测试时需要注意测试设备的安全问题,避免发生数据丢失等问题。

    2. 指定测试包范围:在进行Monkey测试时,需要指定测试包的范围,避免对系统中不需要测试的应用程序造成干扰。

    3. 配置Monkey测试参数:Monkey测试需要指定各种参数,如事件频率、随机种子等,这些参数需要根据具体情况进行配置。

    4. 监测测试结果:在执行Monkey测试时需要实时监测测试结果,分析测试日志,及时发现问题并解决。

    5. 根据测试结果进行优化:根据Monkey测试的结果,优化应用程序,提高其稳定性和可靠性。

    九:Monkey测试的优点和缺点是什么?

    Monkey测试是一种随机测试方法,通过随机输入来模拟用户的操作,测试应用程序的稳定性。其优点和缺点如下:

    优点:

    1. Monkey测试可以快速发现应用程序的潜在缺陷和稳定性问题,帮助开发人员及早修复问题。
    2. Monkey测试可以提高测试覆盖率,模拟用户的实际使用场景,更全面地测试应用程序。
    3. Monkey测试可以自动化进行,不需要人工干预,提高测试效率和节省测试成本。

    缺点:

    1. Monkey测试是一种随机测试方法,不能保证测试覆盖率和测试质量,可能会漏测一些关键的功能点。
    2. Monkey测试无法检查应用程序的功能逻辑和业务流程,不能完全模拟用户的实际使用场景。
    3. Monkey测试可能会产生误报和误判,需要进行人工复核和验证。

    因此,在进行Monkey测试时,需要综合考虑其优点和缺点,选择合适的测试场景和参数,结合其他测试方法进行全面测试。

    十:Monkey测试期间,如何监控和记录测试结果?

    要监控和记录Monkey测试的结果,可以采取以下措施:

    1、使用ADB工具来捕获Monkey测试期间的日志和事件流。使用以下命令在终端窗口中启动Monkey测试,并将结果输出到一个文本文件中:

    adb shell monkey -p com.example.app -v 5000 > /sdcard/monkey_results.txt
    

    2、在测试应用程序中添加日志记录,以便在测试期间捕获和记录关键信息。可以使用logcat命令来查看测试期间的日志。

    adb logcat <package_name>:<log_level> *:S
    

    3、使用第三方测试软件(例如Appium和UIAutomator),以可视化的方式记录Monkey测试期间的结果。这些工具提供了丰富的日志记录和结果报告功能。

    4、手动检查应用程序的行为和性能,以查看是否有任何不寻常的行为或错误。

    十一:Monkey测试对测试用例的覆盖率有何影响?

    Monkey测试主要是随机生成用户行为,并触发应用程序的各种功能,因此可以对测试用例的覆盖率产生一定的影响。具体来说,Monkey测试可以帮助发现应用程序中的一些难以被手动测试到的问题,比如在异常情况下的崩溃、内存泄漏、死锁等。通过记录Monkey测试的执行过程和结果,可以生成一些新的测试用例,进一步提高测试用例的覆盖率和软件的稳定性。但是,需要注意的是,Monkey测试并不是万能的,它也有其局限性,只能发现一部分问题,而且测试过程中可能会产生误报和漏报。因此,在进行Monkey测试时,需要结合其他测试方法一起使用,以提高测试效果和测试用例的覆盖率。

    十二:如果Monkey测试发现了某个应用程序的问题,您是如何解决它的?

    如果Monkey测试发现了某个应用程序的问题,以下是一些可能的解决方案:

    1. 重现问题:尝试重现Monkey测试时发生的问题。如果能够重现问题,那么可以更容易地确定问题的原因,并采取适当的措施来解决它。

    2. 日志分析:通过分析应用程序的日志,查看是否有任何错误或异常信息,这可以帮助确定问题的原因。可以使用Android Studio或其他一些工具来查看日志。

    3. 代码检查:检查应用程序的代码,查看是否存在一些可能导致问题的代码。也可以使用代码静态分析工具来检查应用程序的代码。

    4. 修复代码:对于发现的问题,需要修复应用程序中的代码。修复后,可以重新进行Monkey测试,以确保问题已经得到解决。

    5. 单元测试:针对可能引起问题的代码,编写单元测试用例进行测试。这可以确保在修复问题后,应用程序没有引入新的问题。

    6. 定期进行Monkey测试:持续进行Monkey测试,并将测试结果记录下来。这有助于发现潜在的问题,并及时解决它们。

    十三:如何保证Monkey测试的可靠性和有效性?

    要保证Monkey测试的可靠性和有效性,可以考虑以下几个方面:

    1. 确定测试范围和测试目标,根据测试目标制定测试计划和测试用例。

    2. 在测试前准备好测试环境,包括设备、软件和测试数据等。

    3. 在测试过程中记录测试结果和日志,以便分析和排查问题。

    4. 调整Monkey测试工具的参数,包括事件数量、事件类型、事件时间间隔等,以最大程度地覆盖应用的功能和场景。

    5. 对测试结果进行分析和评估,根据测试结果调整测试用例和参数,提高测试覆盖率和效果。

    6. 在测试结束后及时总结经验,记录并反馈测试中发现的缺陷和问题,以便后续优化和改进。

    7. 结合其他测试方法,如手工测试、自动化测试等,进行综合测试,提高测试质量和效率。

    十四:怎样制定有效的Monkey测试策略?

    Monkey测试是一种随机测试方法,旨在测试应用程序的稳定性和可靠性。要制定有效的Monkey测试策略,您可以遵循以下步骤:

    1. 确定测试环境和设备:确定应用程序运行的操作系统版本和设备,并确保测试设备已正确配置。

    2. 定义测试场景:根据应用程序的功能和用户需求,确定需要测试的场景,例如输入、滚动、点击、旋转等。

    3. 设置测试参数:设置Monkey测试的参数,如事件频率、事件类型、测试时间和包含的应用程序等。

    4. 创建测试计划:编写一份详细的测试计划,包括测试场景、测试参数和测试结果的分析方法。

    5. 执行Monkey测试:在测试环境中执行Monkey测试,记录测试结果并生成测试报告。

    6. 分析测试结果:分析测试结果,确定应用程序中存在的错误和问题,并创建缺陷报告。

    7. 提交缺陷报告:将缺陷报告提交给开发团队,以协作解决问题。

    总之,制定有效的Monkey测试策略需要深入了解应用程序的功能和用户需求,同时需要充分考虑测试环境和测试参数。

  • 相关阅读:
    【消息队列】MQ 八股文必背
    SpringMVC——Controller如何将数据响应给客户端
    java 浅谈ThreadLocal底层源码(通俗易懂)
    fasthttp + `page partial gziped cache`: 页面输出服务性能提升20%
    linux 学习 day08 多线程
    Jmeter二次开发实现rsa加密
    CH549/CH548学习笔记1 - 硬件设计
    三菱FX3U小项目—传输带定分级控制
    TCGA下载和表达矩阵整理:最适合初学者的教程
    大数据基础设施搭建 - Flink
  • 原文地址:https://blog.csdn.net/LYX_WIN/article/details/133123947