Appium(三):安装appium client、adb命令
1. 安装appium client
appium client是对webdriver原生api的一些扩展和封装。它可以帮助我们更容易的写出用例,写出更好的用例。
appium client是配合原生的webdriver来使用的,因此二者必须配合使用,缺一不可。
我们使用pip安装“Appium-Python-Client”。
pip install Appium-Python-Client
2. adb命令
2.1 adb的工作原理
2.1.1 adb的概念
ADB全名Android Debug Bridge,是一个调试工具。
开发安卓应用的程序员必须要掌握测试工程师在做安卓应用测试时,会使用到
2.1.2 adb的构成和工作原理
adb构成:
- client端:在电脑上,负责发送adb命令。
- daemon守护进程:在手机上,负责接收并执行adb命令。
- server端:在电脑上,负责管理Client端和实际的Daemon之间的通信。
adb工作原理:
- client端将命令发送给server端
- server端会将命令发送给daemon端
- daemon端进行执行
- 将执行结果返回给server端
- server端将结构再返回client端
2.2 adb常用命令
2.2.1 获取包名和界面名
包名(package):决定程序的唯一性(不是应用的名称)。
界面名(activity):对应着应用程序的某个界面,也叫启动名。
自动化测试需要通过代码的形式告诉手机测试哪个应用程序的哪个界面,所以需要通过这个命令进行获取。
命令格式:
adb shell dumpsys window windows | findstr mFocusedApp
结果如下:

其中包名为:
com.tencent.mobileqq
界面名为:
.activity.FriendProfileCardActivity
2.2.2 文件传输
(1) 发送文件到手机
将手机需要的数据(数据库文件)在电脑上调整好,直接发送给手机。
命令格式:
adb push 电脑的文件路径 手机的文件夹路径
实例:
将桌面的a.txt发送到手机的sd卡
adb push C:\Users\ACER\Desktop\a.txt /sdcard
运行结果:

这样就代表成功了,只不过我懒得去手机截图发到电脑。
(2) 从手机中拉取文件
将手机产生的文件(数据库文件,日志)拉取到电脑中。
命令格式:
adb pull 手机的文件路径 电脑的文件夹路径
实例:
将手机的sd卡的a.txt拉取到桌面
adb pull /sdcard/a.txt C:\Users\ACER\Desktop\
运行结果:


2.2.3 获取app启动时间
如果企业对应用程序的启动速度有要求,则需要使用这个命令进行测试。
命令格式:
adb shell am start -w 包名/启动名
实例:
启动com.android.settings程序并且进入主界面(.Settings)
adb shell am start -W com.android.settings/.Settings
运行结果:

ThisTime:该界面(activity)启动耗时(毫秒)
TotalTime:应用自身启动耗时 = ThisTime + 应用application等资源启动时间(毫秒)
waitTime:系统启动应用耗时 = 系统资源启动时间(毫秒)
2.3 adb命令大全
我看到一个CSDN的大佬写的博客,但是我不知道怎么跨网站转载,就这样吧。
《adb命令大全》:https://blog.csdn.net/duoluo9/article/details/79791988
Appium(三):安装appium client、adb命令的更多相关文章
- 【转】Appium的安装-Mac平台(命令行 dmg)
其实Appium的安装方式主要有两种: 1)自己安装配置nodejs的环境,然后通过npm进行appium的安装 2)直接下载官网提供的dmg进行安装,dmg里面已经有nodejs的环境和appium ...
- Appium的安装-Mac平台(命令行 & dmg)
其实Appium的安装方式主要有两种: 1)自己安装配置nodejs的环境,然后通过npm进行appium的安装 2)直接下载官网提供的dmg进行安装,dmg里面已经有nodejs的环境和appium ...
- Appium自动化测试教程-自学网-adb命令
adb命令: adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信.它可为各种设备操作提供便利,如安装和调试应用. T ...
- 『与善仁』Appium基础 — 5、常用ADB命令(二)
目录 9.查看手机运行日志 (1)Android 日志 (2)按级别过滤日志 (3)按 tag 和级别过滤日志 (4)日志格式 (5)清空日志 10.获取APP的包名和启动名 方式一: 方式二: 11 ...
- 『与善仁』Appium基础 — 4、常用ADB命令(一)
目录 1.启动和关闭ADB服务 2.查看ADB版本 3.指定adb server的网络端口 4.查询已连接设备/模拟器 5.获取安卓系统版本 6.为命令指定目标设备 7.发送文件到手机 8.从手机拉取 ...
- APK文件安装模拟器和ADB命令的使用
1.安装APK文件到模拟器 Android手机使用的执行文件为APK格式,类似于Windows平台的exe文件.在Android模拟器中安装APK文件有多种方法,如果你是开发人员,可以通过Eclips ...
- Appium学习——安装appium Server
安装appium Server 下载地址:百度网盘的下载链接:https://pan.baidu.com/s/1pKMwdfX 下载后, AppiumForWindows.zip 进行解压,点击 ap ...
- Appium的安装-MAC平台
其实Appium的安装方式主要有两种: 1)自己安装配置nodejs的环境,然后通过npm进行appium的安装 2)直接下载官网提供的dmg进行安装,dmg里面已经有nodejs的环境和appium ...
- 技术分享 | Appium环境安装与架构介绍
原文链接 Appium架构 Appium 设计哲学 不需要为了自动化而重新编译或修改被测应用 不应该让移动端自动化测试限定在某种语言或者某个具体的框架 不要为了移动端的自动化测试而重新造轮子 移动端自 ...
随机推荐
- seaborn 数据可视化(一)连续型变量可视化
一.综述 Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,图像也更加美观,本文基于seaborn官方API还有自己的一些理解. 1.1.样式控制: ...
- .Net Core使用分布式缓存Redis:数据结构
一.前言 本篇主要使用StackExchangeRedis在.Net Core中使用Redis,使用基础见:点击此处. 二.五种基础数据结构 1.字符串类型String 字符串类型是Redis中最基本 ...
- 【JS】382- JavaScript 模块化方案总结
本文包含两部分,第一部分通过简明的描述介绍什么是 CommonJS.AMD.CMD.UMD.ES Module 以及它们的常见用法,第二部分则根据实际问题指出在正常的 webpack 构建过程中该如何 ...
- ==和equals的深度分析
==的分析 1.对于基本数据类型,比较的是他们的具体内容是不是一样,跟他们的内存地址无关.举个栗子: public class Test{ public static void main(String ...
- JS基础-事件队列
为什么JavaScript是单线程? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事.那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊. JavaSc ...
- LNMP环境搭建(<=PHP7.2)
目录 准备工作 安装wget 安装net-tools 安装vim 配置显示行号 关闭防火墙 安装Nginx 安装依赖 编译安装Nginx 配置环境变量 Systemd管理 安装MySQL 安装依赖 下 ...
- 提示用户输入一个1-40之间的数字,使用if语句根据输入数字的大小进行判断,如果输入的数字在
提示用户输入一个1-40之间的数字,使用if语句根据输入数字的大小进行判断,如果输入的数字在 num_user=input('输入一个1-40之间的整数:') num_int=int(num_user ...
- VMware中Bridged、NAT、host-only三种网络连接模式的原理及其区别
VMnet0:这是VMware用于虚拟桥接网络下的虚拟交换机: VMnet1:这是VMware用于虚拟Host-Only网络下的虚拟交换机: VMnet8:这是VMware用于虚拟NAT网络下的虚拟交 ...
- CQRS+ES项目解析-Diary.CQRS
在<当我们在讨论CQRS时,我们在讨论些神马>中,我们讨论了当使用CQRS的过程中,需要关心的一些问题.其中与CQRS关联最为紧密的模式莫过于Event Sourcing了,CQRS与ES ...
- Cannot read property 'createElement' of undefined
场景: 架构:React+TS+DVA 具体场景: 在将之前后缀为jsx的组件转化为tsx后缀的组件时,抛出Cannot read property 'createElement' of unde ...