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

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. 2020-06-14:Redis怎么实现分布式锁?

    福哥答案2020-06-14: 1.SETNX+EXPIRE.非原子性.2.SET key value [EX seconds] [PX milliseconds] [NX|XX]EX second ...

  2. C#LeetCode刷题之#622-设计循环队列​​​​​​​(Design Circular Queue)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4126 访问. 设计你的循环队列实现. 循环队列是一种线性数据结构 ...

  3. 338. Counting Bits题目详解

    题目详情 Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate ...

  4. Dotnet Core Public API的安全实践

    公开API的安全,其实更重要.   一.API的安全 作为一个Dotnet Core的老司机,写API时,能兼顾到API的安全,这是一种优雅.   通常,我们会用认证来保证API的安全,无敌的Auth ...

  5. iptables 表与链的对应关系

    1)filter表——三个链:INPUT.FORWARD.OUTPUT作用:过滤数据包 内核模块:iptables_filter. 2)Nat表——三个链:PREROUTING.POSTROUTING ...

  6. openvswitch 流表测试 ovs-appctl

    [root@ostack170 ~]# ovs-appctl ofproto/trace br-mirror in_port=,dl_vlan=,dl_src=:ea:cb:5d:e4:ee,dl_d ...

  7. Overcoming Forgetting in Federated Learning on Non-IID Data

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文. NeurIPS 2019 Workshop on Federated Learning ...

  8. 区块链入门到实战(28)之Solidity – 介绍

    Solidity语言是一种面向合约的高级编程语言,用于在以太坊区块链网络上实现智能合约.Solidity语言深受c++.Python和JavaScript的影响,针对以太坊(Ethereum)虚拟机( ...

  9. 精讲响应式WebClient第6篇-请求失败自动重试机制,强烈建议你看一看

    本文是精讲响应式WebClient第6篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法 精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方 ...

  10. 一篇文章高效定位iframe

    今天跟大家分享的是如何高效的定位iframe.我们来看一段最早的代码: # coding: utf-8from selenium import webdriverfrom time import sl ...