実際の自動化テスト効果
WinApp自動化テストの仕組み
環境準備
- Windows 10(開発者モード有効)
- Visual Studio 2019
- テスト対象のexeファイルを用意する
インストール
- WinAppDriverのインストーラをダウンロードする。
https://github.com/microsoft/WinAppDriver/releases
こちらはWinAppDriver v1.2.1を使っていた。 - WinAppDriverをインストールする。
- Windows 10の開発者モードを有効にする。
- WinAppDriver.exeを実行する。
C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe
テストコード作成
- Visual Studioで単体テストプロジェクトを作成する。
- Nugetパッケージマネージャーで「Appium.WebDriver」をインストールする。
- テストコードを作成する。
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Windows;
using OpenQA.Selenium.Interactions;
using System;
using System.Threading;
namespace WinAppAutoTestDemo
{
[TestClass]
public class UnitTest1 : TestSession
{
[TestMethod]
public void TestMethod1()
{
Thread.Sleep(1000);
var inputextBox = _session.FindElementByAccessibilityId("inputextBox1");
var actions = new Actions(_session);
actions.MoveToElement(inputextBox); // inputextBox1にマウスカーソルを移動
inputextBox.SendKeys("https://zhuzhuming.com"); // キーボードで入力
actions.Perform();
var checkBox = _session.FindElementByName("twitter");
actions = new Actions(_session);
actions.DoubleClick(checkBox);
actions.Perform();
checkBox = _session.FindElementByName("facebook");
actions = new Actions(_session);
actions.DoubleClick(checkBox);
actions.Perform();
checkBox = _session.FindElementByName("weixin");
actions = new Actions(_session);
actions.DoubleClick(checkBox);
actions.Perform();
checkBox = _session.FindElementByName("xiaohongshu");
actions = new Actions(_session);
actions.DoubleClick(checkBox);
actions.Perform();
var button = _session.FindElementByAccessibilityId("投稿");
actions = new Actions(_session);
actions.Click(button);
actions.Perform();
Thread.Sleep(5000);
}
[ClassInitialize]
public static void ClassInitialize(TestContext context)
{
Setup(context);
}
[ClassCleanup]
public static void ClassCleanup()
{
TearDown();
}
}
public class TestSession
{
protected static WindowsDriver<WindowsElement> _session;
public static void Setup(TestContext context)
{
var options = new AppiumOptions();
options.AddAdditionalCapability("app", @"E:\099_Technology\C#\csharp\csharp_train\WindowsFormsAppSNS\bin\Debug\WindowsFormsAppSNS.exe");
_session = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), options);
}
public static void TearDown()
{
if (_session != null)
{
_session.Quit();
_session = null;
}
}
}
}
キーワード
- WinAppDriver:WinApp自動化テスト
- Appium:iOSやAndroid自動化テスト
- Selenium:Web自動化テスト
- Inspect.exe:アプリの実行要素が解析できる
- WinAppDriverUiRecorder.exe:アプリの実行要素が解析できる
参考
関連
コメント