前言:
本系列教程用于个人经验记录,用于他人借鉴,提供一定参考价值。经常会有一种感觉,工具或技术在某一阶段使用比较熟练,过一段时间就可能会遗忘,俗话说好记性不如烂笔头,以此记录。

appium简介:
      Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。 它使用WebDriver协议驱动iOS,Android和Windows应用程序,appium是跨平台的,可以用在osx,windows以及linux桌面系统上。
工作原理
  在Android端,appium基于WebDriver协议,利用Bootstrap.jar,最后通过调⽤用UiAutomator的命令,实现App的自动化测试。UiAutomator测试框架是Android SDK自带的App UI自动化测试Java库。
  另外由于UiAutomator对H5的支持有限,appium引入了chromedriver以及safaridriver等来实现基于H5的自动化。
 
工作流程:
  ①client端也就是我们的webdriver测试脚本;
  ②中间起的是Appium服务,Appium在服务端起了一个Server(端口:4723)。跟selenium Webdriver测试框架类似,Appium⽀持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调⽤对应的框架响应操作;
  ③appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.Bootstrap监听4724端口并接收appium 的命令,最终通过调⽤用UiAutomator的命令来实现;
  ④Bootstrap将执行的结果返回给appium server;
  ⑤appium server最后将结果返回给 appium client。
 
appium安装主流程主要包括
  1. 安装Java环境搭建;
  1. 安装Android SDK环境搭建;
  1. 安装Node.js;
  1. 安装Appium-sever;
  1. 安装Appium-Cient桌面版
  1. 安装Appium-python-Client
 
1.配置Java环境
1.1 下载安装
下载地址:JDK官网下载,目前JDK版本以不低于1.8为宜,具体安装步骤就不再继续提及,下一步下一步就好啦,相信小伙伴都是OK的。
 
1.2 环境变量配置:
此电脑-->右键点击"属性"-->选择"高级系统设置"-->点击"环境变量"
  • 添加JAVA_HOME:
"变量名"处填上"Java_Home",变量值为JDK的安装路径
JAVA_HOME:C:\Program Files\Java\jdk1.8.0_172
                   


  • path变量设置:
path变量已经存在,直接追加变量值即可
将引号里面的全部复制“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”
注:此处有坑,win10系统需要去掉分号,分行粘贴
(笔者遇到问题:打开cmd,输入java,java -version没有问题,但是javac提示不是内部命令,问题经排查后path的环境变量分行粘贴,问题解决)
 


 
  • 添加系统变量CLASSPATH
  • 新建CLASSPATH,变量值键入 “.;%Java_Home%\bin;%Java_Home%\lib\dt.jar;%Java_Home%\lib\tools.jar”
2.安装AndroidSDK

  2.1 下载地址官方下载地址网盘地址链接:提取码:kt5y

  2.2 AndroidSDK工具下载
    双击SDK下的SDK Manager.exe文件,勾选需要下载的packages,需要下载哪些packages,可参考如下标准:
    1. Android SDK Tools(必须,只需下载一个版本,一般选最新版本):基础工具包,版本号带rc字样的是预览版。
    1. Android SDK Platform-tools(必须,只需下载一个版本,一般选最新版本):从android2.3开始划出此目录,存放公用开发工具,比如adb、sqlite3等,被划分到了这里。
    1. Android SDK Build-tools(必须,可以安装多个版本):Android项目构建工具。
    1. Android xxx(API xx) 目录(可选的各平台开发工具)如,Android 8.1.0(API 27)
    1. SDK Platform(必须):对应平台的开发工具,需要在哪个版本的平台下开发就下载哪个。
    1. Android Support Repository(可选):主要是方便在gradle中使用Android Support Libraries,因为Google并没有把这些库发布到maven center或者jcenter去,而是使用了Google自己的maven仓库。
    1. Google USB Driver(可选) 连接真机时需要用到。
    1. Google Web Driver (可选)测试H5页面时需要用到。
    1. Intel x86 Emulator Accelerator(HAXM installer)(可选):windows平台的Intel x86模拟器加速工具,配合Intel x86 atom/atom_64 System Image使用可加快模拟器的运行速度。
  2.3 环境变量配置
  新增 ANDROID_HOME 系统变量为你的 Android SDK 路径
  ANDROID_HOME :F:\Program Files\android-sdk-windows
  path:%ANDROID_HOME%\platform-tools
  path:%ANDROID_HOME%\tools
  path:%ANDROID_HOME%\build-tools\29.0.3
 
 
终端输入CMD,验证安装是否成功
 
 
 
3.安装node.js
  下载地址官网下载地址   或用上述网盘地址
  直接双击下载安装文件,根据程序的提示,完成nodejs的安装
  验证安装:输入node-v 或者输入npm验证
 
4. Appium sever的安装配置(非必须安装)
  appium-server:主要用来监听我们的移动设备(真机或模拟器),将不同编程语言编写的 appium 测试脚本进行解析,然后,驱动移动设备来运行测试。
  • 安装:直接双击appium-installer.exe文件安装就好,桌面会生成一个appium的图标
  • 配置环境变量:把node_modules的bin目录放到系统的Path路径里
    • path: F:\Program Files\Appium\node_modules\.bin
  • 验证安装是否OK:进入cmd命令行,输入appium-doctor ,出现以下提示,All Checks were successful ,说明环境成功。

 
  注:Appium-Server有一两年没有更新了。Windows版在2015年底止步于的 AppiumForWindows_1_4_16_1.zip,于是,新的工具 Appium-desktop 来了! 它来继续 Appium-Server的使命。当然,Appium-Server当前仍然是可用的。接下来则来说说Appium-desktop
 
