IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 12.appium的介绍与安装 -> 正文阅读

[开发测试]12.appium的介绍与安装

appium 是一款移动自动化测试工具,目前在移动 UI 自动化领域占有重要地位,不仅支持 Android 和 iOS 两大平台,还支持多种编程,因而得到广泛的应用。

1.appium介绍

(1)移动应用类型

移动应用类型主要分为以下几类:

  • Native App:原生应用。

Native App(原生应用)是为特定移动设备或平台开发的应用程序(如 Android、iOS 或 Windows)。 例如,iPhone 应用程序是用 Swift 写的,Android 应用程序是用 Java 写的。原生应用的可靠性极高,因为它们使用的是底层系统架构和设备的内置功能。

  • Mobile Web App:移动 Web 应用。

Mobile Web App(移动应用)是通过移动浏览器访问的应用程序,可以通过内置浏览器轻松访问。例如,iOS 上的 Safari,Android 上的 Chrome。它们主要使用 HTML5、JavaScript 等技术开发,可以提供定制功能。Mobile Web App 基本来自服务器,并且不能在设备的任何地方离线存储。

  • Hybrid App:混合应用。
    Hybrid App(混合应用)主要使用网络技术(HTML5、CSS 和 JavaScript)开发,但嵌入在 App 中运行,从而感觉它像是原生应用程序。PhoneGap 和 Sencha Touch 等工具可以为用户构建一个混合应用。

appium 支持以上三种类型应用(Native App、Mobile Web App 和 Hybrid App)的自动化测试。

(2)appium的架构

appium 基于客户端/服务器架构(C/S)。服务器执行给定顺序的动作:

  • 从客户端接收连接并启动会话。
  • 侦听发出的命令。
  • 执行这些命令。
  • 返回命令执行状态。

appium 工作方式:
在这里插入图片描述

a. XCUITest

XCUITest 是苹果公司于 iOS 9.3 版本推出的自动化框架。appium 1.6.0 使用苹果公司的 XCUITest 框架,它支持 iOS 10/Xcode 8。

appium 内部使用 Facebook 公司的 WebDriverAgent 项目支持 XCUITest。
WebDriverAgent 项目是一个为 iOS 实现的 WebDriver 服务,用于对连接的设备或模拟器进行远程控制。通过它可以启动应用程序、执行命令(如点击、滚动),或终止应用程序。

对于较旧的 iOS 版本(9.3 以下版本),appium 使用 Apple 的 UIAutomation库,典型用法是在所需功能中传递内容:automationName:XCUITest

iOS 平台工作方式:
在这里插入图片描述
b. UIAutomator2

UIAutomator2 是基于 Android 的自动化框架,允许用户构建和运行 UI 测试。appium 使用 UIAutomator2 在真实设备或模拟器上执行命令。

UIAutomator2 是Google 公司针对 App 设计的 UI 自动化测试框架。典型的用法是在所需的功能中传递以下内容:automationName:uiautomator2

appium 使用 appium-android-bootstrap 模块与 UIAutomator2 进行交互。它允许将命令发送到设备,使用 Android 的 UIAutomator2 测试框架在真实设备上执行命令。

当 appium 客户端请求创建新的 AndroidDriver 会话时,appium 客户端会将所需的功能传递给 appium 节点服务器。首先,UIAutomator2 驱动程序模块创建会话。然后,在连接的Android 设备上安装 UIAutomator2 服务器 apk。接着启动 Netty 服务器。在 Netty 服务启动后,UIAutomator2 服务器在设备上侦听请求并做出响应。

Android 平台工作方式:
在这里插入图片描述

(3)appium的工作过程

appium 的工作过程:
在这里插入图片描述
a. appium Client
appium Client 支持多种语言/框架,它针对主流的编程语言分别开发了相应的 appium测试库,选择自己熟悉的语言或框架来编写 appium 测试脚本。
appium Client 支持语言框架如下:

语言/框架Github 项目地址
rubyhttps://github.com/appium/ruby_lib
Pythonhttps://github.com/appium/python-client
Javahttps://github.com/appium/java-client
JavaScript(Node.js)https://github.com/admc/wd
Objective-Chttps://github.com/appium/selenium-objective-c
PHPhttps://github.com/appium/php-client
C#(.NET)https://github.com/appium/appium-dotnet-driver
Robot Frameworkhttps://github.com/jollychang/robotframework-appiumlibrary

b. appium Server
appium 需要在 PC 上启动一个 Server,监听客户端自动化测试的运行,并将请求发送到对应的移动设备或模拟器中运行。
appium Server 支持 macOS 和 Windows 两大平台。appium Server 项目已经停止更新,由 appium Desktop 替代。

c. 移动设备
移动设备用于运行 appium 自动化测试的环境,既可以是一台连接到 PC 的手机,也可以是在 PC 上运行的 iOS 模拟器或 Android 模拟器。

2. appium 环境搭建

以安装环境为例:

  • 操作系统:Windows 10。
  • 被测平台:Android 模拟器。
  • appium 服务器:appium Desktop。
  • appium 客户端:python-client。

(1)Android Studio

我们既可以通过 Android 手机连接 PC 来运行 appium 自动化测试,也可以通过 Android SDK 创建 Android 模拟器来运行 appium 自动化测试。Android SDK 提供了一些必要的工具,如 adb 可以用于连接 PC 与 Android 手 机 / 模拟器,UIAutomatorViewer 可以帮助定位 Android 元素。

