撰寫測試 (.NET)

Appium .NET Client 是 C# 中的官方 Appium 應用程式。此驅動程式是 Selenium C# 應用程式的延伸。它具備一般驅動程式的所有功能,但在此基礎上新增了 Appium 特有的方法。此驅動程式可在公開的 NuGet Gallery 中取得,為 Appium.WebDriver

現在,我們進入目錄並建立新的 NUnit 專案。我們也會新增對 Appium.Net 驅動程式和其他依賴項的參照。

cd dotnet-client
dotnet new nunit --name appiumtest 

cd appiumtest

# This will install the latest 5.x version
dotnet add package Appium.WebDriver  --prerelease
dotnet add package Newtonsoft.Json --version 13.0.3

完成後,您的專案應有一個暫存檔 UnitTest1.cs。我們將替換程式碼,以包含 OpenQA 名稱空間、驅動程式初始化和實際測試。

UnitTest1.cs
using OpenQA.Selenium;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Android;
using OpenQA.Selenium.Appium.Enums;

namespace appiumtest;

public class Tests
{
    private AndroidDriver _driver;

    [OneTimeSetUp]
    public void SetUp()
    {
        var serverUri = new Uri(Environment.GetEnvironmentVariable("APPIUM_HOST") ?? "http://127.0.0.1:4723/");
        var driverOptions = new AppiumOptions() {
            AutomationName = AutomationName.AndroidUIAutomator2,
            PlatformName = "Android",
            DeviceName = "Android Emulator",
        };

        driverOptions.AddAdditionalAppiumOption("appPackage", "com.android.settings");
        driverOptions.AddAdditionalAppiumOption("appActivity", ".Settings");
        // NoReset assumes the app com.google.android is preinstalled on the emulator
        driverOptions.AddAdditionalAppiumOption("noReset", true);

        _driver = new AndroidDriver(serverUri, driverOptions, TimeSpan.FromSeconds(180));
        _driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
    }

    [OneTimeTearDown]
    public void TearDown()
    {
        _driver.Dispose();
    }

    [Test]
    public void TestBattery()
    {
        _driver.StartActivity("com.android.settings", ".Settings");
        _driver.FindElement(By.XPath("//*[@text='Battery']")).Click();
    }
}

注意

本指南的範圍不包括提供 dotnet 應用程式程式庫或此處發生所有事情的完整說明,因此我們現在不會詳細說明程式碼本身。除了熟悉 dotnet 應用程式驅動程式文件 以更完整地說明您看到的各種 API 命令及其用途之外,您可能還想特別閱讀有關 Appium 功能 的資訊。

基本上,此程式碼執行下列動作

  1. 定義一組「功能」(參數)傳送至 Appium 伺服器,讓 Appium 知道您想要自動化哪種類型的項目。其中一些參數可以使用環境變數覆寫。
  2. 在內建的 Android 設定應用程式上啟動 Appium 工作階段。
  3. 尋找「電池」清單項目並按一下。
  4. 結束 Appium 工作階段。

就是這樣!我們來試試看。在執行測試之前,請確定您在另一個終端機工作階段中執行 Appium 伺服器,否則您會收到無法連線至伺服器的錯誤訊息。然後,您可以執行指令碼

dotnet test

# Example output:
# Starting test execution, please wait...
# A total of 1 test files matched the specified pattern.

# Passed!  - Failed:     0, Passed:     1, Skipped:     0, Total:     1, Duration: 323 ms - appiumtest.dll (net7.0)

如果一切順利,您將看到「設定」應用程式開啟並在應用程式再次關閉前導航至模擬器的「電池」檢視。

恭喜您,您已經開始您的 Appium 之旅!繼續閱讀以探索一些 後續步驟