首页 > 其他分享 >自动化测试:Monkey工具实践应用~

自动化测试:Monkey工具实践应用~

时间:2024-08-29 20:48:49浏览次数:11  
标签:脚本 monkey monkeyrunner assert 测试 自动化 Monkey

在移动应用的自动化测试中,意外的用户操作和各种不可预见的场景往往是导致应用崩溃的主要原因。如何有效地模拟这些复杂场景,成为了测试工程师的一大挑战。而在这一过程中,Monkey工具凭借其随机化测试的独特优势,成为了许多团队的利器。

那么,Monkey工具究竟是如何帮助测试工程师发现隐藏在应用深处的bug的?它在实践中又是如何应用的?

 

 

本文将介绍monkey在自动化测试中的使用技术,主要包括monkey的安装和配置,使用monkey进行自动化测试的步骤,以及monkey的常用选项和技巧

Monkey工具是一种常用于Android应用程序测试的随机输入工具。它可以在应用程序中生成大量随机事件,模拟用户的各种操作,从而帮助测试人员发现潜在的崩溃点。比如,在一次复杂的移动应用测试中,某测试团队利用Monkey工具,在短时间内生成了数十万次随机事件,最终定位了几个难以重现的崩溃问题。这些问题可能在手工测试中很难发现,但通过Monkey的随机测试,得以提前修复,避免了上线后的用户投诉。

 

 

01 Monkey的安装和配置

 

 

Mac OS X

在Mac OS X中,可以通过终端进行monkey的安装和配置

  • 安装monkeyrunner
brew install monkeyrunner

 

  • 配置环境变量
export MONKEY_HOME = /usr/local/bin

export PATH = $PATH:$MONKEY_HOME

eval "$(monkeyrunner -e 'print [info priority=1 "MONKEY_HOME is $MONKEY_HOME"]')"

 

使用monkey

monkeyrunner your_script.app

 


Windows

在Windows中,可以从monkey官网下载monkey安装程序。

  • 安装monkeyrunner
https://sourceforge.net/projects/monkeyrunner/files/latest/download

 

  • 配置环境变量
set MONKEY_HOME = C:\monkeyrunner

set PATH = %MONKEY_HOME%;%PATH%

 

  • 使用monkey
monkeyrunner your_script.exe

 

 

 

 


02 Monkey的使用步骤

 

 

 

准备测试环境

在进行自动化测试之前,需要准备好测试环境,包括测试用例、测试数据等。

编写测试脚本

编写测试脚本,并将其保存为.monkey文件。

运行测试脚本

在monkey的命令行界面中,运行测试脚本即可开始自动化测试。

查看测试结果

测试结果会在命令行界面中显示,可以通过输出信息来确定测试结果是否符合预期。

 

 

 

 

03 Monkey的常用选项和技巧

 

 

-r 参数

-r参数用于指定monkey执行测试脚本的次数,可以使用多次来运行同一个测试脚本,以覆盖不同的测试场景。

  • 例如可以使用以下命令来运行5次测试脚本:
monkeyrunner -r 5 your_script.monkey

 


-j 参数

-j参数用于指定monkey使用的Java虚拟机,可以使用不同的Java虚拟机来运行同一个测试脚本,以适应不同的测试环境。

  • 例如可以使用以下命令来使用Oracle JDK执行测试脚本:
monkeyrunner -j oracle.jdk.X.X.X your_script.monkey

 


-t 参数

-t参数用于指定monkey测试用例的名称,可以使用不同的测试用例名称来运行同一个测试脚本,以覆盖不同的测试场景。

  • 例如可以使用以下命令来运行5个不同的测试用例:
monkeyrunner -t test_1,test_2,test_3,test_4,test_5 your_script.monkey

 


使用assert语句

在monkey的测试脚本中,可以使用assert语句来检查测试用例的执行结果

  • assert语句的格式如下:
assert [expression]

 

其中,expression为一个表达式,表达式的结果必须为true或false。

  • 如果表达式的结果为false, assert语句将会失败,并输出失败信息。
  • 如果表达式的结果为true,assert语句将会成功,并输出成功信息。

例如,以下代码使用assert语句检查一个字符串是否为空:

string = "hello"

assert string == ""

 

如果assert语句检查失败,将会输出失败信息:

AssertionError: expected: "" but was:

hello

 

如果assert语句检查成功,将会输出成功信息:

AssertionError: expected: "" but was:

 


