功能测试--Day04--App手工测试(常用ADB命令介绍)
发布时间:2026/6/6 12:56:10
分类:文化教育
浏览:1234
)
一、ADB基础1.1、ADB工具介绍➢ADBAndroid Debug Bridge是一个通用命令行工具也是Android软件测试开发工作者常用的调试工具➢ ADB可以用来安装卸载软件、管理安卓系统软件、启动测试、抓取操作日志等【APP专项稳定性】1.2、ADB环境安装➢ 下载安装包➢ 官网下载➢ 网盘链接已提供需要可留言➢ 安装步骤➢ 安装安卓SDK➢ 安装ADB➢ 配置环境变量计算机右键—属性—高级系统设置—环境变量--新增系统变量➢ 结果验证二、常用的ADB命令介绍2.1、显示系统中全部设备➢检查接入的设备adb devices2.2、开启或关闭ADB服务➢ 开启adb服务adb start-server➢ 关闭adb服务adb kill-server备注# 接入设备状态不正常offline# 1.重启模拟器/手机# 2.重启ADB服务adb kill-serveradb start-server2.3、连接/断开设备➢ 连接设置➢ 命令adb connect IP➢ 示例adb connect 127.0.0.1:7555➢ 断开设备➢ 命令adb disconnect IP➢ 示例adb disconnect 127.0.0.1:7555备注# 连接设备adb connect IP:端口2.4、安装/卸载软件包场景测试Android设备过多建议使用adb命令安装更高效面试adb安装APP软件和卸载APP软件有啥区别关键不一样安装install卸载uninstall安装和卸载跟的内容不一样卸载后跟包名安装adb install apk路径卸载adb uninstall 包名屏幕清除cls➢ 安装软件➢ 命令adb install APK路径➢ 选项[-r] 覆盖安装时保留数据和缓存文件。➢ 示例adb install soubaoShopMobile-release.apk➢ 示例adb install -r soubaoShopMobile-release.apk➢ 卸载软件➢ 命令adb uninstall apk包名➢选项[-k] 卸载时保留数据和缓存文件➢ 示例adb uninstall com.tpshop.malls2.5、adb工作原理ADB 说明 ADB 全名 Android Debug Bridge是一个手机调试工具⚫ Client端运行在开发机器中即你的开发电脑用来 发送 adb 命令⚫ Server端同样运行在开发机器中用来管理 Client 端和手机的 Daemon 之间的通信⚫ Daemon守护进程运行在调试设备中手机或模拟器 用来接收并执行 adb 命令备注adb daemon(系统自带守护程序) daemon程序在Android手机/模拟器中自带还可以连接真机Android手机--用数据线手机需要开启开发者模式2.6、获取软件包名命令行分布解释adb shell 进入安卓得Linux内核pm package manage 包管理器adb shell pm list packages 以list形式展示安装的包com.android.xxxx 都是安卓自带的包➢列出手机装的所有app的包名adb shell pm list packages➢列出系统应用的所有包名adb shell pm list packages -s➢列出除了系统应用的第三方应用包名adb shell pm list packages -3➢显示当前打开的软件包名和当前界面名➢Windowsadb shell dumpsys window | findstr mCurrentFocus➢Mac/Linuxadb shell dumpsys window | grep mCurrentFocus➢注意需要打开目标软件如tpshop➢adb shell dumpsys window 聚焦这个窗口findstr mCurrentFocus 聚焦当前界面➢概念⚫包名package决定程序的唯一性不是应用的名字⚫界面名activity目前可以理解一个界面名对应着一个 界面com.tpshop.malls/com.tpshop.malls.WelcomActivity 包名/界面名查看第三方软件包adb shell pm list packages -3查看正在打开软件包和页面名Activity场景为后续启动测试查看包名和页面名做准备windowsadb shell dumpsys window | findstr mCurrentFocusmac/Linuxadb shell dumpsys window | grep mCurrentFocus2.7、清除应用数据与缓存➢ 命令adb shell pm clear apk包名➢ 示例adb shell pm clear com.tpshop.malls 清除指定的某个包的数据与缓存2.8、启动、停止应用场景模拟人启动/停用APP注意启动需要知道包名和页面名注意是APP的启动页不是进入的首页停用只需要知道包名即可启动adb shell am start 包名/页面名停用adb shell am force-stop 包名模拟APP启动测试启动adb shell am start -W -S -R 次数 包名/页面名-W显示启动时间主要看TotalTime-S启动前先关闭程序进程-R后面跟重复测试的次数测试结果➢ 启动➢ 命令adb shell am start 包名/Activity名➢ 示例adb shell am start com.tpshop.malls/com.tpshop.malls.SplashActivity备注Activity名需要是启动页的Activity名不能是首页的Activity名当app显示启动页时直接回车执行以上启动命令获取启动页Activity名➢ 停止➢ 命令adb shell am force-stop apk包名➢ 示例adb shell am force-stop com.tpshop.malls2.9、获取手机APP日志面试场景针对APP类型项目测试过程中出现了不可复现的bug时最好提前通过adb logcat打开日志并记录最好将日志重定向到指定的文件中通过搜索关键词查询时间段/日志内容提交开发进行进一步确认是否是bug日志内容包含操作系统的日志和APP应用的日志命令格式adb logcat 日志文件名.log注意强制结束用ctrlc➢获取错误日志步骤➢当测试过程中发现问题后想获取错误日志信息⚫打开被测应用程序进入到触发缺陷的位置⚫使用查看日志命令adb logcat⚫触发缺陷⚫获取日志信息注意一般的情况下留意Error错误级别的日志。另外类似如上图中的一些异常错误日志信息。在触发错误日志时及时 ctrlc掐断日志刷新。➢命令adb logcat 指定路径➢案例抓取APP日志信息并保存到1.txt文件中①adb logcat C:\Users\18810\Desktop\1.txt②执行完后CtrlC结束日志获取③查看获取的1.txt文档即可日志级别2.10、文件传输➢上传文件➢adb push 电脑的文件路径 手机的文件夹路径➢下载文件➢adb pull 手机的文件路径 电脑的文件夹路径备注如果操作失败就先adb shell进入系统中然后有一个sdcard 然后在cd sdcard 就会出现Download 然后在往这个里面写场景如何将电脑文件传到手机/模拟器上或者把手机/模拟器文件传到电脑上注意下载文件到电脑时需要指定文件夹否则可能会报错上传电脑文件上传手机adb push 电脑路径 手机路径下载手机文件下载电脑adb pull 手机路径 电脑路径2.11、获取app启动时间➢测试通过标准⚫需求有明确的启动时间指标⚫参考同类软件启动时间不能大于竞争对手的启动 时间➢启动app➢adb shell am start -W 包名/启动名➢结果说明ThisTime 该界面( activity ) 启动耗时毫秒TotalTime应用自身启动耗时 ThisTime 应用application 等资 源启动时间毫秒WaitTime 系统启动应用耗时 TotalTime 系统资源启动时间毫 秒➢格式adb shell am start -W 包名/activity名➢常见参数-S表示每次启动前先强行停止-R表示重复测试次数➢常见的三个指标➢ ThisTime 当前activity的时间。➢TotalTime应用的启动时间包括创建进程、App初始化、Activity初始化到界面显示。➢ WaitTime前一个应用activity pause的时间TotalTime➢ 举例adb shell am start -W -S -R 3 com.tpshop.malls/com.tpshop.malls.SplashActivity冷启动直接杀死进程重新启动 热启动从后台启动 测试主要以冷启动为主2.12、获取内存场景获取正在运行的app占用内存比例查看格式adb shell dumpsys meminfo 包名如果不写包名能看到设备总内存【Total RAM】Free RAM 空闲内存 Used RAM 正在使用的 Lost RAM 丢失的带包名能看到当前app实际使用的内存total pss计算当前app占用内存% Total PSS/总内存 *100%如下截图Tpshop的app内存占比 Total PSS / Total RAM 82069/6093056 * 100% 1.3%➢ 格式adb shell dumpsys meminfo 包名➢ 示例adb shell dumpsys meminfo com.tpshop.mallsadb shell dumpsys meminfo 查整个系统的内存adb shell dumpsys meminfo 包名 查某个app占用的内存➢ 检查点➢Native/Dalvik 的 Heap 信息➢ 如果发现这个值一直增长则代表程序可能出现了内存泄漏Out of memory。➢Total 的 PSS 信息➢ 这个值是应用真正占据的内存大小通过这个信息可以轻松判别手机中哪些程序占内存比较大2.13、查看CPU占用情况场景获取正在运行的app占用CPU比例动态查看CPU及内存占用情况查看格式adb shell top说明能够动态实时查看CPU及内存占比adb shelltop -s 9 列是【1~x】比如%CPU 是第9列如果只想看tpshop的 adb shell top| findstr com.tpshop.malls adb shell top| findstr 包名为了方便计算和查看把输出的数据保存到文件中使用重定向adb shell top| findstr com.tpshop.malls d:\aa.log➢ 格式adb shelltop -s 列号➢ 说明[-s]按指定列排序➢示例adb shelltop -s 9 列是【1~x】比如%CPU 是第9列➢ 参数含义➢ PID : 进程ID➢ USER进程所有者用户名➢ PR优先级➢ NInice值➢ VIRT进程使用的虚拟内存总量➢ RES进程实际使用内存➢ SHR共享内存大小➢ S : 进程的状态➢%CPU进程所占用的CPU百分比➢%MEM进程所占用的物理内存百分比➢ TIME进程使用的CPU时间总和➢ ARGS程序2.14、获取APP使用流量➢ 获取进程pid➢ winadb shell ps | findstr 包名➢ macadb shell ps | grep 包名➢ 如adb shell ps | findstr com.tpshop.malls➢ 获取流量➢ adb shell cat /proc/{pid}/net/dev➢ 查看➢ Wlan0wifi网卡➢ Receive是接受、Transmit是发送备注当链接多个设备但是想查询其中一个设备的数据信息时需要加-s比如输入adb shell top 报errormore than one device/emulator修改后输入adb -s 127.0.0.1:7555 shell top三、Monkey稳定性测试性能稳定性测试介绍稳定性测试通过长时间对应用程序进行无序操作检验应用程序是否会出现异常。如闪退crash、无响应ANR等。稳定性测试工具——Monkey⚫ Monkey是一个命令行工具是由安卓官方提供的。⚫ 测试人员可以通过Monkey来模拟用户的触摸、点击、滑动以及系统按键等操作操作事件都是随机的从而实现对APP压力的测试和稳定性测试。⚫ 开发人员结合monkey 打印的日志和系统打印的日志修改测试中出现的问题。稳定性测试的时机⚫ 一般需要等产品稳定了bug比较少的时候再用monkey去测试待测试应用的稳定性。Monkey测试➢ 语法adb shell monkey -p 包名-v 次数 c:\日志.txt➢ 说明➢-p 指定包名➢-v 日志详细程度最高支持’-v -v -v’最详细➢ 示例adb shell monkey –p com.tpshop.malls –v 20000 C:\Users\Jack\Desktop\monkey.txtmonkey命令参数拓展了解总结1. 启动时间:adb shell am start-W 包名/activity名2. 内存adb shell dumpsys meminfo 总结3. CPUadb shell top4. 安装adb install 软件包路径5. 卸载adb uninstall 包名6. 抓取日志:adb logcat 指定路径7. Monkeyadb shell monkey -p 包名-v 次数 c:\日志.txt8. 流量✓ 获取pid✓ windowsadb shell ps | findstr 包名✓ macadb shell ps | grep 包名✓ 查看流量adb shell cat /proc/{pid}/net/dev四、软件开发方法及应用发布思考互联网应用京东与传统行业应用个税APP)更新速度一样吗软件开发方法迭代速度不同开发模型不一样传统行业瀑布模型互联网敏捷模型开发模式瀑布模型将一个项目作为一个整体下一个环节依赖上一 个环节的完成。敏捷模型将一个项目拆分成多个子项目每一个迭代周期 完成一个子项目敏捷开发scrum模型Scrum是一个敏捷开发框架是一个增量的迭代的开发过程⚫ 迭代sprint项目开发过程中最小周期每个sprint周期建议为2周。在scrum框架中整个开发周期包括若干个 小的迭代周期。⚫ 产品功能列表Backlog 在Scrum中将产品Backlog按商业价值排出需求列表Scrum三种角色⚫ Product Owner(产品负责人)➢ 定义需求进行需求排期⚫ Scrum Master(项目经理)➢ 管理项目确保scrum顺利执行⚫ Dev Team(开发团队)➢ 实现客户需求➢ 成员开发、测试、UI。➢ 团队人数一般5人到9人。开发测试比一般为3:1 —5:1敏捷开发模式 ——scrum敏捷模型总结1、什么是敏捷模型 总结• 核心是将一个项目拆分成多个子项目每一个迭代周期完成 一个子项目。2、敏捷模型Scrum• 三种角色• 产品负责人ProductOwner• 项目经理ScrumMaster• 开发团队DevTeam包含开发、测试、UI。• 迭代周期2周左右思考100台服务器发布新版本时1次性更新100台服务器好还是先更新几台验证一段时间好项目上线发布策略思考APP如何发布APP软件包类型⚫ APP开发完成后相应的开发人员会打出应用程序包由测试人员安装测试IOS【格式IPA测试包】 ----- APP客户端 ----- Android【格式APK测试包】注意IOS APP和Android APP在界面上的功能一样 但实际上是两个完全独立的项目。•使用不同的开发语言•由不同的项目组成员进行开发思考APP测试包如何发布和管理APP客户端内部发布平台⚫ 在实际测试工作中为了方便测试程序包的安装和管理可以使用一些应用内测分发平台。如蒲公英、Testlink等⚫ 操作步骤➢ 开发将应用测试包上传到这些平台上➢ 平台可以生成对应的二维码➢ 测试直接扫码进行应用安装思考APP包如何发布给用户APP客户端线上发布平台⚫产品测试完成后要在线上进行发布让用户进行下载使用。下面是安卓和IOS应用常用的发布平台和渠道➢ Android应用豌豆荚、应用宝、360手机助手、各类手机品牌商城等➢ IOS应用主要有 App store、iTools⚫操作步骤➢开发者账号注册申请在发布平台各种应用商店上架➢针对不同的发布平台在软件包中加入对应的平台ID渠道ID上传到发布平台➢平台审核通过后用户即可在应用商店中下载注意事项⚫一般线上发布过程由开发人员负责。⚫在软件包加入平台ID后上传到发布平台时需要测试人员验证核心的业务功能总结1、互联网公司使用什么开发模型多久迭代一次✓ 敏捷开发模型✓ 2周2、什么是灰度发布✓ 时间预发布环境测试之后生产环境发布之前✓ 策略部分用户可用若有异常则回滚