Android Monkey压力测试

一. JAVA环境的搭建

  1. 安装jdk-8u151-windows-x64,可以到官网或者应用中心下载.
  2. JAVA环境变量的搭建:
    • 在"我的电脑"-"属性"-"高级"-"环境变量"中,点击新建,填写变量名为JAVA_HOME,变量值为JAVA安装的路径.
      ALT
    • 在系统变量中找到Path,点击编辑,添加%JAVA_HOME%\bin;后点击确定.
      ALT
    • 然后完成后,按win+r健打开运行,输入cmd,在cmd运行界面输入Java -version或Java检查是否有安装成功.
    C:\Users\Administrator>java -version
    java version "1.8.0_91"
    Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
    Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
    C:\Users\Administrator>java
    用法: java [-options] class [args...](执行类)
    或  java [-options] -jar jarfile [args...](执行 jar 文件)
    其中选项包括:-d32          使用 32 位数据模型 (如果可用)-d64          使用 64 位数据模型 (如果可用)-server       选择 "server" VM默认 VM 是 server.-cp <目录和 zip/jar 文件的类搜索路径>-classpath <目录和 zip/jar 文件的类搜索路径>用 ; 分隔的目录, JAR 档案和 ZIP 档案列表, 用于搜索类文件。-D<名称>=<值>

二. Android SDK工具安装

  1. 下载GoogleAndroidSDK,并且安装
  2. 配置Android环境变量,与JAVA一样,新建ANDROID_HOME环境变量,在Path编辑加入%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;
    ALT
    ALT
  3. 打开Android SDK Manager,选择默认下载的工具包
    一般默认是选择Tools底下前3个,然后是Android最新的SDK Platform,Android TV Intel x86 Atom System Image,Google Play Intel x86 Atom System Image,Google APIs Intel x86 Atom System Image(然后悲剧的发现这几个是访问dll.google.com的,然后华丽丽的被墙了,无奈就选择低版本的Intel x86 Atom System Image下载,可以顺利下载并且能打开avd...)
    所以,可以按需选择要下载的api,不一定下载最新的Android版本
    ALT
    ALT
  4. SDK环境变量检查
    上面的tool下载完后,打开cmd界面,输入adb,如果能够成功返回,则说明安装和配置成功
    ALT

三. 启动一个Android环境

  • 打开AVD manager,,在Device Definitions,选择其中一台设备,点击create AVD
    ALT
  • 然后按照提示操作后,在Android Virtual Device中生成设备后,点击右边的start
    ALT
  • 然后生成模拟器
    ALT
    注意:如果在生成模拟器的时候,报错emulator: ERROR: x86 emulation currently requires hardware acceleration ?可以在SDK manager最下面的extras中找到intel x86 emulator accelerator(HAXM installer)来安装.然后如果在sdk manager中显示haxm installer not compatible with windows,则需要在intel官网下载,地址:https://software.intel.com/sites/default/files/managed/c8/be/haxm-windows_v6_2_1.zip ,然后解压后放在 sdk\extras\intel\Hardware_Accelerated_Execution_Manager 文件夹中安装,则可以打开模拟器.

四. Android Monkey压力测试

  • 打开模拟器中,打开cmd界面,输入adb devices,看是否连接了模拟器设备
C:\Users\Administrator>adb devices
List of devices attached
emulator-5554   device
  • 然后输入adb shell进入到shell界面
C:\Users\Administrator>adb shell
root@generic_x86:/ \#
  • 选择com.android.email这个程序作为对象进行MonkeyTest,在shell界面中输入
