App测试1
App知识
🔥(核心)、⚠️(注意)、✅(已掌握)、🔍(待深挖)
App测试
是对移动端app进行从头到尾的测试 考虑的角度有:功能测试,性能测试,易用性测试,兼容性测试,安全测试,自动化测试, 弱网测试。
安卓和鸿蒙
安卓是一种基于Linux内核的操作系统,主要使用于移动设备,如手机和平板。
鸿蒙系统是华为自主研发的面向全场景的分布式操作系统,能够运行在手机、平板、手表、物联网。 特点:1.分布式:不同设备之间可以向“同一个设备”流转资源和应用。无缝协同 2.微内核架构:安全性高 3.鸿蒙能兼容运行大部分安卓应用,而 HarmonyOS NEXT 不再兼容,实现自主内核(微内核)+ 自主编译器(方舟编译器) + 自主语言(arkTs)。
安卓和鸿蒙测试的区别 🔥(核心)
冷启动就是从完全关闭的状态打开应用程序时的启动过程,因为app从磁盘–>内存的启动耗时长(3-5秒)
热启动就是应用已经运行的状态下返回到应用,或在后台切换回应用,直接从内存–>该app的耗时(2秒之内)
| 安卓 | 鸿蒙 | |
|---|---|---|
| 应用形态 | Apk的安装、卸载、升级 1个入口 | 还要关注原子化服务(元应用、卡片) 3个入口 |
| 核心功能 | 独立app的功能 | 分布式能力:多设备资源虚拟化,实现共享池。 服务流转:应用在不同设备间无缝切换,保持状态连续 |
| 兼容性测试 | 终端手机+平板,不同品牌厂商,系统版本13-16 | 多终端,不同型号的华为手机,版本HarmonyOS 3.0–6.0 |
| 性能测试 | app的冷启动(3-5秒)热启动时间时(2秒之内) 单设备 CPU / 内存 /耗电 | 还要原子化(元应用、卡片)服务启动 单设备 + 分布式协同(如多设备视频播放总 CPU ≤50%) |
| 安全测试 | 单应用权限申请、权限滥用 | 单应用权限,跨设备权限同步 |
App的类型
原生应用:直接运行在手机操作系统,需要下载,性能最高,需要对不同平台分别开发,适用于大型应用,游戏,短视频,支付。
混合应用:用原生壳子封装网页(WebView),需要下载,跨平台运行,有时会卡顿,适用于中型应用、跨平台需求高、迭代快的(电商、新闻类App)
网页应用:基于浏览器,无需安装,性能差,体验感最差,适用于简单信息展示,H5小游戏
ADB 🔥(核心)
adb工具
全称为Android Debug Bridge,即Android调试桥,是一种命令行工具,对Android系统中进行调试。通过adb,我们可以方便地与模拟器实例或连接的Android设备进行通信。
adb工具是一个客户端-服务器程序,包括以下三个组件:
1. 客户端:发送命令,在电脑端操作。
2. 服务器:管理客户端和守护进程之间的通信,确保客户端可以访问设备。
3. 守护进程:在设备上运行命令,作为后台进程在每个设备上运行。
adb的用处
1.操作设备: 允许开发者在模拟器或真实的Android设备上进行各种操作,如安装和调试应用。
2.文件传输:adb工具可以方便地在安卓设备和电脑之间传输文件。
3.模拟按键和触摸事件:adb可以模拟设备上的按键和触摸事件,这对于开发者进行自动化测试
和模拟用户操作非常有用。
第三方安卓模拟器(雷电、夜神等):大多自带内置的 ADB 环境。不用单独安装ADB,
安装好之后,去设置环境变量–在命令提示符 输入 adb version 可以看到安装成功
在模拟器中启用 ADB 调试模式:
在逍遥模拟器中,点击系统应用里的设置菜单
在设置菜单中,找到并点击“关于平板电脑”或类似的选项。
找到最下面的“版本号“,并连续点击7次,直到出现提示消息表明已启用开发者选项。
返回到上一级菜单,找到“开发者选项”。
在开发者选项中,找到并启用“USB调试”选项。
查看是否成功连接到模拟器:命令的输出会列出模拟器的设备信息。
adb devices
hdc(HarmonyOS Device Connector)
为开发人员提供的用于调试的命令行工具,通过该工具可以在windows/linux/mac系统上与鸿蒙设备进行交互。在使用hdc前,请在设备上开启usb调试功能,用usb线连接设备和PC。
基本使用方法 ⚠️(注意)
设备连接管理
adb version 查看adb的版本信息 hdc version
adb devices 列出已连接并通过ADB进行通信的安卓设备 会有套接字。 hdc list targets
如果有offline 一般是adb版本比较低,或者usb线损坏出现,你电脑的USB口有问题。
adb shell 允许你通过命令行接口与连接的安卓设备或模拟器进行交互。 hdc shell ls
安卓安装的app路径在哪里?第三方软件存储在哪个路径?**
/data/app
这是 Android 系统用于存储已安装应用程序的 APK 文件的目录。当你从 Google Play 商
店或其他来源安装一个应用程序时,其 APK 文件通常会被复制到这个目录。
/sdcard
这是外部存储的主要目录,通常对应于设备上的 SD 卡(尽管在许多现代设备上,这实
际上只是设备内置存储的一部分,模拟为 SD 卡)。应用程序和用户都可以在这里存储和访问文件。它是用户可访问的,因此经常用于保存用户生成的内容,如照片、视频、文档等。
应用管理
adb install(安装)通过(ADB) 将APK 文件安装到连接的 Android 设备或模拟器上。 hdc install
后缀名是.apk即可。找到文件所在位置,cmd-- adb install XXX.apk
adb uninstall(卸载) 通过应用的包名来指定要卸载的应用。 hdc uninstall、
方法1:前提是那个软件在运行
adb shell dumpsys window | findstr mCurrentFocus 会显示在运行软件的包名
adb uninstall 包名
方法2:
adb shell pm list packages | findstr 应用英文名
adb uninstall 包名
adb shell pm ,你可以查询、安装、卸载和更新应用程序 hdc shell bm dump查看设备里的应用包名
adb shell pm list packages 列出所有已安装的应用包名
adb shell pm list packages | findstr app.top.zydx 查询特定应用的信息
adb shell pm clear app.top.zydx 清除应用的数据
adb shell am start -n app.top.zydx/.MainActivity 启动一个活动
adb shell am force-stop app.top.zydx 强制关闭一个应用
hdc shell aa start
hdc shell "aa force-stop
文件管理
adb push 将文件从计算机复制到Android设备 hdc file send
单个文件:adb push practice.txt /sdcard
多个文件:adb push test.png test1.png /sdcard
上传所有png结尾的文件:for %f in (*.png) do adb push “%f” /sdcard/
adb pull 从Android设备获取文件并保存到计算机上。hdc file recv
单个文件:adb pull /sdcard/practice.txt
多个文件:adb pull /sdcard/test.png /sdcard/test1.png
系统日志
adb logcat 从连接的 Android 设备或模拟器捕获日志。 hdc hilog
Warn(W):用于警告, Error(E):用于错误, Fatal(F):用于致命错误。
1.查看特定应用程序的日志:adb logcat app.top.zydx
2.只关心错误级别的日志:adb logcat app.top.zydx *:E
3.根据关键字查找:adb logcat app.top.zydx** | findstr “error”**
4.将日志保存到文件:adb logcat app.top.zydx** ***:E -d -t 100 >test.log
-d 表示仅获取当前日志缓冲区的内容,而不是持续监听新的日志消息
-v time : 表示输出日志消息时包含时间戳信息
-t 100: 只获取最新的 100 条日志消息
5.清除日志:adb logcat -c
日志文件放哪里
/data/log/hilog
屏幕操作
adb shell screencap Android截屏 hdc shell snapshot_display
捕获屏幕并保存到设备 adb shell screencap -p /sdcard/screenshot.png
adb shell screenrecord Android录屏
录屏保存到MP4 adb shell screenrecord /sdcard/myrecording.mp4
Ctrl + C 来中断
查询cpu:adb shell top -n 1 hdc shell top -n 1
-n 1 表示只执行一次并输出结果
查询耗电量:adb shell dumpsys battery hdc shell hidumper -s BatteryService -a -i
面试题:你知道有哪些常见adb命令?
一般我把用的比较多的指令分为5大类,分别是设备连接类,应用管理类,文件管理类,日志操作类和屏幕操作类,对应设备连接类我用的比较频繁的是adb devices查看设备连接状态,adb version查看adb版本,应用管理类我会使用adb install安装程序、adb uninstall卸载程序和adb shell pm包管理以及am页面管理,文件管理我会使用adb push推送文件和adb pull拉取文件,系统日志我会使用adb logcat查询日志,屏幕操作我会使用adb shell screencap截图或者adb shell screenrecord去录屏,最后查询cpu我会考虑使用adb shell top,耗电量我会使用adb shell dumpsys battery,以上就是我经常使用的指令。
面试题:你知道hdc有哪些场景指令?
一般我把用的比较多的指令分为5大类,分别是设备连接类,应用管理类,文件管理类,日志操作类和屏幕操作类,对应设备连接类我用的比较频繁的是hdc list targets,hdc version,应用管理类,我会使用hdc install、hdc uninstall和hdc shell bm以及aa管理,文件管理我会使用hdc file send
推送文件和hdc file recv拉取文件,系统日志我会使用hdc hilog查询日志,屏幕操作我会使用snapshot_display截图或者screenrecorder去录屏,最后查询cpu我会考虑使用hdc shell top,以上就是我经常使用的指令。
同一个 App(包名相同),手机上只能存在一个版本 安装新版本时,会覆盖旧版本,
先安装新版本,再安装旧版本,默认是不能正常安装使用的。
更多推荐



所有评论(0)