Maxim 基于monkey做的二次开发,相比原始monkey,新增如下功能
  1. 多种随机测试模式:dfs(深度遍历) mix模式(monkey随机测试+控件识别) troy模式(按照控件选择器进行遍历)
  2. 可进行执行时长设定
  3. 可以自定义activity黑白名单
  4. 兼容多个Android版本
  5. 防跳出,防休眠,防假死

Maxim

使用方法

  1. adb push framework.jar monkey.jar文件到 /sdcard 文件夹中
  2. 执行:adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin tv.panda.test.monkey.Monkey -p com.panda.videoliveplatform --uiautomatormix --running-minutes 60
 

参数说明:

  1. tv.panda.test.monkey.Monkey 主调入口  无需修改
  2. -p com.panda.videoliveplatform  待测appid
  3. 策略模式

    --uiautomatormix 混合模式(70%控件解析随机点击,其余30%按原Monkey事件概率分布) 
    --pct-uiautomatormix n 可自定义混合模式中控件解析事件概率
    demo:
    [  {

    "prob": 1,
    "activity": "com.sjk.userattribute.login.PwdLoginActivity",
    "actions": [
      {
        "xpath": "//*[@resource-id='com.sjk.android:id/et_phone']",
        "action": "INPUTTEXT",
        "text": "15154111005",
        "index": 0,
        "throttle": 500
      },
      {
        "xpath": "//*[@resource-id='com.sjk.android:id/et_pwd']",
        "action": "INPUTTEXT",
        "text": "123456",
        "index": 0,
        "throttle": 500
      },
      {
        "xpath": "//*[@resource-id='com.sjk.android:id/tv_login']",
        "index": 0,
        "action": "CLICK",
        "throttle": 500
      }
    ]
  },
]
--uiautomatordfs DFS深度遍历算法(优化版)(注 Android5不支持dfs) 
--uiautomatortroy Troy模式 
 配置 max.xpath.selector troy控件选择子来定制自有的控件选择优先级,max.xpath.selector 需要push 到/sdcard/
demo:
[
  {
    "firstList": [
      {
        "xpath": "//*[contains(@text,'绝地求生')]"
      }
    ],
    "selectList": [
      {
        "xpath": "//*[@clickable='true']"
      },
      {
        "xpath": "//*[@clickable='true']//*[contains(name(),'Text')]"
      },
      {
        "xpath": "//*[@clickable='true']//*[contains(name(),'Button')]"
      },
      {
        "xpath": "//*[@clickable='true']//*[contains(name(),'Image')]"
      }
    ],
    "lastList": [
      {
        "xpath": "//*[../*[@selected='true']]"
      },
      {
        "xpath": "//*[../../*/*[@selected='true']]"
      },
      {
        "xpath": "//*[../../*/*[@selected='true'] and contains(@resource-id,'tab_')]"
      },
      {
        "xpath": "//*[contains(@resource-id,'HorizontalScrollView')]"
      }
    ],
    "blackList": [
      {
        "xpath": "//*[contains(@resource-id,'wrapper_in_custom_title_bar')]//*[contains(@resource-id,'right_button')]"
      },
      {
        "xpath": "//*[contains(@resource-id,'share')]"
      }
    ]
  }
]
4. 执行时长 --running-minutes 60        执行60分钟monkey场景细粒度控制
5. --act-whitelist-file  /sdcard/awl.strings    自定义Activity白名单
 

Appetizer

maxim相较于原始的monkey,变得相对智能,可以有效减少无用的点击操作,另外我还发现了一个桌面版的Android移动端测试工具,那就是Appstizer

它集成了apk包管理,设备管理,自动化测试等功能,为Android端的测试提供了便利。

Maxim-可自定义的Monkey测试工具(Android)的更多相关文章

  1. Android自动化测试基础知识——MONKEY测试工具(转的)

    本周开始启动手机输入法simeiji的自动化测试,同时开始接触手机浏览器自动化测试.接下来会对android自动化测试工具和方法做一个专题研究. 第一篇介绍monkey测试工具. 1 自动化测试背景 ...

  2. [原创]Android Monkey测试工具使用介绍

    [原创]Android Monkey测试工具使用介绍 1 Android Monkey介绍 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件 ...

  3. monkey测试工具与常用的linux命令

    Monkey测试工具 说明:monkey是一个安卓自带的命令行工具,可以模拟用户向应用发起一定的伪随机事件.主要用于对app进行稳定性测试与压力测试. 实现:首先需要安装一个ADB工具,安装完之后,需 ...

  4. Android软件测试Monkey测试工具

    前言: 最近开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括android测试框架.CTS.Monkey.Monkeyrunner.benchmark.其 ...

  5. Monkey测试工具介绍

    ---------------------------------------------------------------------------------------------------- ...

  6. android app 压力测试工具-monkey tool

    一.什么是Monkey? Monkey测试是Android自动化测试的一种手段,Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常. Monkey是A ...

  7. Android 压力测试工具Monkey

    原文地址http://www.syhm52.com/tools/17.html 一.Monkey定义探索软件测试工具有哪些,本文主要介绍Monkey工具.Monkey测试是Android平台自动化测试 ...

  8. monkey测试===Android测试工具Monkey用法简介(转载)

    Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey ...

  9. android之monkey测试

    本文同时发表于本人个人网站 www.yaoxiaowen.com monkey测试算是android自动化测试当中最简单的一种工具了.虽然简单,不过对于测试app的稳定健壮,减少崩溃还是比较有用的.所 ...

随机推荐

  1. 解决使用绝对定位absolute后,margin:0 auto居中方法失效(转)

    https://blog.csdn.net/qq_40678503/article/details/82780680

  2. CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败

    今天在使用 C# 操作 Excel 时,一直在报错误: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下 ...

  3. 菜鸡之NetCore 使用EF操作数据库 Oracle & Sqlserver (一)

    摘要: 该篇文章主要记录netCore EFCore 如何操作Oracle和SqlServer 数据库,采用Codefirst方式创建数据库以及表. 一, 项目建立 项目采用DDD领域驱动设计模式[学 ...

  4. 私服nexus的权限问题,带admin和带view的区别

    admin和view的区别只找到了这个解释: https://blog.csdn.net/tian_111222333/article/details/100159983 最终得出答案,我只需要给他们 ...

  5. win中使用curl上传文件报错

    今天晚上复现“WordPress插件Easy WP SMTP反序列化漏洞”时,需要使用curl上传文件,我又用的windows环境,一直出错 curl: (26) couldn't open file ...

  6. 逐步探究ObjC的Weak技术底层

    前言 之前的文章有说过 Atomic 原子操作的原理,其作为一个特殊的修饰前缀,影响了存取操作. 在属性修饰定义中,还有另一类修饰前缀,他们分别是 strong weak assign copy,这些 ...

  7. dockerfile构建nginx

    mkdir docker_demo cd docker_demo wget http://nginx.org/download/nginx-1.2.9.tar.gz vim Dockerfile FR ...

  8. http通讯过程

  9. Flutter——Card组件

    Card 是卡片组件块,内容可以由大多数类型的 Widget 构成,Card 具有圆角和阴影,这让它看起来有立体感.   Card组件的常用属性: 属性 说明 margin 外边距 child 子组件 ...

  10. Ubuntu18.0 解决python虚拟环境中不同用户下或者python多版本环境中指定虚拟环境的使用问题

    一. 不同用户下配置virtualenvwrapper的问题 问题描述: 安装virtualnev和virtualnevwrapper之后,在.bashrc进行virtualenvwrapper的相关 ...