\#monkey -p com.android.email -v 100
其中,-p表示指定一个或者多个包,没有这个参数则不指定包;-v表示指定反馈信息级别,100表示启动该app并发送100个随机事件  
root@generic\_x86:/ \# monkey -p com.android.email -v 100
WARNING: linker: libdvm.so has text relocations. This is wasting memory and is asecurity risk. Please fix.
:Monkey: seed=1518372908154 count=100
:AllowPackage: com.android.email
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
// Event percentages:
//   0: 15.0%                      触摸事件百分比,即参数–pct-touch
//   1: 10.0%                      滑动事件百分比,即参数–pct-motion
//   2: 2.0%                        缩放事件百分比,即参数–pct-pinchzoom 
//   3: 15.0%                      轨迹球事件百分比,即参数–pct-trackball 
//   4: -0.0%                       屏幕旋转事件百分比,即参数–pct-rotation 
//   5: 25.0%                      基本导航事件百分比,即参数–pct-nav 
//   6: 15.0%                      主要导航事件百分比,即参数–pct-majornav 
//   7: 2.0%                        系统事件百分比,即参数–pct-syskeys 
//   8: 2.0%                        Activity启动事件百分比,即参数–pct-appswitch 
//   9: 1.0%                        键盘翻转事件百分比,即参数–pct-flip 
//   10: 13.0%                    其他事件百分比,即参数–pct-anyevent
:Switch: \#Intent;action=android.intent.action.MAIN;category=android.intent.categ
ory.LAUNCHER;launchFlags=0x10200000;component=com.android.email/.activity.Welcom
e;end// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.in
tent.category.LAUNCHER] cmp=com.android.email/.activity.Welcome } in package com
.android.email
:Sending Touch (ACTION\_DOWN): 0:(176.0,915.0)
:Sending Touch (ACTION\_UP): 0:(172.51561,943.72437)
:Sending Trackball (ACTION\_MOVE): 0:(-2.0,1.0)// Allowing start of Intent { act=android.intent.action.EDIT dat=content://u
i.email.android.com/settings cmp=com.android.email/.activity.setup.AccountSettin
gs } in package com.android.email// Allowing start of Intent { cmp=com.android.email/.activity.setup.AccountS
etupBasics } in package com.android.email// activityResuming(com.android.email)
:Sending Touch (ACTION\_DOWN): 0:(559.0,844.0)
:Sending Touch (ACTION\_UP): 0:(494.87607,782.93036)
:Sending Touch (ACTION\_DOWN): 0:(717.0,136.0)
:Sending Touch (ACTION\_UP): 0:(705.3432,121.778885)
:Sending Trackball (ACTION\_MOVE): 0:(-4.0,4.0)
:Sending Touch (ACTION\_DOWN): 0:(658.0,1007.0)
:Sending Touch (ACTION\_UP): 0:(638.68384,998.59467)
:Sending Touch (ACTION\_DOWN): 0:(443.0,542.0)
:Sending Touch (ACTION\_UP): 0:(419.82828,558.96)
:Sending Touch (ACTION\_DOWN): 0:(280.0,666.0)
:Sending Touch (ACTION\_UP): 0:(275.95532,654.7703)
:Sending Touch (ACTION\_DOWN): 0:(18.0,979.0)
:Sending Touch (ACTION\_UP): 0:(14.776767,980.841)
:Sending Trackball (ACTION\_MOVE): 0:(0.0,-3.0)
:Sending Touch (ACTION\_DOWN): 0:(253.0,1043.0)
:Sending Touch (ACTION\_UP): 0:(255.71083,1034.4076)
:Sending Trackball (ACTION_MOVE): 0:(2.0,3.0)
:Sending Trackball (ACTION\_UP): 0:(0.0,0.0)
:Sending Touch (ACTION\_DOWN): 0:(388.0,699.0)
:Sending Touch (ACTION\_UP): 0:(396.3903,699.357)
:Sending Trackball (ACTION\_MOVE): 0:(0.0,-1.0)
Events injected: 100
:Sending rotation degree=0, persist=false
:Dropped: keys=0 pointers=5 trackballs=0 flips=0 rotations=0
\## Network stats: elapsed time=2857ms (0ms mobile, 0ms wifi, 2857ms not connected)
// Monkey finished
  • com.android.email最后停留的页面
    ALT
    注意:也可以退出shell界面后,可以直接输入adb shell monkey -p com.android.email -v 100 > d:\monkeytest.txt将结果导入到txt文件中