5.安装appium-桌面版客户端
  下载地址: 官方下载   或者找上述网盘地址下载,安装过程按照提示下一步下一步即可
  在安装好了之后,用appium-doctor来检查是否配置成功,但新版的appium是没有doctor文件的,所以需要通过npm下载并安装,命令如下:
    

pm install -g appium-doctor
6.安装Appium-python-Client
  • 使得appium和python建立连接关系,使用命令:

    pip install Appium-Python-Client
  • 注意:版本要>=0.29
  • 通过pip list 可以查看版本号

Appium自动化Android环境搭建的更多相关文章

  1. python3+Appium自动化01-Appium环境搭建

    环境依赖 Node.js Appium Appium-desktop Appium-doctor Appium-Python-Client Python JDK Android SDK 安装Node. ...

  2. appium测试android环境搭建(win7)

    第一步:安装appium 1. 下载并安装Node.js(地址:https://nodejs.org/download/) 2. 下载git, 并且配置环境变量:(之前没有配置git, 报错找不到gi ...

  3. Android自动化测试之环境搭建

    Android自动化测试之环境搭建 一.Android-sdk介绍 SDK(Software development kit)软件开发工具包.被软件开发工程师用于为特定的软件包.软件框架.硬件平台. ...

  4. Robot Framework自动化_环境搭建以及第一个用例

    Robot Framework自动化_环境搭建以及第一个脚本 培训老师:肖能尤 2016/06/07 课程目的 一.Robot framework 环境搭建以及第一个脚本 课程内容 1    安装前准 ...

  5. Android 环境搭建

    一.Android 环境搭建 开发工具: Android Studio(开发工具,前提是先装 java JDK) 下载地址:http://www.androiddevtools.cn/   Oracl ...

  6. 20145308刘昊阳 《Java程序设计》实验四 Android环境搭建 实验报告

    20145308刘昊阳 <Java程序设计>实验四 Android环境搭建 实验报告 实验名称 Android环境搭建 实验内容 搭建Android环境 运行Android 修改代码,能输 ...

  7. android环境搭建——工欲善其事,必先利其器 2

    前两天鼓捣android, 搭建环境,不想麻烦就用了  adt-bundle-windows-x86-20140702. rar , 起个模拟器哇塞,太爽了. 出去转一圈唠会回来正好启动成功!有个网友 ...

  8. 第一课 android环境搭建

    android环境搭建需要的工具: 1.JDK 2.eclipse 3.SDK 4.ADT

  9. Android环境搭建的步骤

    Android 环境搭建步骤 这里简单介绍一下学习Android之后如何搭建环境的问题 一.    在搭建环境之前,首先你要先下载Java JDK(根据系统位数选择下载是64位或32位的),Eclip ...

随机推荐

  1. Oracle用户授权

    一.用户授权 1)普通权限 grant ${autoType1, autoType2, autoType3, ...} to ${userName} identified by ${password} ...

  2. Solon详解(一)- 快速入门

    一.Solon 最近号称小而美的的Solon框架,终于得空,搞了一把,发觉Solon确实好用,那Solon到底是什么,又是怎么好用呢? 什么是Solon? Solon参考过Spring boot 和 ...

  3. Dubbo系列之 (五)服务订阅(2)

    辅助链接 Dubbo系列之 (一)SPI扩展 Dubbo系列之 (二)Registry注册中心-注册(1) Dubbo系列之 (三)Registry注册中心-注册(2) Dubbo系列之 (四)服务订 ...

  4. 获取元素top值,屏幕滚动到当前元素

    var top = $(this).offset().top; $('html , body').animate({scrollTop: top-100},10);

  5. LG P4161 [SCOI2009]游戏/LG P6280 [USACO20OPEN]Exercise G

    Description(P4161) windy学会了一种游戏. 对于1到N这N个数字,都有唯一且不同的1到N的数字与之对应. 最开始windy把数字按顺序1,2,3,……,N写一排在纸上. 然后再在 ...

  6. python爬虫之多线程、多进程+代码示例

    python爬虫之多线程.多进程 使用多进程.多线程编写爬虫的代码能有效的提高爬虫爬取目标网站的效率. 一.什么是进程和线程 引用廖雪峰的官方网站关于进程和线程的讲解: 进程:对于操作系统来说,一个任 ...

  7. Fiddler扩展——导出Jmeter脚本

    前言 Fiddler,对于大家而言,应该早已耳熟能详,是个抓包神器,具体的使用,我就不多说了.如果对Fiddler的使用还不太熟练,可以翻看我以前一系列的博文.我罗列出来,方便大家阅读,如下所示: 1 ...

  8. Serializers组件详解

    Serializers组件 使用背景 因为每个语言都有自己的数据类型,不同语言要想数据传输,就必须指定一种各种语言通用的数据类型,如json,xml等等 序列化器允许把像查询集和模型实例这样的复杂数据 ...

  9. SwiftUI - Grid View 的实现方法,逐步剖析助你实现

    简介 在当前正式 SwiftUI 版本而言,很多控件都是缺少的.比如在 UIKit 框架里有 UICollectionView 组件,可以很方便地做 Gird 格子类型的视图.但是在 SwiftUI ...

  10. for...in、for...of和forEach

    let arr = [1,2,3,4,5,6]; arr.name="AAA"; for(var i in arr){ //遍历的实际是对象的属性名臣,每一个元素的索引被视为一个属 ...