精华内容
下载资源
问答
  • 实现自动后台测试模拟android 按键.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • 有时候我们需要屏蔽掉Monkey脚本的部分按键,先看看Monkey的key事件生成代码: 外部获取MonkeyEvent是通过development/cmds/monkey/src/com/android/commands/monkey/MonkeySourceRandom.java 里的getNextEvent()...

    有时候我们需要屏蔽掉Monkey脚本的部分按键,先看看Monkey的key事件生成代码:

    外部获取MonkeyEvent是通过development/cmds/monkey/src/com/android/commands/monkey/MonkeySourceRandom.java

    里的getNextEvent()来获取的。

        /**
         * if the queue is empty, we generate events first
         * @return the first event in the queue
         */
        public MonkeyEvent getNextEvent() {
            if (mQ.isEmpty()) {
                generateEvents();
            }
            mEventCount++;
            MonkeyEvent e = mQ.getFirst();
            mQ.removeFirst();
            return e;
        }

     这里先判断队列MQ是否为空,如果为空,生成一个事件。获取队列头部的事件,然后返回。

         * generate a random event based on mFactor
         */
        private void generateEvents() {
            float cls = mRandom.nextFloat();
            int lastKey = 0;
    
            if (cls < mFactors[FACTOR_TOUCH]) {
                generatePointerEvent(mRandom, GESTURE_TAP);
                return;
            } else if (cls < mFactors[FACTOR_MOTION]) {
                generatePointerEvent(mRandom, GESTURE_DRAG);
                return;
            } else if (cls < mFactors[FACTOR_PINCHZOOM]) {
                generatePointerEvent(mRandom, GESTURE_PINCH_OR_ZOOM);
                return;
            } else if (cls < mFactors[FACTOR_TRACKBALL]) {
                generateTrackballEvent(mRandom);
                return;
            } else if (cls < mFactors[FACTOR_ROTATION]) {
                generateRotationEvent(mRandom);
                return;
            } else if (cls < mFactors[FACTOR_PERMISSION]) {
                mQ.add(mPermissionUtil.generateRandomPermissionEvent(mRandom));
                return;
            }
    
            // The remaining event categories are injected as key events
            for (;;) {
                if (cls < mFactors[FACTOR_NAV]) {
                    lastKey = NAV_KEYS[mRandom.nextInt(NAV_KEYS.length)];
                } else if (cls < mFactors[FACTOR_MAJORNAV]) {
                    lastKey = MAJOR_NAV_KEYS[mRandom.nextInt(MAJOR_NAV_KEYS.length)];
                } else if (cls < mFactors[FACTOR_SYSOPS]) {
                    lastKey = SYS_KEYS[mRandom.nextInt(SYS_KEYS.length)];
                } else if (cls < mFactors[FACTOR_APPSWITCH]) {
                    MonkeyActivityEvent e = new MonkeyActivityEvent(mMainApps.get(
                            mRandom.nextInt(mMainApps.size())));
                    mQ.addLast(e);
                    return;
                } else if (cls < mFactors[FACTOR_FLIP]) {
                    MonkeyFlipEvent e = new MonkeyFlipEvent(mKeyboardOpen);
                    mKeyboardOpen = !mKeyboardOpen;
                    mQ.addLast(e);
                    return;
                } else {
                    lastKey = 1 + mRandom.nextInt(KeyEvent.getMaxKeyCode() - 1);
                }
    
                if (lastKey != KeyEvent.KEYCODE_POWER
                        && lastKey != KeyEvent.KEYCODE_ENDCALL
                        && lastKey != KeyEvent.KEYCODE_SLEEP
                        && lastKey != KeyEvent.KEYCODE_SOFT_SLEEP
                        && PHYSICAL_KEY_EXISTS[lastKey]) {
                    break;
                }
            }
    
            MonkeyKeyEvent e = new MonkeyKeyEvent(KeyEvent.ACTION_DOWN, lastKey);
            mQ.addLast(e);
    
            e = new MonkeyKeyEvent(KeyEvent.ACTION_UP, lastKey);
            mQ.addLast(e);
        }
    

    这个generateEvents()是用来生成随机事件的,通过float类型的随机数cls,根据区间去生成触摸/拖动/缩放等动作事件。如果cls>=mFactors[FACTOR_PERMISSION]),则生成key事件。key事件也分好几个种类,如果生成的lastKey满足下面条件或者cls满足某些可以return的分支则中止,否则继续循环,直到生成合适的key事件。

                if (lastKey != KeyEvent.KEYCODE_POWER
                        && lastKey != KeyEvent.KEYCODE_ENDCALL
                        && lastKey != KeyEvent.KEYCODE_SLEEP
                        && lastKey != KeyEvent.KEYCODE_SOFT_SLEEP
                        && PHYSICAL_KEY_EXISTS[lastKey]) {
                    break;
                }

    如果我们要屏蔽某些特殊按键,就直接在上面的if()条件中加入lastKey!= xxx就可以屏蔽掉想要屏蔽的按键了。

    展开全文
  • 安卓键值测试jar

    2018-04-05 16:35:41
    测试按键键值 测试按键键值 测试按键键值 测试按键键值 测试按键键值 测试按键键值 测试按键键值 测试按键键值 测试按键键值 测试按键键值 测试按键键值
  • 一般我们在安卓按键下定义变量 比如dim a,b,c,d 测试代码的时候学习知识的时候的确足够用了 但是一旦脚本规模比较大 整个脚本的流程比较长 如果用这种 变量名a,b c,d 不单单是容易重复冲突 还可能会看不出这里到底是...

    一般我们在安卓按键下定义变量 比如dim a,b,c,d 测试代码的时候学习知识的时候的确足够用了 但是一旦脚本规模比较大  整个脚本的流程比较长  如果用这种 变量名a,b c,d 不单单是容易重复冲突 还可能会看不出这里到底是干什么的 所以呢 我们要命名变量需要有一顶的意义  我举个例子  比如上图的界面

    我们要给上图的界面中间的那个弹出窗口命名一下

    我的命名是这样的

    多点找色_低电量模式提示窗口=array(0,0,200,200,)

    多点找色_登录界面=array(0,0,200,200,)​

    多点找色:是这个变量是用在哪个找图找色命令下  这个变量是用在 多点找色的这个命令下的 如果是找图命令 那么上面变量就变成了  [找图_低电量模式提示窗口  ]

    低电量模式提示窗口:代表了这个变量是哪个界面 或者哪个窗口的特征参数  这样 我们只要一看到 这个低电量模式提示窗口 就知道这个变量是 代表上面那个图的中间的那个窗口的图色信息

    窗口或者界面或者按钮 或者图像标志:你这个变量代表的是哪个窗口 或者哪个界面 或者哪个打个比方 我要给 上图的那个界面 中间的那个窗口的  立即设置 按钮 建立一个对应的变量  要怎么命名呢  首先 这个按钮在  低电量模式提示窗口  里面  而 这个提示窗口 在 登录界面 里面  如果你不嫌麻烦 那么可以这么写

    多点找色_登录界面_低电量模式提示窗口_立即设置按钮=array()

    这样的写法可以分清 主次顺序   在你的自定义变量 太多太多的时候 一看到这个命名  就能明白 他代表的是哪个界面的哪个东西

    转载于:https://www.cnblogs.com/zjl8455482/p/9225473.html

    展开全文
  • 安卓手柄测试工具。用于检测手柄的按键和摇杆,也可以检测设备是否支持手柄。
  • 安卓性能测试

    2017-11-15 15:57:36
    测试主要用于测试Android硬件机器人的Android系统性能,主要关注于系统稳定性,测试内容包括硬件驱动(功放、MIC、LED、按键、WIFI)稳定性、应用稳定性(云知声和平安APK系统的CPU和内存使用率)。

    Android性能测试

    转载大神的文章:http://blog.csdn.net/lb5761311/article/details/78414815

    1 概要

    本测试主要用于测试Android硬件机器人的Android系统性能,主要关注于系统稳定性,测试内容包括硬件驱动(功放、MIC、LED、按键、WIFI)稳定性、应用稳定性(云知声和平安APK系统的CPU和内存使用率)。

    2辅助工具

    2.1工具简介

    科大讯飞 ITEST是一款Android应用与底层Linux进程性能监控的神器。目前已经在各类APP产品测试中广泛使用,相比其它的监控软件,iTest功能强大,运行稳定,消耗资源少。可以长时间同时监控单个或者多个应用及Linux进程的CPU、内存、电量、流量、FPS与CPU温度等性能指标,自身占用系统性能峰值不超过5%。同时iTest具有独特的命令行模式,便于用户在车机、机顶盒、机器人等有界面或无界面智能设备上进行应用以及服务进程的性能评测。

    2.2 工具使用方法

    1.Monkey插件

    根据config\task.xml配置项中的指令自动运行monkey,拉起被测试的app,支持中断恢复和定时停止。具体配置如图所示: 
    这里写图片描述

    2.iTestMini插件

    自动安装运行iTestMini,配置(包括上传ThreadFilter.txt文件),通过iTestMini自动收集数据上传至PC端下固定的目录; 并且上传至iTest Server端。具体配置如图所示: 
    这里写图片描述
    Monkey插件配置: 
    Time_Minute :monkey运行时间,单位为分钟。设置为0时,直接收集数据,然后停止。 
    NoMonkey: monkey是否需要关闭monkey功能,设置为true, 表示不运行monkey,false则运行。 
    MonkeyCommand:monkey命令,请确认该命令在adb shell中能正常运行。 
    iTestMini插件配置 
    interval:iTestMini的监控间隔,单位为秒,默认为1秒。如果设备性能较差, 建议设置为3秒。 
    Pkg:TestMini监控的apk的包名,如果要监控多个apk,用英文逗号隔开。

    3测试内容

    3.1开机时间:

    测试目的: 
    Android硬件系统启动时间过长严重影响着产品使用体验。因此开机时间必须限定一定范内。 
    测试方法: 
    测试从上电到Android硬件播报系统启动已完成所需要的时间,因为我们平安好医生不存在显示屏。所以无法直观通过屏幕查看好医生开机时间。我们可以使用adb 命令获取系统日志,间接的获取系统启动时间 
    LOG获取方式: 
    logcat -d -b events | grep “boot_progress_enable_screen” > start_time.log 
    获取系统开机时间

    3.2 Wifi

    测试目的: 
    WIFI是Android硬件和后台进行数据交互的唯一通道。将识别语音发送给后台解析,接收后台解析后的文字 然后好医生播放。所以Android系统启动后要尽快连接上WIFI网络 
    测试方法: 
    找多个不同品牌的路由器、手机热点、企业级路由器等。测试Android硬件连接速度。 
    编写一个service监控Android硬件系统完成后的网络连接并记录连接需要时间。通过 
    Adb 命令:adb reboot 多次重启计算连接的平均时间 
    日志获取: 
    若连接失败,则通过adb logcat > wifi.log获取相关信息

    3.3 LED灯光

    测试目的: 
    LED灯光控制驱动是由泰宝丰自己完成的。不是Android标准系统框架。使用过程中有可能出现系统崩溃问题。测试灯光频繁或者长时间使用LED驱动稳定性 
    测试方法: 
    通过 echo 0xAABB /sys/class/tybofone/tbf_api/val 状态灯红绿蓝三色颜色变化 
    0XAABB解释:前两位AA代表颜色 后两位BB代表亮度 
    AA 颜色 
    a2 红色 
    a3 绿色 
    a2 蓝色 
    亮度值位 00 ~ff 值越大亮度越大 
    通过编写脚本循环控制LED状态灯三者颜色转换、亮度不断变化。测试当前驱动的稳定性。同时通过ITEST监控LED驱动日志。一旦崩溃可以通过ITEST获取 
    LOG获取方式: 
    LED驱动崩溃后相关日志保存在ITEST的PC端目录DATA/Moonlight /tombstone

    3.4 按键稳定性

    测试目的: 
    按键控制驱动是由泰宝峰自己完成的。不是Android标准系统框架。使用过程中有可能出现系统崩溃问题。测试按键频繁或者长时间使用按键驱动稳定性。 
    测试方法: 
    通过 adb shell getevent获取当前系统的按键触发事件。实时获取触摸的按键与系统获取按键值对比。同时通过ITEST监控按键驱动日志。一旦崩溃可以通过ITEST获取。 
    LOG日志获取: 
    按键驱动崩溃后相关日志保存在ITEST的PC端目录DATA/Moonlight /tombstone

    3.5 SPEAKER

    测试目的: 
    测试长时间播放,Android硬件的功放的系统稳定性 
    测试方法: 
    使用tinyplay /sdcard/xx.wav -D 1 播放sdcard中存在的音乐列表。 
    同时通过ITEST监控SPEAKER驱动日志。一旦崩溃可以通过ITEST获取。 
    LOG日志获取: 
    按键驱动崩溃后相关日志保存在ITEST的PC端目录DATA/Moonlight /tombstone

    3.6 MIC

    测试目的: 
    云知声为了改变MIC识别精确。修改了Android标准的MIC录音框架。添加了自己优化的4MIC算法。为了保证Android硬件长时间工作MIC的稳定性。必须进行MIC录音功能的压力测试。 
    测试方法: 
    使用云知声提供的uni_4mic_test -cap /data/file.pcm -t 15 长时间录音。 
    同时通过ITEST监控MIC驱动日志。一旦崩溃可以通过ITEST获取。 
    LOG日志获取: 
    按键驱动崩溃后相关日志保存在ITEST的PC端目录DATA/Moonlight /tombstone

    3.7 OTA

    测试目的: 
    测试当前系统升级的稳定性,在Android系统OTA升级过程中经常会出现升级失败,导致系统变砖。所以量产前必须严格测试系统OTA升级功能,提前发现OTA升级出现bug。 
    通过编写系统service或者脚本对系统OTA进行测试。 
    测试方法: 
    1、修改recovery模式默认升级包地址为/sdcard/ota/rom/zip, 
    2、同时PC端 adb push rom.zip /sdcard/ota/rom/zip 
    3、adb reboot recovery 
    LOG日志获取: 
    Android硬件自动进入升级模式。如果失败 会有相关log保存到 cache/recovery.log

    3.8 CPU使用率

    测试目的: 
    监控Android硬件正常问诊工作中 当前CPU总使用率和云知声SDK和平安APK的CPU使用率,CPU使用过高会导致Android系统很卡顿,机器发热严重。严重影响用户体验。 
    测试方法: 
    通过配置ITEST的PC端的config/task.xml 文件可以监控Android硬件系统中的云知声SDK和平安APK的应用CPU使用率 系统总CPU使用率,同时可以设置系统CPU报警阈值和应用报警阈值。 
    相关配置如下所示: 
    这里写图片描述
    LOG日志保存: 
    平安系统正常运行时相关CPU使用率保存在DATA/Moonlight/iTestMini中。 
    CPU使用率过高报警信息保存在DATA/Moonlight/alarm中

    3.9 MEM使用率

    测试目的: 
    检测当前系统长时间或者频繁使用系统剩余内存和应用APP使用内存大小。若系统剩余内存不断减小说明系统或者应用存在内存泄露。 
    测试方法: 
    同理也是使用讯飞的ITEST测试工具测试Android硬件 云知声SDK和平安APK使用的内存大小,同时监测系统剩余内存大小。 
    alarmSystemMemLeft 设置系统剩余内存低于指定值时,将产生告警。100表示100M。 
    alarmAppMem 设置应用APP内存使用阈值 超过将报警 
    LOG日志保存: 
    平安系统正常运行时相关内存使用信息保存在DATA/Moonlight/iTestMini中。 
    内存剩余过少或者应用使用内存过大的报警信息保存在DATA/Moonlight/alarm中

    3.10 网络性能

    测试目的: 
    单位时间内对网络设备或端口成功传送数据的数量(在没有丢帧的情况下,设备能够接收并转发的最大数据速率)。是一个实际值,用于衡量Android硬件WIFI网络性能重要标志。 
    测试方法: 
    Android硬件安装iPerf 。Windows PC安装iperf客户端(jperf)。 
    测试上行速率(PC作Server,手机作Client) 
    PC 端配置好jperf,然后平安好医生输入命令iperf -c xx.xx.xx.xx -p 5001 -t 60 -P 1 启动测试 
    测试下行速率(手机作Server,PC作Client) 
    Android硬件端打开 输入命令iperf -s 启动服务端,PC端配置好连接当前好医生的IP。启动测试 
    配套文档

    展开全文
  • 安卓版本按键精灵,用于重复测试、性能测试
  • 安卓键值测试软件--KeyTest.apk,可测试遥控器的键值,或物理按键的键值!!
  • 简单介绍下应用背景:测试安卓app时发现重复点击某一按钮的时候会出现报错,开发修复后提交测试。如果采用手动点击按钮,效率不高,在领导提示下使用按键精灵实现自动操作。 一. 安卓手机按键精灵APP录制(免root...

       简单介绍下应用背景:测试安卓app时发现重复点击某一按钮的时候会出现报错,开发修复后提交测试。如果采用手动点击按钮,效率不高,在领导提示下使用按键精灵实现自动操作。

    一.       安卓手机按键精灵APP录制(免root版)

    适用于安卓7及以下系统的手机

    1. 手机从应用市场下载并安装按键精灵app;

    2. 电脑安装按键精灵手机助手;

    3.   在将手机连接USB前,请先找到开发者选项,打开“开发者选项”并勾选“USB调试”;

    4. 用数据线将手机连接电脑,连接后,电脑屏幕右下角会提示开始安装驱动,安装完后会出现提示成功安装。

    5. 电脑打开按键精灵手机助手,如果未识别设备,点击右上方“尚未连接到手机”,点击“重新扫描”,此时会搜索发现手机,选择开始连接

    添加上手机后,可以断开电脑的数据线,在app上进行操作了。

    6. 按键精灵手机助手与手机连接成功后,会显示手机型号,同时也说明手机已成功获取到root授权

    7. 手机成功获取root授权后,就可以在手机端按键精灵上进行点一点、录制或运行脚本等操作;

    8. 打开手机上的按键精灵app,选择“录制”选项,点击录制图标,打开选择应用页,选择要录制的app

    9.  点击保存的录制,可以进行循环设置,设置运行次数或者重复运行至手动停止

    10. 录制时按音量+号开始录制,音量-号停止录制。

    转载于:https://www.cnblogs.com/kongso/p/10537832.html

    展开全文
  • Monkey是一个Android自动化测试工具,主要用于Android的压力测试测试app是否会Crash,通过Monkey程序模拟用户触摸屏幕、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常,Monkey测试是一种...
  • Android 5.0锁屏屏蔽HOME键的Demo。在模拟器跟2.3系统的三星手机跟5.1系统的一加2手机上测试均有效.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • html按键测试代码.zip

    2020-03-11 09:50:32
    压缩包内包含apk,可以输出安卓键值,配合html页面可以输出webview上的键值,浏览器里运行可以输出按键键值,IPTV行业常用
  • adb 安卓monkey测试以及log日志分析

    万次阅读 多人点赞 2018-08-28 00:24:40
    Monkey测试是Android app自动化测试的一种手段,Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入等,看设备是否出异常。 当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击,触摸,手势...
  • monkey压测时会遇到这种问题,只想在本包跑monkey,不想让monkey乱点出去,不然就再也点不进来了 隐藏虚拟键及顶部状态栏: adb shell settings put global policy_control immersive.full=* 隐藏顶部状态栏(底部...
  •  安卓底部三个按键  iOS只有一个home键 4. 开发语言不通,  要注意UI的实现,还有多层UI跳转的实现,iOS多层UI跳转容易有内容泄漏问题;后台返回数据约定格式,如果格式不一样安卓容易崩溃,如果返回没内容iOS...
  • 按键精灵手机助手连接安卓模拟器

    千次阅读 2019-07-19 10:45:22
    按键精灵手机助手能够帮助用户在电脑端编写应用于手机端的脚本程序,用户可以使用它在电脑上编写任意功能的脚本,比起在手机端编辑更加方便,编辑后可以在电脑端进行测试,只需要连接上手机就可以实时测试脚本的执行...
  • 随着近年来移动游戏应用的发展,安卓模拟器测试也成为QA测试中不可缺少的环节,相比较真实物理终端而言,模拟器存在以下优点: 1.游戏操控性,部分移动端游戏越来越复杂,操控方式也开始多元化,而移动端的屏幕较小...
  • Monkey是安卓中的一个命令行工具,可以运行在模拟器或者是实际的设备中,它向系统发送为伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了...
  • Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。 Android官方描述 The Monkey is a...
  • Monkey所执行的随机事件流中包含11大事件,分别是触摸事件、手势事件、二指缩放事件、轨迹事件、屏幕旋转事件、基本导航事件、主要导航事件、系统按键事件、启动Activity事件、键盘事件、其他类型事件。Monkey通过这...
  • 一、Monkey测试简介Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。二、Monkey程序介绍1)...
  • 它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。Monkey测试是Android平台下自动化...
  • 需求:需要在安卓系统中模拟发送按键信息 分析 通过网上百度,询问测试,得到可以通过Instrumentation类来满足我们的要求. 用法详解 1.封装KeyEventThread类:因为模拟按键信息的功能不能在主线程中实现,需要封装的...
  • 博客内容,今天天气不错。测试学习。没有付钱[版本号开始]3.1[版本号结束][更新内容]1.优化滑块功能2.加强找图功能3.增加防检测点击功能[更新结束] 转载于:https://blog.51cto.com/472310/2298484...
  • 安卓APP压力稳定性测试之Monkey入门

    千次阅读 2018-07-05 15:38:48
    Monkey是一个命令行工具,使用安卓调试桥(adb)来运行它,模拟用户触摸屏幕、滑动Trackball、按键等随机事件流来对设备上的程序进行压力测试,检测程序多久的时间会发生异常,可以根据获取的log信息进行修复。...
  • monkey测试的原理就是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常。当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击,触摸,手势或一些...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 128
精华内容 51
关键字:

安卓按键测试