用adb命令给APP做压力测试,有什么不同?
压力测试
app做压力测试目的是模拟用户在使用软件时随意向软件发出指令,例如操作app的点击,滑动,返回等一系列随机事件,来检测app的承受能力
第一步:手机安装包需要待测的app
第二步:输入adb start-server开启adb服务
第三步:输入adb devices测试手机连接是否正常

第四步:进入安卓系统,获取应用名
adb shell 进入安卓系统 exit退出
进入之后
Pm list packages 获取应用包名
第五步;获取第三方安装包名
Pm list packages -3

第六步:对app进行压力测试
monkey -p APP包名 次数
就是调用monkey命令对安卓APP进行压力测试。
例如:monkey -p com.tencent.mobileqq 100
即对包名为com.tencent.mobileqq的App发送100次随机事件的命令,发送完成后手机会自动运行该App并进行一系列随机操作。

第二种方法,运行需要获取的软件(获取活动栈和包名方法)
Cmd输入命令(运行获取的软件)
adb shell dumpsys window | findstr mCurrentFocus
throttle参数:指定事件之间的间隔
adb抓取日志
第一步: 首先使用adb命令将手机与电脑连接
输入命令 adb devices
如下图证明连接成功

第二步: 抓取日志前先清除手机上的旧日志
输入命令 adb logcat -c
第三步: 开始抓取日志(出现问题的日志)
输入命令 adb logcat -v time > E:\a.txt
同时开始操作出现问题APP的某个功能,方便记录日志,在操作完成后开始输入结束命令
结束抓取日志的命令:Ctrl C
命令解释:adb logcat -v time 开始抓取日志
E:\a.txt 存放的位置以及日志的命名
第四步:结束需要抓取日志的命令(抓取的只是出现bug的部分,正常的部分不需要)
结束当前抓取日志的命令为:Ctrl C
第五步日志分析:日志文件格式如下图:

各日志字母代表含义 V:明细、 D:调试、I:信息、W:警告 、E:错误、F:严重错误、S:无记载
定位有问题的日志方法
在文件中找到保存的日志文件,在编辑功能中找到搜索功能按键,在搜索功能中输入关键字:可以根据现象来搜索关键字
1 例如:打开软件出现崩溃现象,就是严重错误,搜索关键字 fatal
2 例如:打开软件该出现内容没有显示,就是错误,搜索关键字error
3 在抓取的日志中基本搜索关键字error,将出现的日志截图即刻
adb命令
adb组成:
1 adb服务器、2 adb客户端、3 adb后台程序,守护程序
adb命令:
1 打开adb服务 adb start-server

2 关闭adb服务 adb kill-server

3 查询已经连接的设备 adb devices

第一个是手机的序列号
第二个表示状态 device 已经连接
Offine 断开连接
Unauthorization 已经连接成功但是手机不信任此电脑
4 进入安卓系统 adb shell

5 退出安卓系统 exit
6 获取手机上有多少个应用名(报名)
adb shell pm list packages
进入系统内 pm list packages

7 获取手机上所有第三方安装包名
adb shell pm list packages -3
8 获取手机上某个应用的activity(中文名:活动栈)
adb shell monkey -p 软件包名 -v -v -v 10 | grep "cmp="
手机连接改为把grep findstr
.activity.SplashActivity 为活动名

第二种方法,运行需要获取的软件
Cmd输入命令
adb shell dumpsys window | findstr mCurrentFocus

9 查看手机日志 adb logcat(退出adb查看)
-c 清除日志
将日志添加到文件中 adb logcat >> a.txt
看看路径,在文件夹中查找就可以看到
10 将电脑上的文件发送到手机上
Adb push 电脑上的文件名位置 手机存放位置

