如何使用Appium测试控件

复制下面链接获取最新版

https://www.evget.com/product/740/download

DevExpress WPF 控件支持带有WinAppDriver UI测试自动化的Appium框架,本文主要介绍如何准备环境和创建测试。

准备环境

按照以下步骤将 Appium 与 DevExpress WPF 控件一起使用:

1. 启动Windows 开发人员模式 。

2. 安装WinAppDriver 。

3. 在您的项目中引用 Appium.WebDriver nuget package 。

4. 将 DevExpress WPF 控件切换到 UI 测试模式,为此请在应用程序启动时在测试的应用程序中将 DX.UITestingENABLED 环境变量设置为 1 或将
   ClearAutomationEventsHelper.UITestingEnabled 属性设置为 true,此模式导致以下更改:

  • 动画被禁用。
  • 上下文菜单仅在鼠标单击时打开,当鼠标指针位于菜单上方时不会打开。
  • UI Automation树进行了调整,使 UI 测试更加稳定和可靠。

注意:示例项目使用 EnvironmentVariables 属性来指定 DX.UITESTINGENABLED 环境变量。

创建测试

要使用 Appium API,请创建一个 WindowsDriver 实例。 以下代码示例运行经过测试的应用程序并创建 WindowsDriver 会话:

UnitTest1.cs

var options = new AppiumOptions();
options.AddAdditionalCapability(capabilityName: "app", capabilityValue: PathToTheApp);
options.AddAdditionalCapability(capabilityName: "deviceName", capabilityValue: "WindowsPC");
options.AddAdditionalCapability(capabilityName: "platformName", capabilityValue: "Windows");
options.AddAdditionalCapability(capabilityName: "ms:experimental-webdriver", capabilityValue: true);
var driver = new WindowsDriver(new Uri("http://127.0.0.1:4723"), options);

UnitTest1.vb

Dim options = New AppiumOptions()
options.AddAdditionalCapability(capabilityName:="app", capabilityValue:=PathToTheApp)
options.AddAdditionalCapability(capabilityName:="deviceName", capabilityValue:="WindowsPC")
options.AddAdditionalCapability(capabilityName:="platformName", capabilityValue:="Windows")
options.AddAdditionalCapability(capabilityName:="ms:experimental-webdriver", capabilityValue:=True)
Dim driver = New WindowsDriver(Of WindowsElement)(New Uri("http://127.0.0.1:4723"), options)

要测试正在运行的应用程序,请将上面代码示例中带有“app”capabilityName 的行更改为以下内容:

UnitTest1.cs

options.AddAdditionalCapability(capabilityName: "appTopLevelWindow", capabilityValue: $"0x{WindowHandle.ToInt64():X8}");

UnitTest1.vb

options.AddAdditionalCapability(capabilityName:="appTopLevelWindow", capabilityValue:=$"0x{WindowHandle.ToInt64()}")

注意:如果您在与被测应用程序相同的进程中托管测试,则测试应该在单独的线程中。 在这种情况下,UI 线程可以同步处理 windows 消息。

使用 WinAppDriver UI 记录器

您可以使用 WinAppDriver UI Recorder 工具生成测试。 在这种情况下,您的测试应用程序需要 DesktopSession 类,这种方法有以下缺点:

  • 这些测试使用 FindElementByXPath 方法来查找元素,这种方法很慢,因为它会解析整个可视化树。
  • 这些测试很难维护,因为它们使用绝对 XPath 来查找元素,应用程序布局更改可能会破坏测试。
  • 这些测试很难阅读。

使用 Appium API

使用 WinAppDriver 的 FindElementByName、FindElementByClassName 和
   FindElementByAccessibilityId 方法来查找应用程序元素,这些方法比 FindElementByXPath 方法工作得更快。 当您修改应用程序布局时,基于这些方法的测试不会失败。

您可以使用 Inspect 工具查找元素名称、类名称和自动化 ID。

提示:您可以指定应用程序元素的
   AutomationProperties.AutomationId 附加属性以增强测试的可读性。

示例

以下代码打开“New Employee”窗口,在该窗口中找到带有 TextEdit 类的“First Name”元素,输入“John”,然后单击“Save & Close”元素:

C#

