App测试--ADB Monkey(上)

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送伪随机的用户事件流(点击、滑动、Application切换、横竖屏、应用关闭)实现对正在开发的应用程序进行压力测试。monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法。只针对Activity做测试,不能对Service做测试。

一、Monkey简介:


Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送伪随机的用户事件流(点击、滑动、Application切换、横竖屏、应用关闭)实现对正在开发的应用程序进行压力测试。monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法。只针对Activity做测试,不能对Service做测试。

简单的理解:

Monkey 是一个 Android 自动化测试小工具。主要用于Android 的压力测试, 主要目的就是为了测试app 是否会Crash.

Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试。猴子什么都不懂, 只知道乱敲。通过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。


二、质量要求:


版本release(发布)前,Monkey跑出来的结果中crash要为0,final release前,Monkey跑完的总次数应为25W,结果里不允许有nullPointException出现。


三、使用Monkey:


在cmd命令或者AndroidStudio中的Terminal中都可以使用adb(注意adb的位置,在SDK的tools文件夹下)

1、首先需要将手机连接到PC,测试连接是否正常,找到adb的位置,一般在sdk的tools文件下 ,找到位置然后输入adb devices来进行验证;

2、因测试多针对一个特定的APP包,所以需要知道需要测试包的包名;可以直接问开发,也可以通过 adb shell pm list packages 列出所有包名来进行查找

(不确定包是否已安装,可以用adb shell pm list packages [options] 来进行确认,它的含义是列举出所有包含的package。e.g. adb shell pm list packages com.taobao.taobao)

3、对特定APP包进行测试的命令为adb shell monkey -p


四、Monkey的基本参数:


1、允许启动手机里面所有的 App , 随机操作 1000 次


adb shell monkey 1000


2、-p : 允许启动 App 的包名


  • 启动一个包名的应用

QQ 的包名为:com.tencent.mobileqq

adb shell monkey -p com.tencent.mobileqq 1000

随机操作 手机 QQ 1000 次

  • 启动指定的多个 App

微信的包名为:com.tencent.mm

adb shell monkey -p com.tencent.mobileqq -p com.tencent.mm 1000

随机操作 手机 QQ 和 微信 1000 次


3、-v : 操作日志记录


命令行的每一个-v将增加反馈信息的级别。

  • -v:Level 0(缺省值)除 启动提示、测试完成和最终结果之外,提供较少信息。
  • -v -v :Level 1提供较为详细的测试信息,如逐个发送到Activity的 事件。
  • -v -v -v :Level 2提供更加详细的设置信息,如测试中被选中的或未被选中的Activity。

adb shell monkey -p com.tencent.mobileqq -v -v -v 100


4、-s :伪随机数生成器的seed值


如果用相同的seed值再次运行monkey,将生成相同的事件序列。

adb shell monkey -s 12345 -v 10


5、--ignore-crashes : 忽略操作是崩溃异常


通常,应用发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

adb shell monkey --ignore-crashes -v 1000


6、--ignore-timeouts :忽略超时


通常,应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

adb shell monkey --ignore-timeouts -v 1000


7、--ignore-security-exceptions :忽略程序发生许可异常


通常,当程序发生许可错误(例如启动一些需要许可的Activity)导致的异常时,Monkey将停止运行。设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

adb shell monkey --ignore-security-exceptions -v 1000


8、--throttle :插入固定延迟


在事件之间插入固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定该选项,Monkey将不会被延迟,事件将尽可能快地被执行。

adb shell monkey --throttle 500 -v 500

随机执行 500 个事件,每个事件之间延迟 500 毫秒被执行。


9、--help : 列出简单的用法


adb shell monkey -help


五、将log日志文件保存到指定位置:


android studio 的terminal 下执行命令并且将测试结果保存到指定文件下:

