撰寫測試 (.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 功能 的資訊。
基本上,此程式碼執行下列動作
- 定義一組「功能」(參數)傳送至 Appium 伺服器,讓 Appium 知道您想要自動化哪種類型的項目。其中一些參數可以使用環境變數覆寫。
- 在內建的 Android 設定應用程式上啟動 Appium 工作階段。
- 尋找「電池」清單項目並按一下。
- 結束 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 之旅!繼續閱讀以探索一些 後續步驟。