如果你正在进行Android应用的自动化测试,想要提升测试的覆盖率和效率,强烈推荐你试试Monkey工具。它不仅简单易用,还能有效发现手工测试难以捕捉的问题,是移动测试工程师必备的工具之一。

Monkey工具的应用不仅提升了测试的广度和深度,还通过模拟真实用户行为,帮助开发团队提前发现并解决潜在问题,保障了应用的稳定性和用户体验。

自动化测试的真正价值,不仅在于提升效率,更在于帮助我们发现和解决那些肉眼难以察觉的隐患,保障产品的最终质量。


 

标签:脚本,monkey,monkeyrunner,assert,测试,自动化,Monkey
From: https://www.cnblogs.com/zhuuque23/p/18387525

相关文章

  • 性能测试教程3:性能测试执行教程从数据准备到压测执行
    性能测试环境准备一、操作系统--生产环境常用Linux前置--学习《Linux计算机操作系统基础知识》Linux_测试媛小七的博客-CSDN博客没有合适资料的同学可以跟着我的linux专栏内容学习1、Centos72、非Linux-可以安装虚拟机二、性能测试环境:服务器配置1、硬件型号测试环境于......
  • 基于LangChain手工测试用例转Web自动化测试生成工具
    在传统编写Web自动化测试用例的过程中,基本都是需要测试工程师,根据功能测试用例转换为自动化测试的用例。市面上自动生成Web或App自动化测试用例的产品无非也都是通过录制的方式,获取操作人的行为操作,从而记录测试用例。整个过程类似于但是通常录制出来的用例可用性、可维护......
  • 宝塔面板宝塔本地测试PbootCMS网站,后台登录不进去是怎么回事
    宝塔面板宝塔本地测试PbootCMS网站,后台登录不进去是怎么回事这个提示,怎么处理,我是看本地建站教程的,但是有个不常见的问题,百度没看到登入请求发生错误,您可通过如下方式查看原因:1、打开F12查看网络Ajax请求的返回信息;2、如果是nginx,请确认已经配置好pathinfo支持;3、如果已开启......
  • python接口自动化——接口登录获取session、cookie
    【参考】方法一参考链接如下,直接获取返回的cookie失败,拿到的cookies是空。(因为登录的url返回用f12看着是空的,用Charles才能看到,进行了重定向,返回了重定向的url)https://baijiahao.baidu.com/s?id=1781328761925882355&wfr=spider&for=pc 方法二参考链接如下,去拿session,再使用s......
  • 短视频平台(某音)自动化运营神器,7款RPA机器人上线
    前段时间,八爪鱼RPA应用市场正式上线,为爪爪们提供各类免费、开箱即用的RPA机器人,......
  • 小红书自动化智能运营,6款RPA机器人免费下载
    之前我们分享了 7款抖音 & 9款微信 RPA机器人,很多爪爪们都开始用了起来......
  • 大模型备案重难点最详细说明【评估测试题+附件】
    2024年3月1日,我国通过了《生成式人工智能服务安全基本要求》(以下简称《AIGC安全要求》),这是目前我国第一部有关AIGC服务安全性方面的技术性指导文件,对语料安全、模型安全、安全措施、词库/题库要求、安全评估等方面提出了具体规范和要求。(一)适用主体《AIGC安全要求》的适用主......
  • pyautogui的一些自动化示例,附代码
    以下为您提供一些pyautogui的自动化示例及代码:模拟鼠标点击和移动:importpyautogui#获取屏幕的宽度和高度screen_width,screen_height=pyautogui.size()#将鼠标移动到屏幕中心pyautogui.moveTo(screen_width/2,screen_height/2)#在屏幕中心点击鼠标左键......
  • 准确反映个人特质的霍兰德职业兴趣测试揭秘!
    简介霍兰德职业兴趣自测(Self-DirectedSearch)是由美国职业指导专家霍兰德(JohnHolland)根据他本人大量的职业咨询经验及其职业类型理论编制的测评工具。霍兰德认为,个人职业兴趣特性与职业之间应有一种内在的对应关系。根据兴趣的不同,人格可分为研究型(I)、艺术型(A)、社会型(S)、企......
  • AMD在新的MLPerf基准测试中缩小了与Nvidia的差距
    AMD、UntetherAI、Google、Intel和Nvidia的新基准测试结果显示,AI硅片性能竞争日趋激烈。然而,系统设计、网络和软件使AI大放异彩,而这正是Nvidia的强项。终于,我可以停止抱怨AMD缺乏公开的AI基准测试了。AMD发布了其MI300GPU的优秀MLPerf推理结果,虽然只在一个基准测试上与Nvidi......