android APP monkey 测试

monkey 测试

  • 一、电脑ADB安装及使用详解
    • 1、什么是 Monkey 测试
    • 2、什么是ADB
    • 3、ADB的作用
    • 4、安装前提条件
    • 5、ADB下载
    • 6、ADB安装与配置
  • 二、连接安卓手机
    • 检查是否连接上安卓手机
    • windows端安装ADB驱动
  • 三、 monkey测试操作指令
    • 演示指令
    • APP包名查看方式
    • 测试效果

一、电脑ADB安装及使用详解

1、什么是 Monkey 测试

Monkey 测试是通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对应用程序客户端的稳定性测试;
通俗来说,Monkey 测试即“猴子测试”,是指像猴子一样,不知道程序的任何用户交互方面的知识,就对界面进行无目的、乱点乱按的操作;
Monkey 测试是一种为了测试软件的稳定性、健壮性的快速有效的方法;
Monkey 程序是 Android 系统自带的,由 Java 语言写成,在 Android 文件系统中的存放路径是: /system/framework/monkey.jar;
Monkey 程序需要通过 adb 来运行。

2、什么是ADB

ADB 全称为 Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是 Android 设备。
ADB 也是 Android SDK 中的一个工具,可以直接操作管理 Android 模拟器或者真实的 Android 设备。

3、ADB的作用

运行设备的 shell(命令行)
管理模拟器或设备的端口映射
计算机和设备之间上传/下载文件
可以对设备的应用进行卸载安装等
在 App 遇到 ANR/Crash 等 bug 时,可以通过 ADB 来抓取日志

简而言之,ADB 就是连接 Android 手机与 PC 端的桥梁,所以ADB又称为安卓调试桥(注意:是安卓,不是iOS),可以让用户在电脑上对手机进行全面的操作!

4、安装前提条件

adb安装前需要在机器上安装java环境,检验方法CMD窗口中输入java -version,不报错表示已安装。
在这里插入图片描述

5、ADB下载

ADB下载地址
选择Windows进行下载。
在这里插入图片描述

6、ADB安装与配置

下载的文件,解压到当前文件夹
在这里插入图片描述
在这里插入图片描述
将解压的路径添加到Windows的环境变量中。
在这里插入图片描述
Win+R打开cmd命令行窗口
在这里插入图片描述
输入adb version不报错表示安装完成
在这里插入图片描述
出现Version XX.X.X即为安装成功

若出现‘adb’不是内部或外部命令,也不是可运行的程序或批处理文件。 即为失败,失败时可以尝试重启服务,输入adb kill-server ,之后输入 adb start-server,或者换一个安装包。

二、连接安卓手机

可以通过模拟器连接,也可以通过数据线连接。
1、通过数据线连接时,手机进入设置–关于–找到手机的版本号,多点击几次–就会处于开发者模式。
2、在手机设置里面找到“开发人员选项”,调试选项下开启ADB调试和USB调试
在这里插入图片描述

不同品牌安卓机型,首次打开“开发者选项”方式不一样,大多是双击手机版本号3~5次,会toast提醒“开发者模式已打开”,具体打开方式可根据手机品牌进行百度查询

检查是否连接上安卓手机

windows终端输入adb devices,若出现手机设备型号,则表示连接成功

在这里插入图片描述
若未出现设备型号,则表示没有连接成功,此时需检查数据线有没有插好?尝试输入adb kill-server ,之后输入 adb start-server,这相当于重启服务。若还是没有出现手机设备型号,很有可能是缺少adb驱动,可以查看下设备管理器是否为下图:在这里插入图片描述

windows端安装ADB驱动

如果没有android phone驱动,可以在网上下载android phone驱动。安装了驱动后,再重启,应该就可以使用adb命令了。

对于华为手机、荣耀手机,可以使用更简单的方法(我测试的是用华为mate 30 pro),直接下载华为手机助手(采用百度、360浏览器),谷歌浏览器不支持华为的网页(估计是美国的限制),下载完手机助手后,直接连接手机,可以自动下载华为手机驱动。
在这里插入图片描述

在关于手机里面,点击5-7下版本号,会进入开发者模式,点击usb调试。
这时候手机上会弹出:是否允许USB调试,点击确定,然后就ok了,就可以进入adb模式了。

三、 monkey测试操作指令

演示指令

在终端输入:adb shell monkey -p {被测应用包名} 测试次数
举例如下,以下以测试百度APP为例

adb shell monkey -p com.baidu.searchbox 500

APP包名查看方式

手机设置中找到“开发人员选项”查看正在运行的服务
在这里插入图片描述
在这里插入图片描述

测试效果

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Golang 内存管理和垃圾回收底层原理(二)

一、这篇文章我们来聊聊Golang内存管理和垃圾回收,主要注重基本底层原理讲解,进一步实战待后续文章 垃圾回收,无论是Java 还是 Golang,基本的逻辑都是基于 标记-清理 的, 标记是指标记可能需要回收的对象&#xff0c…

日记本(源码+文档)

日记本(小程序、ios、安卓都可部署) 文件包含内容程序简要说明功能项目截图客户端首页日记列表 书写日记个人中心设置密码锁拨打客服热线修改信息退出登录登录页输入密码锁注册页 后端管理登录页首页管理员列表管理用户管理日记列表管理日记数据 文件包含…

Spring Boot项目启动速度优化

1、配置自动配置排除列表,减少启动自动配置扫描,配置项spring.autoconfigure.exclude 2、启动类添加索引注解Indexed,去除启动过程中 Components 的扫描步骤,直接从索引文件读取。 import org.springframework.stereotype.lndexe…

