テストの作成(.NET)

Appium .NETクライアントは、C#の公式Appiumクライアントです。このドライバーは、Selenium C#クライアントの拡張機能です。通常のドライバーのすべての機能を備えていますが、これに加えてAppium固有のメソッドが追加されています。ドライバーは、NuGetギャラリーで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クライアントライブラリやここで起こっているすべてのことについて完全に説明することはできません。そのため、コード自体の詳細な説明はここでは省略します。さまざまなAPIコマンドの詳細な説明とその目的については、特にAppiumの機能について読むことに加えて、dotnetクライアントドライバードキュメントに精通することをお勧めします。

基本的に、このコードは次のことを行っています。

  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の旅を始めました!探索するための次のステップに進んでください。