Appium是一个可用于测试iOS、 Android操作系统和Windows桌面平台原生应用,移动网页应用和混合应用的自动化测试框架。

  • 原生应用(Native App):用 android、iOS或者Windows SDK编写的应用

  • 移动网页应用(Web App):通过手机浏览器访问的网页应用,比如iOS中 safari应用,Android上的Chrome应用或者内置浏览器应用,不会占用手机的存储空间。

  • 混合应用(Hybrid App):同时具备Native App和Web App的特性,一种 webview应用,将Javascript,HTML和CSS执行在embedded webview中,外层用Native App wrapper包起來。

Appium 跨语言支持:Java、 Python、 Ruby、JavaScript (Node.js)、PHP、C# (.NET)、RobotFramework等,Appium是跨平台的,可以用在OSX,Windows以及Linux桌面系统上运行。

Appium架构

Appium引擎列表

  • Android 4.3+

    • UIAutomator
    • UIAutomator2[推荐]
  • iOS
    • UIAutomation (iOS ≤ 9.3)
    • XCUITest[推荐] (iOS ≥ 9.3)
  • Windows:
    • WinAppDriver

Appium的设计理念

Client/Server设计模式

Appium采用 C/S架构,Appium与客户端建立连接并监听命令,然后在移动设备上执行这些命令,命令执行结果通过 HTTP 响应的方式返回。客户端通过 WebDriver json wire协议与服务端通讯。由于Appium的这种特性,我们可以将Appium server放在与测试机不同的机器上。Appium Server是使用 Node.js 编写的HTTP服务。

session 会话

Appium自动化执行时会首先拉起一个session会话,客户端和服务器之间初始化一个session,通过发送一个POST /session建立连接,客户端的post请求中携带一个称为 'desired capabilities‘ 的JSON对象,定义设备平台(iOS或Android)、版本、server地址等请求字段,后面的文章将详细介绍。服务器接收到请求后会建立一个session并回应一个session ID,建立好连接后就可以发送命令了。

Appium Clients

Appium支持多语言,包括Java, Ruby, Python, PHP, JavaScript, 和 C#,这些客户端库支持WebDriver 协议扩展。

语言/框架 Github仓库地址
Ruby https://github.com/appium/ruby_lib, https://github.com/appium/ruby_lib_core
Python https://github.com/appium/python-client
Java https://github.com/appium/java-client
JavaScript (Node.js) https://github.com/admc/wd
JavaScript (Node.js) https://github.com/webdriverio/webdriverio
JavaScript (Browser) https://github.com/projectxyzio/web2driver
Objective C https://github.com/appium/selenium-objective-c
PHP https://github.com/appium/php-client
C# (.NET) https://github.com/appium/appium-dotnet-driver
RobotFramework https://github.com/serhatbolsu/robotframework-appiumlibrary

Appium生态工具

  • adb:android的控制工具,用于获取 android的各种数据和控制

  • Appium Desktop:内嵌了 appium server和inspector的综合工具

  • Appium Server:appium的核心工具,命令行工具

  • Appium client:各种语言的客户端封装库,用于连接 appium server

  • AppCrawler:自动遍历工具

appium使用 appium-xcuitest-driver来测试iPhone设备,其中需要安装 facebook开发的WDA(webdriver agent)来驱动iOS测试,下面介绍Android APP测试环境安装。

Appium环境安装

  • Java1.8版本
  • Android sdk
  • Node.js(>=10 版本),npm(>=6 版本)
  • Python3
  • Appium-desktop
  • Appium python client

1、安装Node.js

  • Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境
  • Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
  • 是运行在服务端的 JavaScript

https://nodejs.org/en/download/

命令行窗口中运行node -v 查看是否安装成功

2、安装jdk

jdk下载下载地址:

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

按照默认路径安装

配置环境变量

“我的电脑”右键菜单--->属性--->高级--->环境变量--->系统变量-->新建

  • 变量名:JAVA_HOME 

    变量值:C:\Program Files (x86)\Java\jdk1.8.0_144
  • 变量名:CALSS_PATH

    变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

找到path变量名—>“编辑”添加:

  • 变量名:PATH

    变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

查看是否安装成功:java -version

3. 安装Android SDK

Android SDK是Google提供的Android开发工具包,在开发Android应用的时候会用到,需要通过引入工具包来调用Android的API

下载地址:https://developer.android.com/

中文社区的SDK下载地址:http://tools.android-studio.org/index.php/sdk

双击打开SDK Manage.exe,安装API版本和对应的工具包,这些在运行模拟器和真机测试的时候会使用到。

配置环境变量

新建环境变量ANDROID_HOME,变量值为sdk的路径:E:\Android\android-sdk

“我的电脑”右键菜单--->属性--->高级--->环境变量--->系统变量-->新建

  • 变量名:ANDROID_HOME 

    变量值:D:\android\android-sdk-windows

找到环境变量path—>“编辑”添加:

  • 变量名:PATH

    • 变量值:;% ANDROID_HOME%\platform-tools;

    • 变量值:% ANDROID_HOME%\build-tools;

    • 变量值:% ANDROID_HOME%\tools;

tools目录下运行android命令,platform-tools目录运行adb命令

检验Android SDK是否安装成功:adb version

4. 安装Appium

下载地址:https://bitbucket.org/appium/appium.app/downloads/?tab=downloads

  • 安装完成后添加到环境变量
  • 把安装的appium文件夹的Appium\node_modules.bin加到系统环境变量path中

