Appium Desktop 是一款用于 Mac、Windows 和 Linux 的开源利用,它提供了 Appium Server,Appium Inspector 以及相干的工具的组合。
Appium Desktop 是个图形界面,能够设置选项、启动 / 进行服务器、查看日志等性能。Appium Inspector 能够查看应用程序的元素,并进行根本的交互、录制等性能。
下载及装置
下载地址:
https://github.com/appium/app…
下载对应零碎的 Appium 版本,装置实现之后,点击“Start Server”,就启动了 Appium Server。
在启动胜利页面点击右上角的放大镜,进入到创立 Session 页面。配置好 desirecapability 信息之后,点击“Start Session”启动会话就展现出上面的页面。Appium Inspector 元素定位页面:
编辑
左侧为屏幕快照:能够在左侧应用鼠标抉择 UI 元素,会看到它们高亮显示。
两头为页面 DOM 树结构:在利用层次结构中会间接将元素的属性值标记在树上,这对于 Appium 定位元素很不便。
右侧为元素的详细信息:当元素被选中,右侧会展现出元素的具体属性信息列表。这些属性将决定 Appium 定位元素的策略。
另外 Appium Inspector 还提供了页面刷新,页面操作,录制,元素的点击、输出等性能。
Appium 自动化用例录制
Appium Inspect 提供了定位元素与录制用例的性能,应用 Appium Inspect 能够查看挪动设施的 UI 布局构造,不便脚本的编写和生成。上面以 Android 零碎为例。在 Android 模拟器上装置 ApiDemos-debug.apk 利用。
测试利用下载地址:
https://github.com/appium/sam…
下载该 apk 并装置到测试设施,之后会基于该 app 进行自动化测试。
在录制脚本前启动测试设施,并且通过命令行查看该设施已连贯胜利。应用上面的命令查看设施是否连贯,展现出上面的内容,即阐明设施已连贯。
$ adb devives
List of devices attached
emlulator-5554 device
下面的后果中,“emulator-5554”代表设施的名称,“device”代表设施的状态,阐明设施已连贯。如果是其它状态,须要从新连贯设施,或者在设施上查看是否开启开发者模式,以及关上 USB 调试模式。
获取利用包名和页面名称
挪动端的包名(也就是 Package)作为每个 app 的惟一标识,每个 APP 都有本人的 Package Name,且每个设施上雷同的包名的 APP,只容许装置一个。
页面(也就是 Activity)是 Android 组件中最根本,也是常见的四大组件之一,能够了解为一个页面就是一个 Activity,挪动端关上一个 app 的页面,在操作页面的时候会产生页面的跳转,也就是 Activity 之间产生了切换。在编写测试脚本之前,首先要获取利用的包名以及启动页的 Activity 名字。
获取包名,终端进入 aapt 工具所在目录(Android SDK 的 build-tools 目录下),输出:
aapt dump badging [app 名称].apk
运行后果:
编辑
图中“package:name”对应的后果是包名,“Lauchable-activity:name”对应的后果是“包名 + 页面名”。然而有些不符合规范的利用,通过 aapt 命令无奈获取到“Lauchable-activity:name”这部分内容。
针对下面的问题,就须要在测试设施上启动 APP,而后在终端输出如下命令(Mac OS / Linux 零碎):
adb logcat | grep ActivityManager
运行后果如下图:
编辑
Appium-desktop 自动化用例录制
- 启动 Appium Server
应用 Appium Inspector 录制测试脚本,首先须要启动 Appium-desktop, 点击“Start Server”,如下图:
编辑
- 关上 Appium Inspect 工具
点击右上角“Start inspector Session”按钮,关上 inspector 工具,图形页面如下:
编辑
Inspector 就是探测器,给它相应的参数,启动 app 帮你剖析挪动端 APP 的 UI 界面,还能够应用它录制脚本,反对导出多种语言的测试脚本。
- 配置 Desired Capabilities 信息
编辑
platfromName:应用哪个挪动操作系统平台,这里能够填 Android、iOS
deviceName:设施名称,能够轻易填,但必须得有此项
appPackage:要启动的 android 利用程序包(“io.appium.android.apis”)appActivity:App 启动的首页 Activity(“.ApiDemos”或者“io.appium.android.apis/.ApiDemos”)
- 启动 Session
点击“Start Session”,录制脚本。
对于 Appium 的初学者,能够通过录制性能,理解编写用例的时候须要应用哪些 API,有哪些编写标准等,能够作为一个很好的参考。
点击“开始录制”按钮(小眼睛图标):
编辑
左侧抉择要操作的页面元素,在右侧抉择要做的操作:
编辑
Tap 为点击元素 Send keys 为文本框录入 Clear 为清空文本框
利用上图 1,2 步组合,就能够实现对 app 的操作。比方在截取的页面中鼠标点击“Views”-> 点击 Tap,再点击“Buttons”-> 点击 Tap。每操作一步,都会主动生成脚本,如图:
编辑
默认生成的语言为 Java-unit,如果想生成其余语言,只有点击下拉栏抉择相应选项即可,这里切换成 Python 语言。
把代码复制粘贴到编辑器中,就能够运行。代码如下:
from appium import webdriver
caps = {}
caps[“platformName”] = “android”
caps[“deviceName”] = “demo”
caps[“appPackage”] = “io.appium.android.apis”
caps[“appActivity”] = “.ApiDemos” caps[“autoGrantPermissions”] = “true”
driver = webdriver.Remote(“http://localhost:4723/wd/hub”, caps)
el2 = driver.find_element_by_id(“tv.danmaku.bili:id/expand_search”)
el2.click() el3 = driver.find_element_by_accessibility_id(“ 搜寻查问 ”) el3.send_keys(“ 霍格沃兹测试学院 ”)
driver.quit()
下面是录制进去的代码,录制生成的代码须要手动优化,增加须要的单元测试框架(比方 Pytest,Unittest)使代码更优雅。代码录制对刚入门的人来说还是比拟实用的,它的毛病也是很显著:
所有的代码都会在一个文件里,显得代码十分的冗余
不能解决工作中大部分的场景