基于springboot的房屋租赁系统平台

功能描述 流程:房主登陆系统录入房屋信息》发布租赁信息(选择房屋)》租客登陆系统浏览租赁信息》和房主联系、看房(根据租赁信息单的电话线下沟通)》房主发起签约(生成邀请码)》租客登陆系统根…

Qt加载.css/.qss文件设置控件的QSS样式(支持程序运行时修改且立即生效类似换肤效果)

初学Qt时要想通过QSS修改控件QWidget,QPushButton等原生基础控件的样式,一般都是直接在.ui文件中直接添加qss,或者在代码中通过setStyleSheet(QString qss)来设置。当程序很大时,很多地方需要复用样式时会非常麻烦,qss…

QA测试开发工程师面试题满分问答3: python的深拷贝和浅拷贝问题

在 Python 中,深拷贝(deep copy)和浅拷贝(shallow copy)是用于创建对象副本的两种不同方式。 浅拷贝是创建一个新的对象,该对象与原始对象的内容相同(包括内部嵌套对象的引用)&…

SBCFormer:能够在单板计算机上以每秒1帧的速度进行全尺寸ImageNet分类的轻量级网络

摘要 https://arxiv.org/ftp/arxiv/papers/2311/2311.03747.pdf 计算机视觉在解决包括智能农业、渔业和畜牧业管理等不同领域的实际问题中变得越来越普遍。这些应用可能不需要每秒处理许多图像帧,因此从业者倾向于使用单板计算机(SBCs)。尽管…

Pytorch数据结构:Tensor

文章目录 Tensor基础1.1、Tensor的维度(Dimensions)1.1.1、举例说明1.1.2、高维Tensor 1.2、.dim()和.size()方法1.2.1、.dim()方法1.2.2、.size()方法1.2.3、.shape属性1.2.3、示例代码1.2.3.1、一维Tensor1.2.3.2、二维Tensor1.2.3.3、三维Tensor 1.3、…

【Go】十五、接口、多态、断言

文章目录 1、接口的引入2、接口3、接口的注意点4、多态5、断言6、Type Switch 1、接口的引入 以日常生活中打招呼为例,定义接口规范,各国人为打招呼为具体的实现 package main import "fmt"//接口的定义:定义规则、定义规范&…

存内领域前沿,基于忆阻器的存内计算----浅析忆阻存内计算

目录 一.概念浅析 二.忆阻器的分类 三.基于忆阻器的存内计算原理 四.存内计算的实验研究 一.概念浅析 1.存内计算 存内计算(In-Memory Computing,简称 IMC)是一种将数据处理和存储紧密结合在一起的计算方式。它的主要思想是在存储设备中直…

Navicat设置mysql权限

新建用户: 注意:如果不生效执行刷新命令:FLUSH PRIVILEGES; 执行后再重新打开查看; 查询权限命令:1234为新建的用户名,localhost为访问的地址 SHOW GRANTS FOR 1234localhost;如果服务器设置服务器权限后可能会出现权…

某东手势验证

地球上最强版!!!!!!!! 成功率99 基本不失败!!!!!!!!!! 识别速…

ZCMU操作系统课程实验 - 实验1-Linux的使用

登录 1. 打开这个东西 2. 在 文件 - > 打开 中打卡机房里VMOS文件里的这个东东 3. 然后依次操作下去好了,有红色的选项,我都是选的"Do nothing"。完成后就会出现这样一个黑框框。 4. 让你登录。输入:root。密码&…

Excel制作甘特图

使用Excel表格制作甘特图,可根据任务开始时间和结束时间自动计算工时,并自动用指定颜色填充横道图。 1.新建Excel文档,先设置项目基本信息,包括表格名称,这里设置为“**项目甘特图”;然后添加任务序号列&a…

前后端实现下拉框带条件查询(Vue+Java)

目录 前言1. 前端2. 后端 前言 对于该基本知识熟门熟路,对此总结一套自身的模版如下 总体逻辑如下:通过前端下拉框或者其他组合框(多选勾选查询),将条件返回给后端处理,后端查询数据库,查询得…

【Servlet】Servlet入门

文章目录 一、介绍二、入门案例导入servlet-api的解决办法 一、介绍 概念:server applet,即:运行在服务器端的小程序 Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。 将来我们定义…

bugku-web-速度要快

发现phpsessid 从上述提示 提示发送post请求,并且带有参数margin 发送后发现报文头部有一个字段叫flag,但好像每一次flag都不一样 构建Python脚本 request requests.Session()data {margin:find, } for i in range(50):html request.post(urlhttp:/…

JS详解-class-类的核心语法关于ES6与ES5

class基本核心语法: //定义类class Person{//公有属性(推荐此处定义)name// 定义属性并设置默认值price 100//构造函数constructor(name,age){// 构造函数内部的this实例化对象this.name namethis.age age// 动态添加属性(不推荐,查找麻烦)this.rank …

位运算算法(1)

目录 一、算法简述 191. 位1的个数 一、题目描述 二、思路解析 三、代码 338.比特位计数 一、题目描述 二、思路解析 三、代码 461.汉明距离 一、题目描述 二、思路解析 三、代码 声明:本博客涉及到的三道题均为一种做法的总结,建议先了解做…

ansible-tower安装

特别注意:不需要提前安装ansible,因为ansible tower中的setup.sh脚本会下载对应的ansible版本 ansible tower不支持Ubuntu系统,对cenos系统版本也有一定的限制,建议使用centos7.9。 准备一台全新的机器安装,因为ansible tower需要…