• <menu id="w2i4a"></menu>
  • logo Devexpress WPF控件文檔中心
    文檔首頁>>Devexpress WPF控件文檔中心>>如何用Appium測試控件

    如何用Appium測試控件


    立即下載DevExpress WPF

    DevExpress WPF控件支持Appium框架與WinAppDriver UI測試自動化。本主題展示了如何準備環(huán)境和創(chuàng)建測試。

    準備環(huán)境

    按照以下步驟使用Appium與DevExpress WPF控件:

    • 啟用Windows開發(fā)人員模式。
    • 安裝winappdriver。
    • 在您的項目中引用Appium.WebDriver nuget package。
    • 將DevExpress WPF控件切換到UI測試模式。要做到這一點,請設(shè)置DX.UITESTINGENABLED 環(huán)境變量為1,或者ClearAutomationEventsHelper.UITestingEnabled屬性在被測試的應(yīng)用程序啟動時為true。這種模式導(dǎo)致以下變化:
      • 動畫被禁用。
      • 上下文菜單僅在鼠標單擊時打開,當(dāng)鼠標指針位于菜單上方時不打開。
      • UI Automation tree經(jīng)過調(diào)整,使UI測試更加穩(wěn)定和可靠。

    提示:示例項目使用EnvironmentVariables 屬性來指定DX.UITESTINGENABLED環(huán)境變量。

    View Example :Test the OutlookInspiredApp with Appium

    創(chuàng)建測試

    要使用Appium API,請創(chuàng)建一個WindowsDriver實例。下面的代碼示例運行測試過的應(yīng)用程序并創(chuàng)建一個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<WindowsElement>(new Uri("http://127.0.0.1:4723"), options);

    點擊復(fù)制

    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)

    點擊復(fù)制

    要測試一個正在運行的應(yīng)用程序,將上面代碼示例中的" app " capacityname行更改為以下內(nèi)容:

    UnitTest1.cs :

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

    點擊復(fù)制

    UnitTest1.vb:

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

    點擊復(fù)制

    提示:如果您在與被測試應(yīng)用程序相同的進程中托管測試,則測試應(yīng)該在單獨的線程中。在這種情況下,UI線程可以同步處理windows消息。

    使用 WinAppDriver UI recorder

    您可以使用WinAppDriver UI recorder工具來生成測試,在這種情況下,測試應(yīng)用程序需要 DesktopSession 類。這種方法有以下缺點:

    • 這些測試使用FindElementByXPath方法來查找元素,這個方法比較慢,因為它要解析整個可視樹。
    • 這些測試很難維護,因為它們使用絕對xpath來查找元素,應(yīng)用程序布局的改變可能會破壞測試。
    • 這些試題很難讀懂,參考我們的GitHub存儲庫上的提交,比較記錄的測試和基于Appium api的測試可讀性。
    使用 Appium API

    使用WinAppDriver的FindElementByName、FindElementByClassName和FindElementByAccessibilityId方法來查找應(yīng)用程序元素。這些方法的工作速度比FindElementByXPath方法快,修改應(yīng)用程序布局時,基于這些方法的測試不會失敗。

    您可以使用檢查工具來查找元素名、類名和自動化 ids。

    提示:您可以指定應(yīng)用程序元素的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();
    }

    點擊復(fù)制

    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

    點擊復(fù)制

    View Example:Test theOutlookInspiredApp with Appium

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();