11 将电脑上的文件发送到手机
和10 方法一样
相关文章:
用adb命令给APP做压力测试,有什么不同?
压力测试 app做压力测试目的是模拟用户在使用软件时随意向软件发出指令,例如操作app的点击,滑动,返回等一系列随机事件,来检测app的承受能力 第一步:手机安装包需要待测的app 第二步:输入adb start-ser…...
netcore 集成Prometheus
一、安装包 <ItemGroup><PackageReference Include"prometheus-net" Version"8.2.1" /><PackageReference Include"prometheus-net.AspNetCore" Version"8.2.1" /> </ItemGroup> 二、添加代码 #region Pro…...
同城外卖系统源码扩展指南:搭建海外外卖APP平台详解
本篇文章,笔者将探讨如何基于同城外卖系统源码,搭建适合不同国家的海外外卖APP平台,涵盖多语言支持、支付接口对接、本地化适配等方面的实践经验和技术要点。 一、确定目标市场与用户需求 在开发海外外卖APP平台之前,首先需要深…...
JavaScript 中常见内置对象的知识点及示例总结
一、String(字符串)对象 知识点: 用于处理文本数据,它有许多内置的属性和方法来操作字符串,比如获取字符串长度、提取子字符串、替换字符等。字符串在 JavaScript 中是不可变的,即一旦创建,就不…...
CSSmodule的作用是什么
CSS Modules的作用主要体现在以下几个方面: 1. 解决全局样式污染问题 在传统的CSS管理方式中,样式定义通常是全局的,这很容易导致全局样式污染。当多个组件或页面共享同一个样式时,可能会出现样式冲突和覆盖的情况,从…...
python\shell\c++语法对比
语法区别举例: itempythonshellc变量定义a 10a10int a 10数组定义arr[1, add, 3]arr(1 a hello) declare -A arr([a]1 [b]2)int arr[] {1, 2, 3}if条件判断 if xxx: xxx elif xxx: xxx else: xxx if [ expressions ];then xxx e…...
优先队列【东北大学oj数据结构9-3】C++
优先队列 优先级队列是一种数据结构,其中保存了一组数据 S,其中每个元素都有一个键,并执行以下操作: insert(S, k):将元素k插入集合S extractMax(S):从S中取出S中key最大的元素并返回其值 创建一个程序&am…...
圣诞快乐(h5 css js(圣诞树))
一,整体设计思路 圣诞树h5(简易) 1.页面布局与样式: 页面使用了全屏的黑色背景,中央显示圣诞树,树形由三层绿色的三角形组成,每一层的大小逐渐变小。树干是一个棕色的矩形,位于三角…...
基于MATLAB的图像增强
目录 一、背景及意义介绍背景图像采集过程中的局限性 意义 二、概述三、代码结构及说明(一)整体结构(二)亮度增强部分(三)对比度增强部分(四)锐度增强部分 四、复现步骤(…...
大数据之Hbase环境安装
Hbase软件版本下载地址: http://mirror.bit.edu.cn/apache/hbase/ 1. 集群环境 Master 172.16.11.97 Slave1 172.16.11.98 Slave2 172.16.11.99 2. 下载软件包 #Master wget http://archive.apache.org/dist/hbase/0.98.24/hbase-0.98.24-hadoop1-bin.tar.gz…...
javaEE--计算机是如何工作的-1
目录 一.计算机的组成: 各组件的功能: 衡量cpu好坏的标准: 二.指令(instruction) 三.操作系统Operating System 四.进程/任务process/tesk 五.进程在系统中如何管理 1.进程在系统中的管理,从两个角度来分类: 2.进程控制块PCB(Process Control Block)) 3.P…...
vue.js 指令的修饰符
Vue.js 提供了一些指令修饰符,用于在指令的行为上添加额外的功能。下面详细解析一些常用的指令修饰符,并提供相应的代码实例。 .prevent:阻止默认事件 通过添加 .prevent 修饰符,可以阻止指令绑定的元素触发默认事件。 代码实例&a…...
基于java web在线商城购物系统源码+论文
一、环境信息 开发语言:JAVA JDK版本:JDK8及以上 数据库:MySql5.6及以上 Maven版本:任意版本 操作系统:Windows、macOS 开发工具:Idea、Eclipse、MyEclipse 开发框架:SpringbootHTMLjQueryMysq…...
Autosar入门_架构(Architecture)
上一篇 | 返回主目录 | 下一篇 架构(Architecture) 1 Autosar架构分层概述2 MCAL3 ECU抽象层4 复杂设备驱动5 服务层6 RTE7 应用软件层1 Autosar架构分层概述 整体架构分为三层:应用软件(APP)、实时运行环境(RTE)、基础软件(BSW)以下架构对BSW进行了细化,主要包含四…...
Altair: 轻松创建交互式数据可视化
Altair: 轻松创建交互式数据可视化 Altair 是一个基于 Vega-Lite 的 Python 数据可视化库,它旨在简化数据可视化的创建过程,尤其适用于统计图表的生成。Altair 强调声明式编码方式,通过简单的语法,用户能够快速创建复杂的交互式图…...
APM32F411使用IIS外设驱动es8388实现自录自播
前言: 从零开始学习I2s外设,配置Es8288寄存器实现录音播放。本文章使用主控芯片是APM32F411系类。音频相关的概念比较多,就不再次做过多的介绍,本文章只是简单实现边录边播功能。APM系类兼容st的芯片,所以用st的hal库来…...
RabbitMQ消息队列的笔记
Rabbit与Java相结合 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> 在配置文件中编写关于rabbitmq的配置 rabbitmq:host: 192.168.190.132 /…...
JAVA没有搞头了吗?
前言 今年的Java程序员群体似乎承受着前所未有的焦虑。投递简历无人问津,难得的面试机会也难以把握,即便成功入职,也往往难以长久。于是,不少程序员感叹:互联网的寒冬似乎又一次卷土重来,环境如此恶劣&…...
【线性代数】理解矩阵乘法的意义(点乘)
刚接触线性代数时,很不理解矩阵乘法的计算规则,为什么规则定义的看起来那么有规律却又莫名其妙,现在参考了一些资料,回过头重新总结下个人对矩阵乘法的理解(严格来说是点乘)。 理解矩阵和矩阵的乘法&#x…...
游戏开发技能系统常用概念
一个角色同一时间可能存在多个Skill,一个当前播放的主动技能,还有好几个不在播放中,但是也没有结束的。 技能事件: 实现具体的技能功能,技能动作的执行都是通过触发事件来触发的,比如(时间帧&am…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