adb shell monkey -p 包名 -s 100 --ignore-crashes --ignore-timeouts  1000000 >C:UsersdingchaoDesktoptestlog.txt
相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
相关文章
|
3月前
|
Java Android开发
Rockchip系列之CAN APP测试应用实现(4)
Rockchip系列之CAN APP测试应用实现(4)
61 1
|
3月前
|
测试技术 UED Python
App自动化测试:高级控件交互技巧
Appium 的 Actions 类支持在移动应用自动化测试中模拟用户手势,如滑动、长按等,增强交互性测试。ActionChains 是 Selenium 的概念,用于网页交互,而 Actions 专注于移动端。在Python中,通过ActionChains和W3C Actions可以定义手势路径,例如在手势解锁场景中,先点击设置,然后定义触点移动路径执行滑动解锁,最后验证解锁后的元素状态。此功能对于确保应用在复杂交互下的稳定性至关重要。
89 5
|
3天前
|
人工智能 自然语言处理 测试技术
基于LangChain手工测试用例转接口自动化测试生成工具
本文介绍利用大语言模型自动生成接口自动化测试用例的方法。首先展示传统通过HAR文件生成测试用例的方式及其局限性,随后提出结合自然语言描述的测试需求与HAR文件来生成更全面的测试脚本。通过LangChain框架,设计特定的提示词模板,使模型能够解析测试需求文档和HAR文件中的接口信息,并据此生成Python pytest测试脚本。示例展示了正常请求、非法请求及无效路径三种测试场景的自动化脚本生成过程。最终,整合流程形成完整代码实现,帮助读者理解如何利用大模型提高测试效率和质量。
16 2
|
2月前
|
人工智能 测试技术 索引
基于LangChain手工测试用例生成工具
使用Python的LangChain框架,测试工程师能自动化从需求文档生成思维导图。代码示例演示了如何加载文档,提取信息,创建向量索引,执行检索,并通过PlantUML生成MindMap图像。流程中,AI替代了手动梳理需求和创建测试用例的过程,涉及的关键组件包括TextLoader、OpenAIEmbeddings、FAISS检索和AgentExecutor。该实践帮助掌握LangChain的检索和Agent功能,以实现文档到测试用例的智能转换。
45 1
|
3月前
|
XML 数据格式
Xpath高阶定位技巧,轻松玩转App测试元素定位!
XPath是一种用于XML文档中节点定位的语言,支持逻辑运算符(and、or、not)、轴定位、谓词和内置函数。
55 0
|
3月前
|
监控 安全 Shell
深入探究App压力测试的关键要点:从零开始学习Monkey
Monkey是Google的自动化测试工具,用于模拟用户随机事件以测试应用的稳定性和压力。它可以在模拟器或设备上运行,通过随机点击发现潜在问题。
70 1
|
3月前
|
测试技术 Android开发
快速上手App自动化测试利器,Toast原理解析及操作实例
`Toast`是Android中的轻量级通知,短暂显示在屏幕任意位置,1-2秒后自动消失,不获取焦点且不可点击。Appium通过uiautomator2在控件树中处理Toast。在测试中,可设置隐式等待,利用XPath或Accessibility ID定位Toast元素进行检测和验证。示例代码展示了如何初始化driver,点击触发Toast,以及如何定位并读取Toast文本。
71 3
|
3月前
|
XML 数据格式 Python
App测试中,强制等待和隐式等待谁更强?
本文介绍了在自动化脚本中添加等待以确保与应用程序同步的重要性。由于应用响应时间的不确定性,适当等待能防止脚本在操作未完成前继续执行,提高测试稳定性。等待包括强制等待(如`time.sleep()`)、隐式等待(全局设置查找元素的等待时间)和显式等待(根据预期条件等待)。示例代码展示了如何在Python的Appium测试中应用这些等待策略,以优化脚本的可靠性和与应用的同步。
39 0
|
3月前
|
测试技术 UED
APP交互性如何测试?
APP交互性如何测试?
|
3月前
|
监控 测试技术 Shell
APP的CPU,内存和流量如何测试?
APP的CPU,内存和流量如何测试?

热门文章

最新文章