乐趣区

关于appium:Appium的安装及简单的使用介绍

本文首发于:行者 AI

Appium 是一个自动化开源工具,反对 iOS、Android 和 Windows 桌面平台上的原生、挪动 Web 和混合利用的自动化。Appium 是跨平台的:它容许你用同样的 API 对多平台(iOS、Android、Windows)写测试。做到在 iOS、Android 和 Windows 测试套件之间复用代码。

1. 下载安装及环境配置

1.1 装置 python 装置 Appium-Python-Client 库

能够应用 pip 命令进行装置 pip install Appium-Python-Client, 装置实现后在 python 中运行此段代码from appium import webdriver 校验是否装置胜利。

1.2 装置 Android SDK

(1)在官网上下载 Android Studio,其中蕴含了 Android SDK,网页下拉到底部的 Command line tools only,下载其中的 windows 版本,下载实现后解压,CMD 命令行中 cd 到 bin 目录下,输出 sdkmanager "platfrom-tools" "platforms;android-28" "build-tools;28.0.3" 执行装置组件,过程中弹出 Accept?(y/N),输出 y 回车即可。

(2)组件装置实现之后,执行以下步骤将 Android SDK 退出到环境变量中。

  • 在零碎环境变量中创立 ANDROID_HOME 变量,值为 SDK 装置的根目录门路,例如:E:\android_sdk
  • 将 %ANDROID_HOME%\platform-tools 退出到环境变量 Path 中
  • 验证设置胜利否:CMD 命令行下输出 adb version 回车,能够看到以后 adb 的版本信息,阐明 Android SDK 曾经装置并配置胜利

1.3 装置 JDK

(1)在 oracle 官网下载安装 JDK,装置 JDK8 及以上的版本。

(2)装置实现后,设置 JDK 的环境变量。

  • 在零碎环境变量中创立 JAVA_HOME 变量,值为 JDK 装置的跟目录门路,例如:C:\Program Files\Java\jdk1.8.0_231
  • 在零碎环境变量中创立 CLASSPATH 变量,值为 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
  • 在 Path 变量中增加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
  • 验证 JDK 环境配置是否胜利,CMD 命令行下输出 java -version 回车,能够看到以后 JDK 的版本信息,阐明 JDK 曾经装置并配置胜利

1.4 装置 appium server

(1)在 appium 官网上下载 Appium Desktop 进行装置,找到与本人应用的零碎对应的版本,本次所有操作都是在 windows 上进行的。

(2)装置实现后,启动 appium,host 和 port 默认即可,在 Edit Configuration 中将 Android SDK 和 Java JDK 加到环境变量中。

(3)设置好后保留并重启 Appium,而后启动服务,呈现以下画面,阐明你的 appium server 曾经失常启动了,能够开始真机测试了。

2. 真机测试

2.1 真机设置

USB 连贯手机,关上手机开发者模式,关上开发者选项中的 USB 调试、USB 装置,小米手机还须要关上 USB 调试(平安设置),而后在 CMD 命令行输出 adb devices 回车,如果呈现了手机的设施号,阐明连贯胜利。

2.2 设置 Appium

(1)点击 Start Inspector Session 对进行 Desired Capabilities 的配置,在 JSON Representation 中输出以下 json 数据点击保留进行疾速的配置,也能够在右边一项一项的增加。platformName、platformVersion、deviceName、appPackage、appActivity 这五个参数是必填项

{
"platformName": "Android", # 申明是 ios 还是 Android 零碎
"platformVersion": "8.1.0", # Android 内核版本号
"deviceName": "MI_5X", # 连贯的设施名称
"appPackage": "com.tencent.qqmusic", # apk 的包名
"appActivity": ".activity.AppStarterActivity", # apk 的 launcherActivity
"resetKeyboard": True,
"noReset": True # 在开始会话之前不要重置应用程序状态
}

以上数据通过 adb 命令获取,获取 appPackage 与 appActivity 时须要将 app 启动,获取命令如下:

(2)配置好 Desired Capabilities 后,点击 Start Session,app 启动运行之后能够在界面上点击抉择查看以后页面所有元素控件的详细信息,右侧 Selected Element 下方有三个按钮。

  • Tap:执行选中元素的点击操作
  • Send Keys:为文本框等 input 对象传值
  • Clear:革除输入框中的文本

2.3 编写自动化脚本

启动 session 胜利运行 app 之后,点击你想要操作的元素,在左边能够看到这个元素的相干信息,这里咱们能够通过 id 对该元素进行操作,在 python 中应用 find_element_by_id()办法定位该元素,还有很多办法能够定位元素。

如:find_element_by_xpath()、driver.find_element_by_name()、driver.find_element_by_partial_link_text()等,应用 click()办法对元素进行点击操作,应用 swip()办法对屏幕进行滑动操作。

上面是 python 实现操作的源码展现,运行之后能够看到手机主动实现了启动 app、点击、滑动和退出的操作后,阐明 python 脚本运行胜利。须要留神的是在实现上一步操作之后因为手机性能的差别,app 的响应速度不同,倡议期待几秒后再进行下一步操作。

import time
from appium import webdriver


caps = {
"platformName": "Android", # 申明是 ios 还是 Android 零碎
"platformVersion": "8.1.0", # Android 内核版本号
"deviceName": "MI_5X", # 连贯的设施名称
"appPackage": "com.tencent.qqmusic", # apk 的包名
"appActivity": ".activity.AppStarterActivity", # apk 的 launcherActivity
"resetKeyboard": True,
"noReset": True # 在开始会话之前不要重置应用程序状态
}
driver = webdriver.Remote("http://localhost:4723/wd/hub", caps) # 启动 app
time.sleep(15)
el1 = driver.find_element_by_id("com.tencent.qqmusic:id/clt") # 定位 < 分类歌单 > 元素
el1.click() # 点击
time.sleep(5)
driver.swipe(500, 1550, 500, 800) # 从 (500, 1500) 滑动到(500, 800)
driver.quit() # 退出

3. 总结

Appium 是目前比拟成熟的自动化测试工具,应用了零碎自带的自动化框架,不须要把 Appium 特定的或者第三方的代码编译进你的利用,这样就能够应用正式公布的包进行测试,不必放心测试包与正式包存在区别。同时能够联合 python 已有的测试框架,例如:pytest、unittest,编写测试用例,执行自动化测试。Appium 还有很多很乏味的性能没有介绍到,欢送有疑难或者倡议的敌人与咱们一起探讨。

退出移动版