脚本宝典收集整理的这篇文章主要介绍了Appium 介绍与环境搭建,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
目前 APP 自动化测试的方案:
自动化测试工具的选择考量:
Appium 是一个开源的自动化测试框架,适用于原生的、混合的、移动端 Web 的应用程序,其使用 WebDriver 协议来驱动 iOS、Android 和 Windows 应用程序。
官方中文文档
testerhome 中文社区
Appium 官网
开源免费
。跨平台
:可以使用同一套 API 针对多个平台(iOS、Android、Windows、Mac)编写测试脚本。支持多种类型的应用
:可以测试原生的、混合的、移动端 Web 项目。跨语言
:可以用任何编程语言编写的 Appium 客户端向 Appium 服务端发送 HTTP 请求。底层多引擎可切换
。生态丰富,社区强大
。Appium 跨平台与跨语言:
Appium 支持 Selenium WebDriver 支持的所有语言,更可以使用 Selenium WebDriver 的 API。Appium 支持任何一种测试框架。如果只使用 Apple 的 UIAutomation,我们只能用 javascript 来编写测试用例,而且只能用 Instruction 来运行测试用例。同样,如果只使用 GOOGLE 的 UIAutomation,我们就只能用 Java 来编写测试用例。Appium 实现了真正的跨平台自动化测试。
Appium 选择了 Client/Server 的设计模式,只要 Client 能够发送 HTTP 请求给 Server,那么 Client 用什么语言来实现都是可以的,这就是 Appium 及 WebDriver 能做到支持多语言的原因。
Appium 引擎列表:
IOS:
Android:
(推荐)
Windows:
Mac:
Appium 使用的是 C/S 架构
:
工作流程:
adb
:Android 的控制工具,用于获取 Android 的各种数据和控制。Appium Client
:即编写的自动化脚本(支持多种语言,如 Python、Java 等),使用 JSONWire 协议与 Appium 服务端进行通信,即给服务端发送请求会话来执行自动化任务。Appium Server
:Appium 的服务端,即一个 Web 接口服务,使用 Node.js 编写的 HTTP 服务器,用于处理 Appium 客户端传送过来的指令。Appium Desktop
:一款适用于 Mac、Windows 和 Linux 的开源应用程序(封装了 Appium Server 和 insPEctor 的综合工具),它以美观而灵活的用户界面提供 Appium 自动化服务器的强大功能。AppCrawler
:自动遍历工具。UIAutomator
:由谷歌推出的一款 UI 测试框架,提供 API 对 Android 系统进行一系列的自动化测试操作,Android 4.2 之后系统自带的 UI 自动化测试工具。UIAutomation
:由苹果公司发布的一个测试框架,主要用于自动化测试 iOS 和 OS X 应用的 UI 交互情况,iOS 系统自带的 UI 自动化测试工具。Bootstrap.jar
:Appium 在 Android 上基于 UIAutomator 实现的测试代理程序,可以调用 UIAutomator 的方法实现一系列 UI 操作。Bootstrap.js
:Appium 在 iOS上基于 UIAutomation 实现的测试代理程序,可以调用 UIAutomation 的方法实现一系列 UI 操作。UiAutomator 对外提供了很多方法,便于 UI 自动化测试调用执行。
API | 说明 |
---|---|
UiDevice | 操作物理按键、拖拽、滑动、通知栏、截屏等,如 pressHome、pressRecentApps、pressKeyCode、waitForidle、Drag、swipe、isScreenOn、openNotification、openQuickSetting 等。 |
UiSelector | 可通过 Text、description、class、package、index 等属性定位。获取到的 UiSelector 可通过 UiObject 封装后进行操作。 |
UiObject | click、drag、swipe、setText、属性获取、是否存在等方法。 |
UiCollection | 是 UiObject 的子类,是控件的集合,如计算器是数字按键。 |
UiScrollable | 是 UiObject 的子类,滚动控件。 |
package io.appium.android.bootstrap;
import io.appium.android.bootstrap.exceptions.SocketServerException;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
/**
* The Bootstrap class runs the socket server. uiautomator开发的脚本,可以直接在Pc端启动
*/
public class Bootstrap extends UiAutomatorTestCase {
public void testRunServer() {
SocketServer server;
try {
// 启动socket服务器,监听4724端口。
server = new SocketServer(4724);
server.listenForever();
} catch (final SocketServerException e) {
LOGger.error(e.getError());
System.exit(1);
}
}
}
从源代码中能够看到:
Appium:
Appium 测试进程与目标应用进程是分开的
,所以 Appium 不能直接访问目标应用的各种 element 属性进行 Copy&Paste,而只能模拟触发相应的事件对目标应用进行操作。Robotium:
Robotium 测试进程与目标应用是在同一个进程中作为两个不同的线程运行的
。也就是说 Robotium 测试线程是有办法直接访问目标应用的各种 element 属性的,可以访问浮层、Intent 之类的,所以它根本不需要触发任何事件,直接就可以在内部修改相应的数据。以文本输入为例:
总结:
Appium 更能模拟用户的行为操作;而 Robotium 偏向测试金字塔更底层点的 Unit Test(所以 Robotium 除了能支持测试目标应用的 Activity 外,还能测试 Content Provider 等)。
Appium 是基于 WebDriver 协议添加对移动设备自动化 API 扩展而成的,所以具有和 WebDriver 一样的特性,很多语法也是保持一致的,从而减少了学习成本
。
下载 node.js,根据操作系统下载对应的安装包。
安装完成后,会自动将路径加入到环境变量中,在命令行窗口中运行 node -v,如果出现版本号,表示安装正常。
下载地址
安装并配置好环境变量后,新打开一个命令行窗口,在其中输入 java -version,若出现 jdk 的版本号,表示配置正确。
Android SDK 是 Google 提供的 Android 开发工具包,可以通过引入工具包来调用 Android 的 API。
下载地址
考虑到有可能会打不开这个链接,提供一个中文社区的 SDK 下载链接
双击打开 SDK Manage.exe,选择需要安装的 API 版本和对应的工具包进行安装,这些在运行模拟器和真机测试的时候会使用到。
安装包很多,哪些是必须的呢?根据官方文档的描述:
这些工具包都安装完成后,sdk 的目录如下图所示:
问题:Android SDK Manager 国内无法更新的解决方案
在 Path 中配置:
配置好环境变量后,在命令行窗口中运行 adb -version,出现以下信息则表示配置正确:
Python 下载地址
安装好后将 Python 安装目录配置到环境变量 Path 中,然后在 cmd 中运行 Python 命令:
下载地址
点击 start server 后出现如下图,则 Appium 安装成功。
这里选择 Python,下载链接。
安装完成后,进入 Python 命令行环境,输入 From appium import webdriver,出现如下图则说明 Appium-Python-Client 安装成功。
以上是脚本宝典为你收集整理的Appium 介绍与环境搭建全部内容,希望文章能够帮你解决Appium 介绍与环境搭建所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。