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. B-JUI文档、下载

    概述 特别说明 本文档仅适用于最新版的B-JUI,网站首页或下载页可以查看B-JUI的最后更新时间. B-JUI前端管理框架适用于快速开发各类WEB管理系统,可与任意后端程序(java.php..ne ...

  2. 洛谷 P1540 机器翻译

    链接:https://www.luogu.org/problemnew/show/p1540 题目: 题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 题目描述 这个翻译 ...

  3. Nginx Too many open files

    2019/07/25 08:31:31 [crit] 15929#15929: accept4() failed (24: Too many open files) 2019/07/25 08:31: ...

  4. SpringMVC的理论

    围绕Handler开发 数据Model 页面View SpringMVC的运行流程: 1.用户发送一个请求,所有的请求都会映射到DispatcherServlet(中央控制器的servlet,该ser ...

  5. 下拉框选择 <from:select>

  6. Vue router link

    html: <router-link to="test">Go to Foo</router-link> <router-link to=" ...

  7. 【翻译】--19C Oracle 安装指导

    18C新功能     1.简化的基于镜像的Oracle数据库安装     从18C开始,Oracle可以作为镜像文件来下载和安装,必须解压缩镜像文件到ORACLE_HOME目录,然后执行runInst ...

  8. Endless looping of packets in TCP/IP networks (Routing Loops)

    How endless looping of packets in a TCP/IP network might occur? Router is a device used to interconn ...

  9. python自动生成Docx(docxtpl库)

    python这个库很有用,可以格式化生成报告等. 其他内容请点此处,下面只写docxtpl的功能代码. # coding: utf-8 import web # 我们用的webpy框架 import ...

  10. 浅谈angularJs

    在家都知道,angular 可以实现双项数据绑定,其中它的占位符是{{}},他是是MVC数据分离, 首先要在<html>或<body>中建一个<body ng-app=& ...