[MFC] ログをファイルに出力する

参考サイト

CStdioFile Class
https://msdn.microsoft.com/en-us/library/a499td6y.aspx

[C#] WinAppDriver/UIRecorderを試す

UI Recorderという、テスト自動化のためのツールが公開されたらしい。UI Recorderを使うと、操作手順をキャプチャしてC#のコードを生成してくれるみたい。試してみる。

Microsoft、オープンソースの自動UIテストスクリプトツール「WinAppDriver UI Recorder」を公開:自動UIテストのスクリプトを簡単に作成できる – @IT
http://www.atmarkit.co.jp/ait/articles/1806/22/news036.html

WinAppDriver/Tools/UIRecorder at master · Microsoft/WinAppDriver · GitHub
https://github.com/Microsoft/WinAppDriver/tree/master/Tools/UIRecorder

UI Recorderのビルド

1. リポジトリのクローニング

2. VS2017でソリューションファイルを開く
WinAppDriver\Tools\UIRecorder\WinAppDriverUIRecorder.sln

3. ビルド

ビルドしたらエラーが出た。

プロジェクトにアサインされているバージョンのWindows SDKがこのマシン上には存在しないので、ソリューションを右クリックして[Retarget solution]を選択し、存在するバージョンに変更する。

再ビルドして成功。

UI操作を記録する

Windowsの電卓を操作して記録してみる。

1. UI Recorderを実行する。
2. [Record]ボタンをクリックして電卓アプリを操作する。
3. 操作完了したら[Stop Recording]ボタンをクリックする。
4. [C# Code]タブに操作内容のC#コードが生成される。

自動化アプリを作成する

前処理 (WinAppDriverの起動やセッションの確立処理など)部分は参考サイトのコードをそのままコピペさせてもらって、それに続けてUIRecorderが生成したC#のコードを貼りつける。

1. プロジェクト作成 Console App (.NET Framework)
2. NuGetでAppium.WebDriver をインストールする
3. コーディング

XPathはそのままだとNot Foundになるので、以下のように編集した。

編集前

編集後

4. ビルドして実行

アプリが自動実行された。

参考サイト

WinAppDriver UI Recorderを試してみました。 | 初心者備忘録
https://www.ka-net.org/blog/?p=10504

[C#] WinAppDriverを試す

Windows Application Driverは、WindowsアプリケーションにおけるSeleniumライクなUIテストオートメーションをサポートするサービス。このサービスは、Windows 10 PCを使ったUniversal Windows Platform (UWP)及びClassic Windows (Win32)アプリのテストをサポートしている。

GitHubで公開されているので試してみる。

GitHub – Microsoft/WinAppDriver: Windows Application Driver
https://github.com/Microsoft/WinAppDriver

セットアップ

1. ダウンロード https://github.com/Microsoft/WinAppDriver/releases
2. インストール
3. 実行する C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe

電卓アプリを自動操作するサンプルを試す

1. VS2017でSamples\C#\CalculatorTest.slnを開く
2. Test > Windows > Test Explorer を選択
3. Run All を選択してテスト実行

電卓アプリが自動で動くのが確認できた。

参考サイト

WinAppDriver: Selenium に似た Appium のテストを使用して、Windows であらゆるアプリのテストを実行 – Visual Studio 日本チーム Blog
https://blogs.msdn.microsoft.com/visualstudio_jpn/2016/12/02/winappdrivertestanyappwithappiumsseleniumliketestsonwindows/

[C#] テスト自動化ライブラリFriendlyを試す

Windowsアプリのテスト自動化ツールを探していたらFriendlyというオープンソースのライブラリが見つかった。どういう仕組みで動くのか試してみたい。このライブラリに言及した記事を探したら以下がヒット。書かれたのは2014年と古い記事なので、この記事をなぞって自分で試してみる。

Friendlyエバンジェリストはミニスカサンタ – xin9le.net
http://blog.xin9le.net/entry/2014/12/22/000057

なお、本家リポジトリはこちら。

GitHub – Codeer-Software/Friendly
https://github.com/Codeer-Software/Friendly

SampleApp (ターゲットアプリ) 作成

– Windows Form App (.NET Framework)
– テスト用にプロパティとメソッドを追加

Form1.cs

TestApp (テストアプリ) 作成

– Console App (.NET Framework)
– Manage NuGet Packages…
– Codeer.Friendly by Codeer v.2.5.2
– Codeer.Friendly.Windows by Codeer v.2.9.0

Program.cs

ビルドして実行。TestAppからSampleAppのプロパティにアクセスしたり、メソッドを呼び出すことができた。そういう風にして外部アプリからターゲットアプリを操作して自動テストを行う仕組みらしい。

商用ツールにはテストケースをUIを使って定義できるものがあるが数十万円のコストがかかる。それに対して、Friendlyはテストケースをコーディングする手間がかかるけどオープンソースなので無料で使える。役立つシーンはありそうだ。