「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -戻る --[[テスト]] > [[テスト自動化]] --[[その他、開発の色々]] * 目次 [#a6c1bacf] #contents *概要 [#pa9c83fa] UIの自動化を行う技術。 *基礎 [#gc8ab814] **プロバイダ [#l890bc0b] 提供されるUIオートメーション・プロバイダを使用すれば比較的楽に実装が可能。 ***[[Officeオートメーション>Visual Basic for Applications (VBA)#g810ca4c]] [#rfbd6b21] Officeの場合は、[[Officeオートメーション>Visual Basic for Applications (VBA)#g810ca4c]]を使用する。 ***WWWブラウザのオートメーション [#be9d715b] 各種WWWブラウザでは、各種UIオートメーションのプロバイダが提供されている。 -IEの場合は、ProgID = InternetExplorer.Application の [[COM]]を使う。 -モダンブラウザの場合は、WebDriver(W3Cの勧告)が提供される。 -調べたら、 --IEにもWebDriverが提供されている([[COM]]はVBAから利用)。 --SeleniumBasicを使用すれば、VBAからSelenium → WebDriverが利用可能。 ***System.Windows.Automation [#p0b1c02d] -[[WPF]]には、System.Windows.Automationというプロバイダが提供されている。~ このUIオートメーションを利用することで、以下のアプリケーションのUIを操作できる。 --Win32 ---Windowsアプリケーション --.NET ---[[Windows Forms]]アプリケーション ---[[WPF]]アプリケーション -参考 --UIオートメーションによる自動UIテストの実践 - @IT~ http://www.atmarkit.co.jp/fdotnet/special/uiautomation/uiautomation_01.html **独自実装 [#nb28779d] UIオートメーションのライブラリを自作する場合。 -仕組みとしては、[[ウィンドウ・システムのDLL注入とAPIフックを仕様>ウィンドウ・システム#d5dfeb5c]]による。 -UIサブシステムによって値の取得・設定を行うUIオブジェクトの取得方法が異なる。 ***GDI [#ncb8500f] -[[Win32]] -[[Windows Forms]] ***独自描画 [#k8ab5101] -[[WPF]] -各種 WWWブラウザ **ツール類 [#nd6874d9] ***[[Selenium>#j963ec75]] [#bdb369cf] 上記の各種、UIオートメーション・プロバイダをラップした~ ドライバを使用してテスト・スクリプトを組む[[Selenium>#j963ec75]]というツールがある。 -昔は、各種WWWブラウザを対象としていた。 -[[Selenium IDE>#j6cb8cf7]]というツールで、容易に、~ テスト・シナリオを開発できるようになっている。 -Window10から[[Selenium>#j963ec75]]から利用可能な~ [[Windows Application Driver>#ice53aad]]が提供され、~ [[Selenium>#j963ec75]]でテスト・スクリプトを組むことができるようになっている。 ***[[Windows Application Driver>#p3762b0b]] [#ice53aad] -UI テストの自動化を可能にするオープン スタンダード ベースのツール。 -Windows 10 上であらゆるアプリケーションの UI テストを自動で実施できる。 -オープン スタンダードをサポートしているため、~ Appium や Selenium などの既存の UI テスト自動化ツールや好みの言語~ を使用してWindows アプリケーション用のテストを記述できる。 *応用 [#a7f45370] 以下で使用されている。 **テスト [#p2950b60] 基本的には「レグレッション(回帰)テスト系」に応用されることが多い。 ***Coded UI Test [#q320311e] -また、Visual Studio 同梱の機能に >コード化された UI テスト(Coded UI Test) >がある。 -参考 --wpf - Microsoft UI Automation Library Vs Coded UI Test - Stack Overflow~ http://stackoverflow.com/questions/4909206/microsoft-ui-automation-library-vs-coded-ui-test -こちらを参照すると、 --コード化された UI テスト(Coded UI Test)は、~ UI Automation Libraryをランタイムとして使用する機能であることが解る。 --エントリ系の自動化に特化した用途であれば、有用である可能性がある。~ #UIテスト自動化の導入方針の「使い捨て前提で適用シーンを絞り込んで利用」に合致。 -参考 --コード化された UI テストと操作の記録でサポートされている構成とプラットフォーム~ http://msdn.microsoft.com/ja-jp/library/vstudio/dd380742.aspx ---要件:Visual Studio Ultimate, Visual Studio Premium ***, etc. [#l1d0c110] **スクレイピング [#y716734b] 次いで、スクレイピング技術が主要な応用先となっている。 ***Octoparse [#i792082d] -コードを書くことなくウェブサイトからデータを抽出できるスクレイピングツール -出したデータは、Octoparseのクラウドサーバーに保存され、 -Excel、JSON、CSV、HTML、データベースなどの構造化形式のファイルでエクスポートできる。 -参考 --Octoparse - Wikipedia~ https://ja.wikipedia.org/wiki/Octoparse ***, etc. [#edca012b] **UIマッシュアップ [#j09dfa7c] [[スクレイピング>#y716734b]]技術を応用したものと言える。 ***Unified Service Desk [#mc8e5052] Dynamics CRMのコールセンター・システムのUIマッシュアップ機能 ***, etc. [#gefcb726] **[[RPA>RPA (Robotic Process Automation)]] [#ac7dfb9e] 画面[[スクレイピング>#y716734b]]技術の大幅な技術的進化と言われている。 ***[[WinActor>RPA (Robotic Process Automation)#odc87a65]] [#h8065a49] ***[[UiPath>RPA (Robotic Process Automation)#a79d1fcb]] [#l78bca2c] ***[[Automation Anywhere>RPA (Robotic Process Automation)#qbf981f4]] [#h935cced] ***[[Power Automate>RPA (Robotic Process Automation)#d46b14d1]] [#g9cb537b] *参考 [#qcd8c64d] -UIオートメーションによる自動UIテストの実践(1/3) - @IT~ http://www.atmarkit.co.jp/fdotnet/special/uiautomation/uiautomation_01.html **Microsoft Docs [#v770727b] -UI オートメーションの基礎~ https://docs.microsoft.com/ja-jp/dotnet/framework/ui-automation/ui-automation-fundamentals --UI オートメーションの概要~ https://docs.microsoft.com/ja-jp/dotnet/framework/ui-automation/ui-automation-overview --UI オートメーションによる自動テスト~ https://docs.microsoft.com/ja-jp/dotnet/framework/ui-automation/using-ui-automation-for-automated-testing **Selenium [#j963ec75] -WebのUIテスト自動化 - Seleniumを使ってみる~ https://qiita.com/edo_m18/items/ba7d8a95818e9c0552d9 -オープンソースの自動テストツール/Seleniumとは~ https://www.ossnews.jp/oss_info/Selenium ***Selenium IDE [#j6cb8cf7] -ブラウザ拡張Selenium IDEでユーザー操作を記録・再現できる!~ UIテストの自動化に活用しよう - ICS MEDIA~ https://ics.media/entry/17626 -[2018年時点] SeleniumIDE についてまとめてみた~ https://qiita.com/gluelan2013/items/0513c5331b6a67086308 -Selenium IDEで「はじめよう自動化」~ https://qiita.com/takeya0x86/items/486e91ae3cb272372ced **Windows Application Driver [#p3762b0b] -【C#】WinAppDriverの使い方 | 思い立ったが吉日~ https://miko.info/?p=1600 -Windows Application Driver を正式にリリース - Windows Blog for Japan~ https://blogs.windows.com/japan/2017/11/09/windows-application-driver-no-longer-beta/ -Windows Application DriverでWindowsアプリケーションのテストを自動化しよう~ https://qiita.com/ootaken/items/33099fcbd730e775e4db --Windows Application Driver (WinAppDriver) を利用してウインドウズアプリを操作する~ https://qiita.com/kobanyan/items/0cd806cc29bae936836c ---- Tags: [[:テスト]], [[:デバッグ]], [[.NET開発]], [[:ツール類]], [[:その他、開発の色々]]