UWP UI自动化测试(一)------WinAppDriver/Inspect.exe环境准备
安装的软件:
1、WinAppDriver
WinAppDriver官网:https://github.com/Microsoft/WinAppDriver上面有些 demo。
Application Driver直接安装地址:https://github.com/Microsoft/WinAppDriver/releases
或者 https://www.microsoft.com/en-us/download/details.aspx?id=51663
环境准备
安装完成后,默认在系统的:C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe
这个工具的作用是你写的测试工程,通过本地 localhost(127.0.0.1)以 json 方式与 WinAppDriver 进行通信,使 WinAppDriver调用 win32 api来模拟屏幕操作,如果鼠标点击、拖拽、触屏手势等,后续据说会支持 xbox 手柄、hololens 等操作。
唯有启用Developer Mode,才能够使我们的程序能够检查界面元素及操纵界面。
进入设置,查找Developer Mode即可:
如果遇到错误 Developer Mode package failed to install. Error code: 0x80004005,需要按照以下步骤解决:
- Win + R ,输入regedit 打开注册表
- 找到以下键值:HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
- 在右侧面板找到一个叫做UseWUServer的DWORD值,它的值可能是1. 双击修改该值为0
- 重启机器
- 再次进入“设置”尝试一次
2、 inspect.exe
这个工具是用来查看运行软件(uwp、win32、win form、wpf)的 UI 元素的 Name、ID、Text 等等。包含在 Windows SDK 中。
安装完 Visual Studio2015后,可以在 C盘下找到:C:\Program Files (x86)\Windows Kits\10\bin\x64\inspect.exe
元素对照表:
Client API | Locator Strategy | Matched Attribute | Example |
---|---|---|---|
FindElementByAccessibilityId | accessibility id | AutomationId | AppNameTitle |
FindElementByClassName | class name | ClassName | TextBlock |
FindElementById | id | RuntimeId (decimal) | 42.333896.3.1 |
FindElementByName | name | Name | Calculator |
FindElementByTagName | tag name | LocalizedControlType (upper camel case) | Text |
相关参考:
UI Testing: What's new with WinAppDriver:https://channel9.msdn.com/Events/Build/2017/P4084
Improving App Quality with UI Automation:https://channel9.msdn.com/Events/Connect/2016/202?ocid=player
Automate Windows And Mac Apps With The WebDriver Protocol - Dan Cuellar, FOODIt:https://www.youtube.com/watch?v=MgBRvQOZhec
StarDriver Enterprise Appium to the Future | Jonathan Lipps:https://www.youtube.com/watch?v=e61OhZzbsEI
github WinAppDriver: https://github.com/microsoft/winappdriver
Modern Dev Practices: Unit Testing:https://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Modern-Dev-Practices-Unit-Testing
Inspect.exe: https://msdn.microsoft.com/en-us/library/windows/desktop/dd318521(v=vs.85).aspx
Windows SDK and emulator archive : https://developer.microsoft.com/en-us/windows/downloads/sdk-archive
Windows Automation API: UI Automation:https://msdn.microsoft.com/zh-cn/library/ms726294(vs.85).aspx
AutomationID :https://docs.microsoft.com/en-us/dotnet/framework/ui-automation/use-the-automationid-property
UI Automation Overview:
https://docs.microsoft.com/en-us/dotnet/framework/ui-automation/ui-automation-overview
https://msdn.microsoft.com/zh-cn/library/ms728097(v=vs.85).aspx