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,是一个调试工具。

adb是多用途的命令行工具(command line tool)通过它,我们可以与模拟器(emulator)以及安卓设备(android device)进行通信交流。
开发安卓应用的程序员必须要掌握
测试工程师在做安卓应用测试时,会使用到 

2.1.2 adb的构成和工作原理

adb构成:

  1. client端:在电脑上,负责发送adb命令。
  2. daemon守护进程:在手机上,负责接收并执行adb命令。
  3. server端:在电脑上,负责管理Client端和实际的Daemon之间的通信。

adb工作原理:

  1. client端将命令发送给server端
  2. server端会将命令发送给daemon端
  3. daemon端进行执行
  4. 将执行结果返回给server端
  5. 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命令的更多相关文章

  1. 【转】Appium的安装-Mac平台(命令行 dmg)

    其实Appium的安装方式主要有两种: 1)自己安装配置nodejs的环境,然后通过npm进行appium的安装 2)直接下载官网提供的dmg进行安装,dmg里面已经有nodejs的环境和appium ...

  2. Appium的安装-Mac平台(命令行 & dmg)

    其实Appium的安装方式主要有两种: 1)自己安装配置nodejs的环境,然后通过npm进行appium的安装 2)直接下载官网提供的dmg进行安装,dmg里面已经有nodejs的环境和appium ...

  3. Appium自动化测试教程-自学网-adb命令

    adb命令: adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信.它可为各种设备操作提供便利,如安装和调试应用. T ...

  4. 『与善仁』Appium基础 — 5、常用ADB命令(二)

    目录 9.查看手机运行日志 (1)Android 日志 (2)按级别过滤日志 (3)按 tag 和级别过滤日志 (4)日志格式 (5)清空日志 10.获取APP的包名和启动名 方式一: 方式二: 11 ...

  5. 『与善仁』Appium基础 — 4、常用ADB命令(一)

    目录 1.启动和关闭ADB服务 2.查看ADB版本 3.指定adb server的网络端口 4.查询已连接设备/模拟器 5.获取安卓系统版本 6.为命令指定目标设备 7.发送文件到手机 8.从手机拉取 ...

  6. APK文件安装模拟器和ADB命令的使用

    1.安装APK文件到模拟器 Android手机使用的执行文件为APK格式,类似于Windows平台的exe文件.在Android模拟器中安装APK文件有多种方法,如果你是开发人员,可以通过Eclips ...

  7. Appium学习——安装appium Server

    安装appium Server 下载地址:百度网盘的下载链接:https://pan.baidu.com/s/1pKMwdfX 下载后, AppiumForWindows.zip 进行解压,点击 ap ...

  8. Appium的安装-MAC平台

    其实Appium的安装方式主要有两种: 1)自己安装配置nodejs的环境,然后通过npm进行appium的安装 2)直接下载官网提供的dmg进行安装,dmg里面已经有nodejs的环境和appium ...

  9. 技术分享 | Appium环境安装与架构介绍

    原文链接 Appium架构 Appium 设计哲学 不需要为了自动化而重新编译或修改被测应用 不应该让移动端自动化测试限定在某种语言或者某个具体的框架 不要为了移动端的自动化测试而重新造轮子 移动端自 ...

随机推荐

  1. 洛谷 题解 P2117 【小Z的矩阵】

    这题这么无聊,亏我还用了读入输出优化... 关键在于,这还是道黄题QWQ 掀桌而起 (╯‵□′)╯︵┻━┻ 显而易见,在i != j的情况下,a[i][j] + a[j][i]和a[j][i] + a ...

  2. NIO-Channel接口分析

    目录 NIO-Channel源码分析 目录 前言 接口 SCTP协议 UDP协议 TCP协议 文件 总结 相关文献 NIO-Channel源码分析 目录 NIO-概览 NIO-Buffer NIO-C ...

  3. Redis KeyExpire的使用

    Set a timeout on key. After the timeout has expired, the key will automatically be deleted. A key wi ...

  4. 【Flutter】348- 写给前端工程师的 Flutter 教程

    点击上方"前端自习课"关注,学习起来~ | 导语 最爱折腾的就是前端工程师了,从 jQuery 折腾到 AngularJs,再折腾到 Vue.React.最爱跨屏的也是前端工程师, ...

  5. 历史上的今天接口api

    ip地址查询 www.ipip5.com 为大家提供历史上的今天接口api,提供txt和json两种返回格式.   1.txt文本格式 http://www.ipip5.com/today/api.p ...

  6. Wonder暂停开发,开始写书

    公告 大家好,我们决定暂时停止开发Wonder,但会继续维护当前的Wonder版本(如继续维护官网.在线编辑器.QQ群等). 我们当前的主要任务是 写书:基于Wonder 1.0版本的开发经验,写一本 ...

  7. Caffe源码-Layer类

    Layer类简介 Layer是caffe中搭建网络的基本单元,caffe代码中包含大量Layer基类派生出来的各种各样的层,各自通过虚函数 Forward() 和 Backward() 实现自己的功能 ...

  8. HttpRunner学习6--使用parameters参数化

    前言 在使用HttpRunner测试过程中,我们可能会遇到这种场景: 账号登录功能,需要输入用户名和密码,设计测试用例后有 N 种组合情况 如果测试组合比较少,比如只有2个,那我们直接在YAML脚本中 ...

  9. UWP 打开系统设置面板

    由于UWP各种权限管理的比较严格,所以在执行某一个特殊的操作之前,最好先申请一下相应的权限,以便告知用户你使用了这个权限,而且可以有效的避免App崩溃. 比如你想让用户手动打开麦克风权限,那么可以执行 ...

  10. 多线程之美2一ThreadLocal源代码分析

    目录结构 1.应用场景及作用 2.结构关系 2.1.三者关系类图 2.2.ThreadLocalMap结构图 2.3. 内存引用关系 2.4.存在内存泄漏原因 3.源码分析 3.1.重要代码片段 3. ...