[Test]
public void CreateEmployee()
{
var bNewEmployee = driver.FindElementByName("New Employee");
bNewEmployee.Click();

WindowsElement newEmployeeWindow = null;
while (newEmployeeWindow == null)
newEmployeeWindow = driver.FindElementByName("Employee (New)");

newEmployeeWindow.FindElementByName("First Name").FindElementByClassName("TextEdit").SendKeys("John");
newEmployeeWindow.FindElementByName("Save & Close").Click();
}

Visual Basic

Public Sub CreateEmployee()
Dim driver = desktopSession.DesktopSessionElement
Dim bNewEmployee = driver.FindElementByName("New Employee")
bNewEmployee.Click()
Dim newEmployeeWindow As WindowsElement = Nothing

While newEmployeeWindow Is Nothing
newEmployeeWindow = driver.FindElementByName("Employee (New)")
End While

newEmployeeWindow.FindElementByName("First Name").FindElementByClassName("TextEdit").SendKeys("John")
newEmployeeWindow.FindElementByName("Save & Close").Click()
End Sub

DevExpress WPF

DevExpress WPF拥有120 个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。

(0)

相关推荐

  • wps表格没有日历控件

    office软件是大家使用率很高的软件,在以往的execl版本中添加日历控件很方便,但是在execl2016-64位的版本中,并不能够直接找到相关控件.想知道怎么办,请诸君往下戳 ......添加开发 ...

  • 简单介绍屏幕测试

    导读:时下电子产品盛行,其中大部分都装有显示屏,而对于一个电子产品来说显示屏的质量至关重要.试想如果一个电子产品如果显示屏幕坏了,那么它的大部分功能都会丢失.不仅如此,显示屏市场中产品良莠不齐,价位不 ...

  • 深度win7的系统信息、主要特点以及安装说明

    深度win7是一款在安全系数.系统稳定性以及功能设计方面均十分出色的产品.它也因此得到了一大批消费者的青睐,在竞争激烈的智能市场上成功占据一席之地.那么接下来不妨就随小编一起来了解几个关于深度win7 ...

  • 图像采集卡价格及作用

    图像采集卡价格 图像采集卡价格:20元.19.5元.22元.23元.160元.150元.90元.50元.25元.120元等价位.根据图像采集卡的品牌.功能.作用.类型等等不同,实际上的图像采集卡价格也 ...

  • 索尼mt25i怎么样?索尼mt25i的报价参考

    索尼是一个在世界范围内都非常知名的电子产品品牌,作为日本的一个电子产品品牌,索尼的手机产品有着非常浓厚的日系手机的特色和风格,不仅外观时尚精致,在性能方面也追求精细.索尼mt25i作为索尼所推出的一款 ...

  • 5寸mp4款式推荐

    看视频是很多人的休闲首要选择之一,因为它的种类非常多选择非常广,几乎每个年龄阶段的人都有自己喜欢看的剧种.当然看剧少不了一个方便易携带的MP4,因为它相比平板来更小巧,所以很适合在上下班途中在地铁或者 ...

  • 【电脑开机慢怎么办】几招教你提升电脑开机速度

    [台式电脑开机慢怎么办(原因+解决办法)] 导致台式电脑开机慢的原因: 1) 遭到木马病毒入侵,系统遭到破坏和修改,导致程序运行缓慢.解决办法:用杀毒软件进行检测.看系统是否存在木马病毒. 2) 系统 ...

  • 无线监控摄像头怎么安装及安装注意事项

    监控摄像头对于人身财产有非常重要的意义,使得监控摄像头一经推出市场就受到了非常多消费者以及单位的购买.而在众多摄像头中,因为无线摄像头不仅不需要任何的线,而且管理也非常的容易,因此无线监控摄像头在市场 ...

  • 大连公积金查询怎么操作 图文详解大连公积金查询流程

    导语:身处大连的童鞋们,你们了解大连公积金查询怎么操作吗?很多人只知道单位为我们缴纳了公积金,但是到底缴了多少呢,自己的公积金账户里又有多少钱呢.问到这个问题不少小伙伴都非常迷茫,本文小兔就来讲一讲大 ...

  • 电脑屏幕变暗的原因分析以及解决方法

    我们在平日里使用笔记本电脑的过程中,经常会发现笔记本电脑屏幕根据光线自动调节亮度就会自动将屏幕变暗,对我们的工作十分不便,其实有时候是因为光线自动调节,有时候是因为电脑出现了问题,接下来,小编将为大家 ...