【APP移动端自动化测试】第一节.环境配置和adb调试工具
文章目录
- 前言
- 一、Java环境搭建
- 二、AndroidSDK环境搭建
- 三、Android模拟器安装
- 四、adb调试工具基本介绍
- 4.1 adb构成和基本原理
- 4.2 adb获取包名,界面名
- 4.3 adb文件传输
- 4.4 adb获取app启动时间
- 4.5 adb获取手机日志
- 4.6 adb其他有关命令
- 总结
前言
一、Java环境搭建
之前文章已经介绍过,此处就不赘述了。
二、AndroidSDK环境搭建
Android sdk提供Android API库和开发工具构建,测试和调试应用程序使用
下载android sdk
https://dl.google.com/android/android-sdk_r24.4.1-windows.zip;
(也可以直接安装 android studio 开发工具,内部集成了android-sdk)
解压后运行文件夹中 SDK Manager.exe 安装sdk tools、sdk plaform-tools、sdk build-tools
配置环境变量
新建ANDROID_HOME,值为sdk的目录。
把下面三个路径,加入path
加入path,确定,关闭环境变量设置。
验证,命令行输入adb,只要看到版本号即可。
三、Android模拟器安装
首先需要让系统找到模拟器上手机设备。如何让系统找到模拟器?
运行adb devices可以看到此时没有设备。
把android sdk文件夹下platform tools下的adb.exe复制到夜神的bin文件夹下,并改名为nox_adb.exe,然后重启夜神。
再用adb devices 检测到的就是夜神模拟器的设备
四、adb调试工具基本介绍
4.1 adb构成和基本原理
(1)简介:
ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。安卓调试桥 (Android Debug Bridge, adb),是一种可以用来操作手机设备或模拟器的命令行工具。
(2)abd构成:
- client端,在电脑上,负责发送adb命令
- daemon守护进程,在手机上,负责接收和执行adb命令
- server端,在电脑上,负责管理client和daemon之间的通信adb工作原理
(3)adb工作原理:
1. client端将命令发送给server端
2. server端会将命令发送给daemon端
3. daemon端进行执行
4.将执行结果,返回给server端
5. server端将结果再返回给client端
4.2 adb获取包名,界面名
(1)包名和界面名的概念
- 包名,对应着应用程序
- 界面名,对应着应用程序的某个界面,也叫做启动名
(2)如何获取包名和界面名
mac adb she17 dumpsys window windows / grep mFocusedAppwindows adb she11 dumpsys window windows / findstr mFocusedApp
(3)应用场景
后期,我们告诉计算机到底打开哪一个应用和哪一个界面,必须使用的一个写代码的参数
作用:获取设置程序的包名和界面名
1.先在模拟器或手机中打开《设置》应用程序
2.输入对应平台的命令
图示说明:
结果如下:
mFocusedApp=AppwindowToken{53309da token=Token{2e2fa785ActivityRecord{2928d4fc u0 com.android.settings /.settings t1127}33
其中:
- 包名为:com.android.settings
- 界面名为:.settings
4.3 adb文件传输
两种情况:
1.发送文件到手机
2.从手机中拉取文件
(1)发送文件到手机
1.应用场景
将手机需要的数据(数据库文件)在电脑上调整好,直接发送给手机
2.命令格式
adb push电脑的文件路径手机的文件夹路径
3.示例
作用:
将桌面的a.txt 发送到手机的sd 卡
代码实现:
adb push C: \users\hm\Desktop\a.txt/sdcard
(1)从手机拉取文件
1.应用场景
将手机产生的文件(数据库文件,日志文件)拉取到电脑中
2.命令格式
adb pu11 手机的文件路径 电脑的文件夹路径
3.示例
作用:
将手机的sd卡的a.txt拉取到桌面
代码实现:
adb pull /sdcard/a.txt c: \users \hm\Desktop
图示实现:
4.4 adb获取app启动时间
(1).应用场景
1.如果企业对应用程序的启动速度有要求,则需要使用这个命令进行测试
2.测试标准:参照同类软件,启动时间不能超出一倍即可
(2).命令格式
adb she11 am start -w 包名/启动名
3.示例
作用:
启动com.android.settings程序并且进入主界面( .settings )
代码实现:
adb she1l am start -w com.android.settings / .settings
图示说明:
解释:
1. ThisTime:该界面( activity)启动耗时(毫秒)2.TotalTime:应用自身启动耗时= ThisTime+应用application等资源启动时间
3. waitTime:系统启动应用耗时=TotalTime+系统资源启动时间(毫秒)
图示解析:
4.5 adb获取手机日志
(1)应用场景:
将bug的日志信息发送给开发人员,便于开发人员定位bug使用步骤。
当成发生崩溃的时候,可以将日志信息发送给开发人员,便于其快速的定位bug。
关于崩溃的处理,需要找日志中的“at”前面,的第一个字符是E的就是错误信息。
(2)使用步骤:
1.打开需要测试的应用程序
2.找到触发bug的位置
3.使用查看日志命令
4.触发bug
5.获取日志信息命令格式
(3)命令格式:
adb logcat
(4)示例:
1.安装bug.apk
2.打开《有bug的程序》应用程序
3.命令行中输入adb logcat命令
4.点击登录按钮
5.获取日志信息
4.6 adb其他有关命令
命令1:安装app到手机
代码:adb install 路径/xx. apk
命令2:卸载手机上的app,需要指定包名
代码:adb install 路径/xx. apk
命令3:获取当前电脑已经连接设备和对应的设备号
代码:adb devices
命令4:进入到安卓手机内部的linux系统命令行中
代码:adb she11
命令5:启动adb 服务端,出bug时使用可以重启服务器,先关闭再启动
代码:adb start-server
命令6:停止adb服务端,出bug时使用可以重启服务器,先关闭再启动
代码:adb kill-server
命令7:查看adb帮助,命令记不清楚时有用
代码:adb --help
总结
相关文章:

【APP移动端自动化测试】第一节.环境配置和adb调试工具
文章目录 前言一、Java环境搭建二、AndroidSDK环境搭建三、Android模拟器安装四、adb调试工具基本介绍 4.1 adb构成和基本原理 4.2 adb获取包名,界面名 4.3 adb文件传输 4.4 adb获取app启动时间 4.5 adb获取手机日志 4.6 adb其他有关…...
Kotlin 协程:从基础概念到开发实践
前言 上一篇文章 深入理解Android多线程开发:场景应用与解决方案解析 针对Android开发中的多线程应用场景和相应的解决方案做了一个梳理。 总结出了Android开发中多线程编程的几个重要点: 资源复用和优化切线程任务编排并结合示例说明了Kotlin协程在处理上述问题时的优势。 …...
IPNV6
特征——升级点: 1、全球单播地址 ----IPV4地址下的公有地址 V6下没 nat 2、可聚合性 (IANA组织对全球的地址进行合理分配) 3、多宿主——一个物理接口可以同时拥有多个不同网段的IPV6地址;但不同接口不能在同一网段 4、自动配置 1ÿ…...

C++并发之锁(std::lock_guard,std::unique_lock)
目录 1 概述2 使用实例3 接口使用3.1 lock_guard3.2 adopt_lock3.3 defer_lock3.4 try_to_lock3.5 try_lock3.6 release3.7 lock3.8 call_one1 概述 锁保护是通过使互斥对象始终处于锁定状态来管理互斥对象的对象。。 在构造时,互斥对象被调用线程锁定,在析构时,互斥被解…...

FreeRTOS队列(queue)
队列(queue)可以用于"任务到任务"、 "任务到中断"、 "中断到任务"直接传输信息。 1、队列的特性 1、1常规操作 队列的简化操如下图所示,从此图可知: 队列中可以包含若干数据:队列中有若干项,这…...

Azure数据分析Power BI
Azure数据分析Power BI 一、Power BI简介二、Power BI 如何匹配角色三、Power BI 构建基块四、使用 Power BI 服务一、Power BI简介 Microsoft Power BI 是一系列的软件服务、应用和连接器,这些软件服务、应用和连接器协同工作,将不相关的数据源转化为合乎逻辑、视觉上逼真的…...
将 Python3 程序打包成 APK 并运行在 ARM 的 Android 系统中
作为一个开发者,我们经常需要将我们的 Python 程序部署到移动端,以便更好地服务于用户。然而,直接在 Android 系统上运行 Python 程序却存在一定的挑战,因为 Android 系统默认不支持 Python。这篇文章将介绍如何将 Python3 程序打…...

学习记录:VS2019+OpenCV3.4.1实现SURF库函数的调用
最近在学习opencv的使用,在参照书籍《OpenCV3编程入门》实现SURF时遇到不少问题,下面做归纳总结。 错误 LNK2019 无法解析的外部符号 “public: static struct cv::Ptr __cdecl cv::xfeatures2d::SURF::create(double,int,int,bool,bool)” (?createSUR…...

JVM-基础知识
JVM-基础知识 什么是JVM JVM是一种跨语言的平台,任何语言只要能编译成.class文件都可以被JVM运行。JVM只和.class文件有关系,和Java语言没关系。JVM是一种虚拟机规范。 java文件是如何交给JVM执行的 JVM的常见实现 HostStop:Oracle官方另外还有IBM的J9、…...
保密工作应党而生、伴党而行、为党而兴
1.(C )工作应党而生、伴党而行、为党而兴,始终是党和国家的一项重要工作。 A. 农业 B. 国防 C. 保密 D. 文化 2.机关、单位对所产生的国家秘密事项,应当按照国家秘密及其密级的具体范围的规定确定密级,同时确定&#x…...

docker login 报错: http: server gave HTTP response to HTTPS client
环境: 自建 Harbor、Docker 1. 问题分析 # 命令,这里用的是 IP,可以为域名 docker login -u test 172.16.51.182:31120 # 输入密码 Password:# 报错如下: Error response from daemon: Get "https://172.16.51.182:31120/…...
「C系列」C 文件读写
文章目录 一、C 文件读写1. 打开文件2. 写入文件3. 读取文件4. 关闭文件5. 文件读写模式6. 错误处理 二、常见问题1. 文件打开失败2. 文件读写错误3. 文件读写位置4. 缓冲区刷新 三、相关链接 一、C 文件读写 在C语言中,文件读写是通过一系列的标准库函数来完成的&…...
编程中的cos:深度解析与应用探索
编程中的cos:深度解析与应用探索 在编程的广阔天地中,cos这一数学概念扮演着举足轻重的角色。它不仅是数学函数库中的基础元素,更是图形渲染、科学计算以及数据处理等多个领域的核心工具。本文将从四个方面、五个方面、六个方面和七个方面&a…...

计算机毕业设计hadoop+spark+hive知识图谱酒店推荐系统 酒店数据分析可视化大屏 酒店爬虫 高德地图API 酒店预测系统 大数据毕业设计
流程: 1.Python爬取去哪儿网全站旅游数据约10万,存入mysql; 2.使用pandasnumpy/hadoopmapreduce对mysql中旅游数据进行数据清洗,使用高德API计算地理信息,最终转为.csv文件上传hdfs; 3.hive建库建表导入.csv文件作为数据集&#x…...

简单谈谈云服务器私网IP的存在意义及优势
云服务器是基于虚拟化技术的计算资源,可以在云平台上灵活创建和管理。为了满足不同用户的需求,云服务提供商在云服务器上分配了两种类型的IP地址:公网IP和私网IP。其中,私网IP是指在局域网内使用的内部IP地址,无法通过…...

python错题(2)
、...

禁止methtype联网
mathtype断网_如何禁止mathtype联网-CSDN博客https://blog.csdn.net/qq_41060221/article/details/128144783...

【iOS】UI学习——cell的复用及自定义cell
目录 前言cell的复用手动(非注册)自动(注册) 自定义cell总结 前言 Cell复用和自定义Cell是在开发iOS应用时常见的一种优化技巧和定制需求。 Cell复用是UITableView或UICollectionView的一个重要优化机制。当用户滚动这些视图时…...

【详细介绍下PostgreSQL】
🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…...

基于Matlab停车场车牌识别计时计费管理系统 【W2】
简介 停车场车牌识别计时计费管理系统在现代城市管理中具有重要意义。随着城市化进程的加快和车辆数量的增加,传统的人工管理停车场的方式已经难以满足效率和精确度的要求。因此引入车牌识别技术的自动化管理系统成为一种趋势和解决方案。 背景意义 提升管理效率&a…...

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...

多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...

云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...

数据分析六部曲?
引言 上一章我们说到了数据分析六部曲,何谓六部曲呢? 其实啊,数据分析没那么难,只要掌握了下面这六个步骤,也就是数据分析六部曲,就算你是个啥都不懂的小白,也能慢慢上手做数据分析啦。 第一…...

基于stm32F10x 系列微控制器的智能电子琴(附完整项目源码、详细接线及讲解视频)
注:文章末尾网盘链接中自取成品使用演示视频、项目源码、项目文档 所用硬件:STM32F103C8T6、无源蜂鸣器、44矩阵键盘、flash存储模块、OLED显示屏、RGB三色灯、面包板、杜邦线、usb转ttl串口 stm32f103c8t6 面包板 …...