当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/180977.html

相关文章:

  • wzx-jmw:NFL合理,但可能被颠覆。2023-2024
  • 密码技术 (5) - 数字签名
  • php实战案例记录(10)单引号和双引号的用法和区别
  • 嵌入式Linux应用开发-基础知识-第十九章驱动程序基石②
  • trycatch、throw、throws
  • 问 ChatGPT 关于 GPT 的事情:数据准备篇
  • leetcode_17电话号码的组合
  • 记录使用vue-test-utils + jest 在uniapp中进行单元测试
  • 《C和指针》笔记30:函数声明数组参数、数组初始化方式和字符数组的初始化
  • VBA技术资料MF64:遍历单元格搜索字符并高亮显示
  • 一键智能视频编辑与视频修复算法——ProPainter源码解析与部署
  • Flutter开发环境的配置
  • 【超详细】Wireshark教程----Wireshark 分析ICMP报文数据试验
  • Linux命令(92)之rm
  • Mysql主从复制数据架构全面解读
  • ios证书类型及其作用说明
  • 警告-Ubuntu提示W: Possible missing firmware xxx解决方法
  • 有时候,使用 clang -g test.c 编译出可执行文件后,发现 gdb a.out 进行调试无法读取符号信息,为什么?
  • UG\NX二次开发 信息窗口的一些操作 NXOpen/ListingWindow
  • macbook电脑磁盘满了怎么删东西?
  • 解释 RESTful API,以及如何使用它构建 web 应用程序
  • qml使用c++自定义listmodel数据
  • cf 解题报告 01
  • 傅里叶系列 P1 的定价选项
  • 第二十届北京消防展即将开启,汉威科技即将精彩亮相
  • mongodb、mysql、redis 区别
  • 【Flutter】Flutter Web 开发 如何从 URL 中获取参数值
  • 【Java 进阶篇】JDBC Statement:执行 SQL 语句的重要接口
  • Python与数据分析--Pandas操作进阶
  • 国庆小练习