五. 分析测试报告

  1. 注意seed值
    :Monkey: seed=1518372908154 count=100 没有指定seed值是,会随机生成,可以通过设定seed值使得测试产生的随机操作序列完全相同
  2. 查找有无日志中的无响应问题和崩溃问题
    • 无响应问题搜索"ANR"
    • 奔溃问题搜索"CRASH"
    • 内存泄漏问题搜索"GC",并进一步分析
    • 异常问题搜索"Exception",如出现NullpointerException,则出现空指针,需要重视
    有这类的情况再进行具体分析

转载于:https://www.cnblogs.com/magicianyin/p/8529179.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bzoj 4517: [Sdoi2016]排列计数

4517: [Sdoi2016]排列计数 Time Limit: 60 Sec Memory Limit: 128 MBSubmit: 637 Solved: 396[Submit][Status][Discuss]Description 求有多少种长度为 n 的序列 A&#xff0c;满足以下条件&#xff1a;1 ~ n 这 n 个数在序列中各出现了一次若第 i 个数 A[i] 的值为 i&#x…

自制反汇编逆向分析工具 迭代第六版本 (五)

本工具从最初版的跳转分布图只为了更直观地分析反汇编代码的分支结构&#xff0c;第三版开始对直观图进行逆向分支代码的输出&#xff0c;第四版对分支输出策略的一些探索&#xff0c;第五版结合之前的探索进行改进。第六版在现在功能的基础上进行增强&#xff0c;利用第六版&a…

centos7搭建FTP服务器

1.   使用 yum 安装 vsftpd&#xff1a;yum install -y vsftpd 2.  启动 VSFTPD&#xff1a;systemctl start vsftpd.service 3.  启动后可监听到21端口&#xff1a;netstat -nltp | grep 21 4.  配置FTP权限&#xff1a;&#xff08;vsftpd.conf&#xff0c;修改前先备…

教你如何剖析源码

一、源码阅读需求 在学习中&#xff0c;我们会需要了解&#xff0c;学习&#xff0c;使用一个框架&#xff0c;一个新的函数库。在工作中&#xff0c;因为业务需求&#xff0c;因为性能问题&#xff0c;可能通过一个更高性能的工具&#xff0c;架构去优化我们的程序。 那么&…

php调用API支付接口(转自刘68)

首先访问 https://charging.teegon.com/ 注册账号&#xff0c; 找到开发配置 记下client_id和client_secret。 点击 天工开放平台 点击天工收银 点击 SDK下载与使用 选择php版下载 解压后获得 打开form.php这个是样板文件可以用它来测试是否成功&#xff0c;测试前需要先修…

单目相机标定原理

一&#xff0e;相机标定主要涉及三个坐标系&#xff1a;图像坐标系、摄像机坐标系和世界坐标系 【图像坐标系】 摄像机采集的图像变换为数字图像后&#xff0c;每副数字图像在计算机内为M x N数组&#xff0c;M行N列的图像中每一个元素&#xff08;pixel&#xff09;数值就是图…

Android开始之 activity_lifecycle和现场保护

生命周期&#xff1a; oncreate—onstart—onresume&#xff0c;--onpause--onstop&#xff0c;——onrestart——onstart——onresume&#xff0c;。。onpause。。。onstop。。。ondestroy 现在保护---保存系统状态 通过这个方法保存到数据库中或者xml中&#xff0c;&#xff…

Apache启动错误:could not bind to address[::]:443

Q&#xff1a;Windows环境下启动apache报错如下&#xff1a; 可是在httpd.conf文件中apache listen的明明是http 80端口&#xff0c;为什么会报443的错误&#xff1f; A&#xff1a;因为你的计算机安装了VM&#xff0c;所有有个vm的进程一直占用着443端口&#xff0c;在命令行下…

针孔相机拍摄的图像坐标和空间点的对应关系

一&#xff1a;摄像机成像原理 摄像机成像模型一般有三种&#xff1a;透镜投影模型&#xff08;小孔摄像机模型&#xff09;、正交投影模型和透视投影模型 光学中最基本的高斯成像公式&#xff1a;1/u 1/v 1/f (式一) 原理图如下&#xff1a; 二&#xff1a;认识三个…