Android SDK(Software Development Kit,软件开发工具包)提供了 Android API 库和开发工具构建,可用来测试和调试应用程序。简单讲,Android SDK 可以看作用于开发和运行 Android 应用的一个软件。需要通过 Android Studio 安装。

Android Studio 是 Android 应用的集成开发工具,用于开发与调试 Android 应用。在安装 Android 开发环境之前,需要先安装 Java 开发环境。(在第10篇文章已介绍)

Android Studio 下载地址:https://developer.android.google.cn/studio。

Windows 64 bit 的 exe 文件,双击点 Next,勾选 Android Virtual Device 选项(已默认勾选),接着选择安装路径(D 盘)。
首次启动时,弹出以下弹窗,提示没有检查到 Android SDK,这个我们需要接下来单独安装配置,此处点击 Cancel。
在这里插入图片描述
Install Type 选择 Custom(自定义),Select Default JDK Location 选择 Java 安装地址下的 jre 目录。
SDK Component Setup 页面,Android SDK 和 Android SDK Platform 选项默认已勾选上,Android SDK Location 设置 Android SDK 的安装路径。下面 Next…Next…最后点击 Finish,安装完成。
在这里插入图片描述
创建 Android 项目的过程,可以参考 Android 官方文档 https://developer.android.google.cn/docs 的使用入门。
新建项目,定义项目名和设置项目目录地址即可。

(2)Android 模拟器

在创建了 Android 项目之后,选择 AVD Manager 图标,新建模拟设备。

Category 选择 Phone,选择一款设备,例如 Pixel,点击 Next。下载系统镜像,此处选择了 Nougat Android 7.0 进行下载,完成后点击 Next。在新页面设置模拟器,页面选项如下:

  • AVD Name:模拟器的名字。
  • Pixel:选择手机型号,屏幕尺寸为 5.0 英寸,分辨率为 1080*1920(单位:像素)。
  • Nougat:对应 Android 版本 7.0。
  • Startup orientation:选择模拟器横屏或竖屏显示。
  • Graphics:选择模拟器中的渲染图形。
  • Device Frame: 是否显示手机外形,建议不勾选。

设置完成后,点击 Finish 完成 Android 模拟器的创建。
在这里插入图片描述
在这里插入图片描述
接下来配置 Android 环境变量,创建系统变量 ANDROID_HOME,变量值为 SDK 的安装路径:D:\Application\Android\SDK。然后编辑系统变量 Path,添加路径:;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;

命令行窗口输入命令:adb,运行如下:
在这里插入图片描述
Android Debug Bridge(ADB)是一种命令行工具,用于在 PC 与 Android 模拟器(或连接的 Android 设备)之间进行通信。该工具集成在 Android SDK 中,默认在 Android SDK 的 platform-tools/目录下。官方网站:http://adbshell.com/。

(3)appium Desktop

appium 为 C/S 架构,Server(服务器)主要用来监听我们的移动设备,接收 Client(客户端)发来的 JSON 请求,解析后驱动移动设备运行测试用例。2015 年停止更新后,由 appium Desktop 替代。

GitHub 地址:https://github.com/appium/appium-desktop,根据平台下载相应版本,这里直接选择 1.21.0 版本的,下载 exe 文件后双击安装(不能选安装路径),安装成功启动后界面如下,默认显示监控的 Host 和 Port,默认为 0.0.0.0:4723。单击“Start Server v1.10.0”按钮,启动 Server,监听本机的 4723 端口。
在这里插入图片描述

(4)Python Client

appium Client支持多种编程语言,本书选择 Python-Client,pip 安装 appium 测试库:pip install Appium-Python-Client

至此,appium 自动化测试环境就安装好了~

(5)第一个 appium 测试

首先,启动 Android 模拟器:AVD Manager 下点击模拟器 Actions 选项的启动图标。模拟器启动开机成功。

命令行窗口输入命令:adb devices 。检查是否能监听到 Android 模拟器。
在这里插入图片描述
接下来,启动 appium Desktop,如图所示:
在这里插入图片描述
之后,通过 Python 编写 appium 自动化测试脚本。

from appium import webdriver

# 定义运行环境
desired_caps = {
    'deviceName': 'Android Emulator',
    'automationName': 'appium',
    'platformName': 'Android',
    'platformVersion': '7.0',
    'appPackage': 'com.android.calculator2',  # 要启动的 app 包名。
    'appActivity': '.Calculator', # 要启动的界面。
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

driver.find_element_by_id("com.android.calculator2:id/digit_1").click()
driver.find_element_by_id("com.android.calculator2:id/op_add").click()
driver.find_element_by_id("com.android.calculator2:id/digit_2").click()
driver.find_element_by_id("com.android.calculator2:id/eq").click()

driver.quit()

代码运行后,启动模拟器自带计算机 app,完成计算 1+2=3。

运行好的模拟器,或者USB连接的设备,打开被测的app。(adb devices:查看Android设备是否连接到电脑。)
命令行窗口输入adb shell dumpsys window | findstr mCurrent命令查看被测的包名和activity:

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-03 11:30:55  更:2021-08-03 11:32:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:34:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码