Appium: Windows系统桌面应用自动化测试
- 一、方案调研
- 二、环境搭建
- 1、WinAppDriver环境搭建
- (1)开启开发者选项中的“开发人员模式”
- (2)windows sdk下载安装
- (3)WinAppDriver下载安装
- 2、appium环境搭建
- (1)appium的官方文档
- (2)根据官方文档,采用Appium的桌面方式进行安装,而且是一键安装
- (3)打开如图界面则安装成功
- 3、使用Appium连接WinAppDriver
- (1)操作步骤
- (2)json配置,参数如下
- (3)Appium桌面版提供的功能
- 三、简单使用
- 1、查找元素
- (1)windows sdk安装路径中,有一个查找元素的组件,叫 inspect.exe,可通过搜索找到,并双击运行。打开如图界面,可以查看元素的名称,和元素支持的点击等操作。
- (2)inspect.exe查找到的元素的键值对,与python语言使用方法的对应关系,如下表:
- 2、编写脚本
- (1)打开pycharm创建虚拟环境,并打开虚拟环境的cmd对话窗口,安装如下:
- (2)编写脚本,实现连接,代码如下
一、方案调研
1、windows桌面应用自动化测试方案
(1)WinAppDriver是微软开发的自动化测试工具,而windows是微软开发的,兼容性应该极好。
(2)WinAppDriver也可以是appium的一个自动化框架,而Appium 支持python语言。
(3)Appium 是一个开源工具,用于自动化 iOS 手机、 Android 手机和 Windows 桌面平台上的原生、移动 Web 和混合应用。它把这些系统本身提供的框架包装进一套 API —— WebDriver API 中。WebDriver,即Selenium WebDriver。
(4)Pytest是自动化测试工具,基于Unittest的封装,没那么灵活,但插件丰富。
基于这些原因,windows桌面应用的自动化测试方案采用Python+Appium+WinAppDriver+Pytest
(5)当我写完“Appium: Windows系统桌面应用自动化测试(二)”的时候,我决定弃用上述方案,当然,对于想要坚持的同志,本文依然是入门win桌面应用UI自动化的最佳选择!
二、环境搭建
1、WinAppDriver环境搭建
(1)开启开发者选项中的“开发人员模式”
(2)windows sdk下载安装
①下载地址:
https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/
②选择路径安装即可
(3)WinAppDriver下载安装
①点击下载链接,并任选一个版本,打开如下图,接着根据需求选择合适自己的安装包下载即可
下载地址:https://github.com/microsoft/WinAppDriver/releases
②一键安装
③搜索一下安装路径
如图,默认路径为:C:\Program Files\Windows Application Driver
④双击打开出现以下画面则安装成功
2、appium环境搭建
(1)appium的官方文档
http://appium.io/docs/cn/about-appium/intro/
(2)根据官方文档,采用Appium的桌面方式进行安装,而且是一键安装
下载地址:https://github.com/appium/appium-desktop/releases
(3)打开如图界面则安装成功
3、使用Appium连接WinAppDriver
(1)操作步骤
(2)json配置,参数如下
{
"app": "C:\\Program Files\\XMind\\XMind.exe",
"deviceName": "WindowsPC",
"platformName": "Windows"
}
(3)Appium桌面版提供的功能
①可作为客户端或服务器使用
②提供元素查找功能
③提供脚本录制功能
④其他
三、简单使用
1、查找元素
(1)windows sdk安装路径中,有一个查找元素的组件,叫 inspect.exe,可通过搜索找到,并双击运行。打开如图界面,可以查看元素的名称,和元素支持的点击等操作。
(2)inspect.exe查找到的元素的键值对,与python语言使用方法的对应关系,如下表:
inspect.exe查找到的键值对 | python查找元素的方法 |
---|---|
AutomationId | driver.find_element_by_accessibility_id() |
ClassName | driver.find_element_by_class_name() |
RuntimeId (decimal) | driver.find_element_by_id() |
Name | driver.find_element_by_name() |
LocalizedControlType (upper camel case) | driver.find_element_by_tag_name() |
Any | driver.find_element_by_xpath() |
2、编写脚本
前面,我们已经使用Appium作为客户端成功连接了服务端WinAppDriver;现在,我们通过python脚本连接WinAppDriver。
(1)打开pycharm创建虚拟环境,并打开虚拟环境的cmd对话窗口,安装如下:
pip install Appium-Python-Client Selenium
(2)编写脚本,实现连接,代码如下
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
# appium服务监听地址(WinAppDriver地址)
server='http://127.0.0.1:4723'
# app启动参数
desired_caps={
"app": "C:\\Program Files\\XMind\\XMind.exe",
"deviceName": "WindowsPC",
"platformName": "Windows"
}
# 连接
driver = webdriver.Remote(server, desired_caps)
wait = WebDriverWait(driver, 30)