粥做得好不好,全凭一个良心!

粥做得好不好&#xff0c;全凭一个良心&#xff01; 工作不也是凭良心么&#xff01; 文章中的红色字体表达了一切&#xff01; 霜降节气的到来&#xff0c;意味着冬季的临近&#xff0c;而霜降后气温的降低&#xff0c;利于蔬菜的淀粉沉淀&#xff0c;收浆后的莲藕也变得更为…

黑盒测试

引言&#xff1a; 什么是黑盒测试呢&#xff01;&#xff1f; 像我一样的测试小白就会望文生义了&#xff1a;对黑盒子测试 那么黑盒子是什么&#xff01;? 思考5秒后&#xff0c;得出了这样的答案&#xff1a;黑盒子就是黑色的盒子&#xff0c;嘿嘿&#xff01; 正文&#xf…

Expo大作战(十二)--expo中的自定义样式Custom font,以及expo中的路由RouteNavigation

简要&#xff1a;本系列文章讲会对expo进行全面的介绍&#xff0c;本人从2017年6月份接触expo以来&#xff0c;对expo的研究断断续续&#xff0c;一路走来将近10个月&#xff0c;废话不多说&#xff0c;接下来你看到内容&#xff0c;讲全部来与官网 我猜去全部机翻个人修改补充…

悬浮按钮

效果图 //将dp转换为px public static int dip2px(Context context, float dpValue) {final float scale context.getResources().getDisplayMetrics().density;return (int) (dpValue * scale 0.5f); }//浮动图片监听 private void initListener() {//弹出对话框jianwen.set…

图像坐标:我想和世界坐标谈谈(A) 【计算机视觉学习笔记--双目视觉几何框架系列】

玉米竭力用轻松具体的描述来讲述双目三维重建中的一些数学问题。希望这样的方式让大家以一个轻松的心态阅读玉米的《计算机视觉学习笔记》双目视觉数学架构系列博客。这个系列博客旨在捋顺一下已标定的双目视觉中的数学主线。数学推导是有着几分枯燥的&#xff0c;但奇妙的计算…

img

转载于:https://www.cnblogs.com/SoulCode/p/6508720.html

图像坐标:我想和世界坐标谈谈(B)

二、图像坐标&#xff1a;我想和世界坐标谈谈(B) 玉米将在这篇博文中&#xff0c;对图像坐标与世界坐标的这场对话中涉及的第二个问题&#xff1a;谈话方式&#xff0c;进行总结。世界坐标是怎样变换进摄像机&#xff0c;投影成图像坐标的呢&#xff1f; 玉米做了一个简单的图示…

【Android】Fragment的简单笔记

被虐了&#xff0c;做某公司笔试时&#xff0c;发现自己连个Fragment的生命周期都写不详细。平时敲代码&#xff0c;有开发工具的便利&#xff0c;有网上各大神的文章&#xff0c;就算忘了也很容易的可以查到&#xff0c;但当要自己不借助外界&#xff0c;却发现自己似乎对该知…

三、致敬“张正友标定”

三、致敬“张正友标定” 此处“张正友标定”又称“张氏标定”&#xff0c;是指张正友教授于1998年提出的单平面棋盘格的摄像机标定方法。张氏标定法已经作为工具箱或封装好的函数被广泛应用。张氏标定的原文为“A Flexible New Technique forCamera Calibration”。此文中所提到…

Using KernelShark to analyze the real-time scheduler【转】

转自&#xff1a;https://lwn.net/Articles/425583/ This article brought to you by LWN subscribers Subscribers to LWN.net made this article — and everything that surrounds it — possible. If you appreciate our content, please buy a subscription and make the …

3、时间和随机数

一、时间 1.1 使用Calendar/[ˈkləndɚ]/类获取时间 1.1.1 常用方法 (1)public static Calendar getInstance&#xff08;&#xff09;: 使用默认时区和语言环境获取一个基于当前时间的Calendar对象。 (2)public int get(int field) 返回给定日历字段表示的日历部分的数字…