运行appium-doctor,检测appium运行环境的工具

5. 安装appium-desktop

下载地址:https://github.com/appium/appium-desktop/releases/tag/v1.15.1

6. 下载Appium-Python-Client

下载链接:https://pypi.org/project/Appium-Python-Client/

运行python setup.py install安装

或者运行 pip install Appium-Python-Client 安装。

--THE END--

文章标题:Appium 介绍及环境安装

本文作者:hiyo

本文链接:https://www.cnblogs.com/hiyong/p/14163337.html

欢迎关注公众号:「测试开发小记」及时接收最新技术文章!

Appium 介绍及环境安装的更多相关文章

  1. Appium 介绍与环境搭建

    目录 Appium 介绍 APP 自动化测试介绍 什么是 Appium ? Appium 优势 Appium 架构 Appium 生态 Appium 组件 UiAutomator API Bootst ...

  2. RabbitMQ简单介绍+Windows环境安装

    文章目录 1.RabbitMQ简介2.RabbitMQ与其他MQ有什么不同3.RabbitMQ环境安装3.1 安装erlang3.2 安装rabbitmq-server4. RabbitMQ管理平台介 ...

  3. Appium简介以及环境安装

    官网地址 Appium 是一个自动化测试开源工具,支持多平台上的原生应用,web应用和混合应用,是由appium server和appium Client两部分组成通过json wire protoc ...

  4. Redis介绍和环境安装

    -------------------Redis环境安装------------------- 1.安装     1.卸载软件         sudo apt-get remove redis-se ...

  5. selenium介绍及环境安装

      selenium简介: seelenium是web应用程序自动化工具,通过自动操作浏览器,进行点击.输入.回车.返回等来模拟用户的真实行为.如何理解和看待selenium项目,selenium官方 ...

  6. Appium 自动化测试(1)--环境安装:安装Appium

    一.安装nodejs Node.js安装包及源码下载地址为:https://nodejs.org/en/download/. 安装过程参考:http://www.runoob.com/nodejs/n ...

  7. Appium——appium之mac环境安装

    一.安装brew:Homebrew是一款Mac OS平台下的软件包管理工具执行:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubuserco ...

  8. GeoTools介绍、环境安装、读取shp文件并显示

    GeoTools是一个开放源代码(LGPL)Java代码库,它提供了符合标准的方法来处理地理空间数据,例如实现地理信息系统(GIS).GeoTools库实现了开放地理空间联盟(OGC)规范. Geot ...

  9. appium+android测试环境安装

    1. jdk配置 一.背景 JDK已经更新到12了,但是由于很多工具仍然未及时更新,故推荐最稳定的JDK版本1.8.x: JDK需要配置通常情况下,JDK配置分为三项: JAVA_HOME:某些软件仍 ...

随机推荐

  1. anaconda 配置虚拟环境

    工作时有时候会遇到不同版本的问题,比如深度学习tensorflow 1.14版本 和 2.0版本,或者cpu版本和gpu版本,那么这个时候建立虚拟环境就很方便了 anaconda命令行下 1) act ...

  2. linux服务器性能分析只需1分钟

    背景: 现在的互联网公司,大多数时候应用服务都是部署在linux服务器上,那么当你的服务运行过程中出现了一些响应慢,资源瓶颈等疑似性能问题时,给你60秒,如何快速完成初步检测? 肯定有人会说用工具,公 ...

  3. Java8的Lambda表达式,你会不?

    目录 理解Lambda 基础语法 函数式接口 常用的函数式接口 消费型接口 供给型接口 断言型接口 函数型接口 方法引用 数组引用 构造器引用 总结 参考阅读 理解Lambda Lambda表达式可以 ...

  4. mysql 8.0 MGR组复制配置

    一.配置组复制的步骤 1.初始化数据目录 2.配置主服务器(primary) 3.配置辅助服务器(secondaries) 4.启动mysql实例 5.安装组复制插件(primary and seco ...

  5. AWT04-AWT常用组件

    1.基本组件 方法名 说明 Button 按钮 Canvas 用于绘画的画布 Checkbox 复选框组件 CheckboxGroup 用于将多个Checkbox合成一组,一组Checkbox只有一个 ...

  6. 解决Linux所有命令不能使用的问题

    解决Linux所有命令不能使用的问题 出现这个问题说明你的 /etc/profile 配置出现了问题,一般是因为path配置出现了问题.排除添加内容中的错误,然后重启一个新窗口执行执行 source ...

  7. docker 安装es跟kibana

    首先docker 查询es docker search  elasticsearch 在docker pull elasticsearch:7.9.3 docker在查询 kibana docker ...

  8. Qt QChart 创建图表

    Qt QChart 创建图表 @ 目录 Qt QChart 创建图表 效果 流程 代码 1. 饼图 2. 柱图 3. 折/曲线图 4. 区域图 效果 流程 graph LR q(value 数据) q ...

  9. 第十章 Seata--分布式事务

    承接上篇 ,终于我们迎来了最后一章 第九章 Nacos Config–服务配置,第十章 Seata–分布式事务,感谢你能学习到这 !废话不多说,撸码 10.1 分布式事务基础 10.1.1 事务 事务 ...

  10. 报错 ncclCommInitRank failed.

    环境 4 GeForce GTX 1080 GPUS docker image nnabla/nnabla-ext-cuda-multi-gpu:py36-cuda102-mpi3.1.6-v1.14 ...