用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 方法一样

相关推荐
神秘的猪头2 小时前
🧠 深入理解 JavaScript Promise 与 `Promise.all`:从原型链到异步编程实战
前端·javascript·面试
进击的野人5 小时前
深入理解 Async/Await:现代 JavaScript 异步编程的优雅解决方案
javascript·面试·ecmascript 6
AI绘画小336 小时前
Web 安全核心真相:别太相信任何人!40 个漏洞挖掘实战清单,直接套用!
前端·数据库·测试工具·安全·web安全·网络安全·黑客
前端一课6 小时前
第 28 题:async / await 的原理是什么?为什么说它是 Promise 的语法糖?(详细版)
前端·面试
前端一课6 小时前
第 28 题:手写 async/await(Generator 自动执行器原理)
前端·面试
前端一课6 小时前
第 33 题:浏览器渲染流程(Reflow 重排、Repaint 重绘、Composite 合成)*
前端·面试
前端一课6 小时前
前端面试第 34 题:事件循环(Event Loop)—— 必考高频题
前端·面试
前端一课6 小时前
第 26 题:Vue2 和 Vue3 的响应式原理有什么区别?为什么 Vue3 要用 Proxy 替代 defineProperty?
前端·面试
前端一课6 小时前
第 30 题:模块化原理(CommonJS vs ESModule)
前端·面试
前端一课6 小时前
第 31 题:Tree Shaking 原理与常见失效原因(高频 + 难点 + 面试必考)
前端·面试