Appium 介绍及环境安装
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 介绍及环境安装的更多相关文章
- Appium 介绍与环境搭建
目录 Appium 介绍 APP 自动化测试介绍 什么是 Appium ? Appium 优势 Appium 架构 Appium 生态 Appium 组件 UiAutomator API Bootst ...
- RabbitMQ简单介绍+Windows环境安装
文章目录 1.RabbitMQ简介2.RabbitMQ与其他MQ有什么不同3.RabbitMQ环境安装3.1 安装erlang3.2 安装rabbitmq-server4. RabbitMQ管理平台介 ...
- Appium简介以及环境安装
官网地址 Appium 是一个自动化测试开源工具,支持多平台上的原生应用,web应用和混合应用,是由appium server和appium Client两部分组成通过json wire protoc ...
- Redis介绍和环境安装
-------------------Redis环境安装------------------- 1.安装 1.卸载软件 sudo apt-get remove redis-se ...
- selenium介绍及环境安装
selenium简介: seelenium是web应用程序自动化工具,通过自动操作浏览器,进行点击.输入.回车.返回等来模拟用户的真实行为.如何理解和看待selenium项目,selenium官方 ...
- Appium 自动化测试(1)--环境安装:安装Appium
一.安装nodejs Node.js安装包及源码下载地址为:https://nodejs.org/en/download/. 安装过程参考:http://www.runoob.com/nodejs/n ...
- Appium——appium之mac环境安装
一.安装brew:Homebrew是一款Mac OS平台下的软件包管理工具执行:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubuserco ...
- GeoTools介绍、环境安装、读取shp文件并显示
GeoTools是一个开放源代码(LGPL)Java代码库,它提供了符合标准的方法来处理地理空间数据,例如实现地理信息系统(GIS).GeoTools库实现了开放地理空间联盟(OGC)规范. Geot ...
- appium+android测试环境安装
1. jdk配置 一.背景 JDK已经更新到12了,但是由于很多工具仍然未及时更新,故推荐最稳定的JDK版本1.8.x: JDK需要配置通常情况下,JDK配置分为三项: JAVA_HOME:某些软件仍 ...
随机推荐
- LeetCode初级算法之字符串:387 字符串中的第一个唯一字符
字符串中的第一个唯一字符 题目地址:https://leetcode-cn.com/problems/first-unique-character-in-a-string/ 给定一个字符串,找到它的第 ...
- 实现一个类型判断函数,需要鉴别出基本类型、function、null、NaN、数组、对象?
只需要鉴别这些类型那么使用typeof即可,要鉴别null先判断双等判断是否为null,之后使用typeof判断,如果是obejct的话,再用Array.isArray判断是否为数组,如果是数字再使用 ...
- react中对内容点击复制
在react中一个标签内,点击这个标签直接复制标签内的内容 如图,我的需求是点击id这个标签实现对id的一键复制,所以请看copyHander函数 先创建一个Range对象,Range 对象表示文档的 ...
- 标注工具labelimg和labelme
矩形标注工具:labelimg 多边形标准工具:labelme 前者官网发布了可执行文件,后者只有python源码,如果需要编译windows exe,可以这样: pip install labelm ...
- SpringBoot魔法堂:应用热部署实践与原理浅析
前言 后端开发的同学想必每天都在重复经历着修改代码.执行代码编译,等待--重启Tomcat服务,等待--最后测试发现还是有bug,然后上述流程再来一遍(我听不见)
- Java IO流 FileOutputStream、FileInputStream的用法
FileOutputStream.FileInputStream的使用 FileOutputStream是OutputStream的继承类,它的主要功能就是向磁盘上写文件.FileOutputStre ...
- centos7安装zabbix server5.0
安装zabbix源 1.rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarc ...
- 个人微信公众号搭建Python实现 -个人公众号搭建-处理消息和事件(14.3.4)
@ 目录 1.消息处理 2.事件处理 3.返回处理 关于作者 1.消息处理 现在只处理text文本消息 没有关键字的就交给qingyunke机器人去应付,这是一个免费的对话api 从配置文件中读取关键 ...
- go-slice实现的使用和基本原理
目录 摘要 Slice数据结构 使用make创建Slice 使用数组创建Slice Slice 扩容 Slice Copy 特殊切片 总结 参考 你的鼓励也是我创作的动力 Posted by 微博@Y ...
- 5分钟看懂系列:Python 线程池原理及实现
概述 传统多线程方案会使用"即时创建, 即时销毁"的策略.尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数极其频繁,那么服务器 ...