UiPathによるマルチブラウザテストの自動化方法 3選 #4

みなさん、こんにちわ！

この記事はUiPathブログ発信チャレンジ2021サマーの25日目です。
UiPath Test Suiteによるアプリケーションテスト自動化において、UiPath Platform のシナジー効果を活かした活用法を、いくつかの構成でご紹介します。本記事は色んなブラウザ（IE、Chrome、Edge、Firefox）でWebアプリケーションのテストをするステップです。

尚、本記事の内容はテスト自動化だけではなく、例えばIEからEdgeへの移行の際も役立つ情報になっています。

# ブラウザの種類をパラメータ化する方法

「ブラウザーにアタッチ」アクティビティのプロパティの「ブラウザの種類」を変数化し、これを動的に切り替える方法です。
![変数化.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/12d5c1ef-72d9-8813-fe2e-df0e00345463.png)


***メリット***
変数化しているので、１つのテストケースで動的に切替可能です。
例えば、Orchestratorの引数設定から、テストしたいブラウザの種類を設定することにより、テストするブラウザを切替ることができると言うことです。

***デメリット***
「ブラウザーにアタッチ」アクティビティのプロパティ「ブラウザの種類」を変数化する作業が必要となります。更に、この方法はUi Automationクラッシック限定です。つまり、今後、利用が多くなるUi Automationモダンでは適用できないと言うことです。

# ランタイムブラウザーを設定する方法
プロジェクト設定のUi Automationクラッシックにある[ランタイムブラウザー]オプションを使用するだけで、ターゲットブラウザに切り替えることができます。すべての特定のセレクターとアクティビティは、実行時に自動的に切り替えられます。
![ランタイムブラウザー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/c0e92216-cbfb-8019-3436-34c333da909e.png)

:::note warn
UiPath Community2021.6プレビュー版から利用可能です。 
:::


***メリット***
プロジェクト設定の[ランタイムブラウザー]オプションのブラウザの種類を選択するだけなので、テストコードを修正せずに簡単に切り替えることができます。

***デメリット***
Studioのバージョンアップが必要です。製品版は21.10LTSからとなりそうです。
また、ブラウザの種類はプロジェクトで単一設定です。つまり、パブリッシュする際にテストしたいブラウザタイプ毎のパッケージ名（プロジェクト名）変更する等が必要になります。更に、この方法はUi Automationクラッシック限定です。今後、利用が多くなるUi Automationモダンでは適用できないと言うことです。Ui Automationモダンでの対応をUiPath社にリクエスト中です。

:::note warn
Ui Automationクラッシックのランタイムブラウザーが設定されている場合は、そのプロジェクトでは、強制的にランタイムブラウザーで設定したブラウザで動作します。
:::

:::note
2022/7/23追記
2022.4LTSからモダンでも利用可能になりました！
::: 


# ブラウザ移行ツールでテストコードを変換する方法

ブラウザ移行ツールを使用して変換したテストコードができます。
ブラウザ移行ツールはIE、Chrome、Edge、Firefoxを対象とするXAMLファイルをChrome、Edge、Firefoxを対象とするXAMLファイルに変換するシンプルなスタンドアロンツールです。バージョンは例えば18.4、19.10、20.10、21.4のStudioまたはUIAutomationで生成されたXAMLファイルで使用できます。
![移行ツール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/39b80623-c8a4-5df7-1223-fcbb91ce6e01.png)

***＜入手方法＞***
Automation Cloudの「リソースセンター」からダウンロードできます。
![移行ツール場所.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639319/909be59f-d336-bfce-807b-25b666a2c1a9.png)


***＜変換される範囲＞***

+ 'app'プロパティを更新して、<html…>セレクターを移行します。

+ 「ブラウザを開く」/「ブラウザを接続する」アクティビティのBrowserTypeプロパティを変更します。

+ 変数のデフォルト値を「sourceBrowser」から「targetBrowser」に変更します。

+ 「sourceBrowser」プロセスを対象とするKillProcessアクティビティを更新します。

***メリット***
Studioのバージョンアップは不要です。
Ui Automationクラッシックのみならず、こちらはUi Automationモダンでも利用できます。
プロジェクトのサブフォルダを含むXamlを一括して変換もできます。

***デメリット***
テストコードを変換するので、テストしたいブラウザ毎にテストコードができてしまいます。ベースで変更するテストコードを決めて置き、他のブラウザでテストするテストコードに変換して利用することになるかと思います。
オブジェクトリポジトリ利用時は、現在は未だ対応されていません。つまり、Xaml変換を実行しても、要素記述子のあるオブジェクトリポジトリは、そのままなので、実行時に機能しません。これについての対応は、UiPath社にリクエスト中です。

:::note warn
Ui Automationクラッシックのランタイムブラウザーが設定されている場合は、当然、変換してもランタイムブラウザーが優先して機能します。
:::

:::note info
2021年6月15日 - 7月16日の間で開催された「UiPath Developer Conference 2021」の「UiPath Test Suite がよくわかる！テスト10選」のセッションで説明のあったマルチブラウザ対応の具体的な方法を記事化しました。
:::


# おわりに
UiPath Test Suiteでテスト自動化を進められる方は、UiPath Platformを理解して置くと、効率的な活用方法が実現できたりします。本記事はマルチブラウザテストの自動化方法を３選でご紹介しました。あなたの最適な方法がありましたか。

UiPath Test Suiteによるアプリケーションテスト自動化については、下記コラムもご参考に！

https://www.fsi.co.jp/blog/5942/

https://www.fsi.co.jp/blog/5963/

https://qiita.com/Jun96427231/items/6d68eac5d1cecc2de64f

https://qiita.com/Jun96427231/items/6dc41df8be321825db94

https://qiita.com/Jun96427231/items/ec4b074932ff63628e5a

https://qiita.com/Jun96427231/items/a4b4cfa62065204aa1e9