UNPKG

appium

Version:
68 lines (52 loc) 4.44 kB
# Windows 应用的 UI 测试 在 Appium 中,Windows 应用的 UI 测试是由 [WinAppDriver](https://github.com/Microsoft/WinAppDriver) 支持的,Appium 在下载安装的时候已经带了这部分。 ## Java 示例 1. 在 Java IDE (比如 IntelliJ)中打开包含示例项目工程的目录,如:[CalculatorTest](https://github.com/Microsoft/WinAppDriver/tree/master/Samples/Java/CalculatorTest) 2. 在 Java IDE 中 build 并运行这个测试脚本 ## C# 示例 1. 拉取并打开 [CalculatorTest](https://github.com/Microsoft/WinAppDriver/tree/master/Samples/C%23/CalculatorTest) 目录下的文件 `CalculatorTest.sln` 2. 在 Visual Studio 2015 中打开 test solution,然后 build 这个测试脚本并选择 **Test > Run > All Tests** ## 特性 Windows Application Driver 支持测试 **Windows 10 PC** 上的**Universal Windows Platform (UWP)****Classic Windows (Win32)** 应用。 ## 创建你的测试脚本 你可以使用任意一个 Appium 或 Selenium 支持的编程语言来编写测试脚本,在下面的例子中,我们会使用 C# 在 **Microsoft Visual Studio 2015** 编写测试脚本。 ## 创建测试项目工程 1. 打开 **Microsoft Visual Studio 2015** 2. 创建 test project 和 solution。选择 **New Project > Templates > Visual C# > Test > Unit Test Project** 3. 创建好之后,打开 **Project > Manage NuGet Packages... > Browse** ,并搜索 **Appium.WebDriver** 4. 为当前的 test project 安装 **Appium.WebDriver** 5. 接下来就可以编写测试脚本了(可参考 [samples](https://github.com/appium/sample-code/tree/master/sample-code/examples/C%23/CalculatorTest) 目录下的示例代码)。 ## Universal Windows Platform 应用的测试 你可以使用 Selenium 支持的编程语言来编写脚本来测试 UWP 应用,通过 **app capabilities entry**,可以对测试的 app 找到它的 **Application Id**。下面是一个用 C# 编写的例子,主要是为 Windows 上的 **Alarms & Clock app** 创建一个测试 session: ```c# // Launch the AlarmClock app DesiredCapabilities appCapabilities = new DesiredCapabilities(); appCapabilities.SetCapability("app", "Microsoft.WindowsAlarms_8wekyb3d8bbwe!App"); AlarmClockSession = new IOSDriver<IOSElement>(new Uri("http://127.0.0.1:4723"), appCapabilities); // Control the AlarmClock app AlarmClockSession.FindElementByAccessibilityId("AddAlarmButton").Click(); AlarmClockSession.FindElementByAccessibilityId("AlarmNameTextBox").Clear(); ``` 在测试自己的应用时,你可以在项目工程下生成的文件 `AppX\vs.appxrecipe` 中找到该应用的 **Application id**,如:```c24c8163-548e-4b84-a466-530178fc0580_scyf5npe3hv32!App```,这个文件位于 RegisteredUserNmodeAppID 节点下。 ### Classic Windows 应用的测试 同样的,你可以使用任意一门 Selenium 支持的编程语言来编写对 Classic Windows 应用的测试脚本,并在 app capabilities entry 中指定该应用的**绝对路径**。下面的例子是对 Windows 系统下的应用 **Notepad** 创建一个测试 session: ```c# // Launch Notepad DesiredCapabilities appCapabilities = new DesiredCapabilities(); appCapabilities.SetCapability("app", @"C:\Windows\System32\notepad.exe"); NotepadSession = new IOSDriver<IOSElement>(new Uri("http://127.0.0.1:4723"), appCapabilities); // Control the AlarmClock app NotepadSession.FindElementByClassName("Edit").SendKeys("This is some text"); ``` ### 启动 Session 注意你需要额外使用下面的这些 capabilities 来确保可以获得 Windows App automation session: `platformName`: `Windows` `deviceName`: `WindowsPC` ### 定位 UI 元素 **Microsoft Visual Studio 2015** 已经默认包含了 Windows SDK,这些 SDK 提供了足够好的用于对你测试的应用进行分析的工具。这类工具能够让你利用 Windows Application Driver 来查看那些你可以找到的 UI 元素或节点。你可以在 Windows SDK 目录(如`C:\Program Files (x86)\Windows Kits\10\bin\x86`)下找到 **inspect.exe** 这个工具。 | 定位方法 | 匹配属性 | |------------------|-------------------| | accessibility id | AutomationId | | class name | ClassName | | name | Name | 本文由 [fishky2](https://github.com/fishky2) 翻译,由 [lihuazhang](https://github.com/lihuazhang) 校验。