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

相关推荐
卖个几把萌9 分钟前
【16】Selenium+Python 接管已打开谷歌浏览器
python·selenium·测试工具
java1234_小锋1 小时前
Spring事件监听的核心机制是什么?
java·spring·面试
沐怡旸4 小时前
【穿越Effective C++】条款15:在资源管理类中提供对原始资源的访问——封装与兼容性的平衡艺术
c++·面试
玉宇夕落4 小时前
深入剖析 JavaScript 中 map() 与 parseInt 的“经典组合陷阱”
javascript·面试
沐怡旸5 小时前
【底层机制】Android对Linux线程调度的移动设备优化深度解析
android·面试
摸鱼仙人~5 小时前
针对编程面试和算法题的基础书籍
算法·面试·职场和发展
over6976 小时前
《JavaScript的"魔法"揭秘:为什么基本类型也能调用方法?》
前端·javascript·面试
weixin_441003647 小时前
2025教资面试真题电子版|科目试讲+结构化真题解析|完整PDF
面试·职场和发展·pdf
布列瑟农的星空7 小时前
后台类项目如何挖掘前端技术亮点
前端·面试
测试-鹏哥8 小时前
要将ITP集成到Jenkins Pipeline中,实现开发发版时自动触发自动化测试
运维·python·测试工具·ci/cd·jenkins