RanorexとTestRailの連携を試してみた

# はじめに
テスト自動化を進めていくと、単に操作の自動化だけでなく、以下のような部分も効率化したくなってきます。
・自動化テスト仕様書の更新漏れがあり、自動化したテストスクリプトとテスト仕様書の差が出てしまった
・そもそもテストスクリプトとドキュメントをそれぞれ更新するのが面倒
・自動テストケースの結果(OK/NG)も、自動で更新したい
・手動テストも含め、テスト全体の内容を一括管理したい

今回は、これらの課題に対応できそうな、テスト自動化ツールRanorexとテスト管理ツールTestRailの連携の機能を試してみました。

# Ranorex とは？
Ranorexは「UIテスト自動化ツール」です。デスクトップ/Web/モバイルアプリに対応しています。テスト対象アプリに対し、Ranorexでキーボードやマウスの操作をおこなうことでテストの作成/実行がおこなえます。
・Ranorex
https://ranorex.techmatrix.jp/

# TestRailとは？
TestRailは「ブラウザベースのテスト管理ツール」です。
テスト仕様書は、Excel表で管理することも多いかと思いますが、TestRailを使用すればブラウザ上でテストケースを管理することができます。
・TestRail
https://www.techmatrix.co.jp/product/testrail/

# アジェンダ
1. RanorexとTestRailの連携方法
2. TestRailのテストケースをRanorexへインポート
3. Ranorexでのテスト作成
4. Ranorexでのテスト実行＋TestRailへのテスト結果の自動登録
5. まとめ

# 1. RanorexとTestRailの連携方法
RanorexとTestRailを連携する場合、Ranorexから設定をおこないます。

1. Ranorex Studioを起動し、連携したいソリューションを開きます。
2. [ツール]-[TestRail連携]-[TestRailウィザードの開始]を選択します。
![02_Rx_TestRail連携.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826211/166fe6fa-5647-c2d1-a986-11463c9e251d.png)
3.TestRail ウィザードが開かれます。[続行]を選択します。
![03_TestRailウィザード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826211/d3b94107-7728-2eed-5e2d-abd667ba09c9.png)
4.TestRailへの接続画面が表示されます。URL/Email/パスワードを設定し、接続します。
![04_TestRail接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826211/3324e2af-a561-2a5c-7034-4bf9a4f69479.png)
上記手順により、接続が完了します。

# 2. TestRailのテストケースをRanorexへインポート
TestRail上に登録されているテストケースをRanorexへインポートしてみます。
下図は、TestRailプロジェクトの管理画面です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826211/55af5eb7-5cfa-3e96-8e03-6e61c81c0edd.png)
一般的には、TestRailで管理したいソフトウェアプロジェクトごとに、プロジェクトを作成することが多いようです。今回は、4_Ranorex連携テスト プロジェクトを使用します。
4_Ranorex連携テストプロジェクトを開き、テストスイートとケース タブを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826211/ef7115f3-506c-47d8-eefb-f4feb42d8087.png)
ここでは、テストスイートの一覧が表示されます。今回は1つしかテストスイートが表示されていませんが、機能単位ごとなどでテストスイートを作成し、管理することができます。

テストスイートを開くと、以下の画面となります。テストスイート（RxDemoApp）の配下に、セクションとテストケースと呼ばれるものを登録します。セクションは、テストケースをグループ化する役割となります。テストケースは、テストの成功/失敗を登録する単位となります。
![TestRail画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826211/f4d1b293-8e60-d708-0ee0-4671b3ad786e.png)

TestRailのテストケースをRanorexへインポートする場合、Ranorexの画面から設定します。
1. TestRailとRanorexの連携方法と同様に、Ranorex側でTestRailウィザードを起動します。
2. 操作の選択画面が表示されるため、[Ranorex Studioへインポート]を選択します。
![01_インポート.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826211/4dcf991d-fd68-1187-6b97-8af9d63b9798.png)
3. Ranorex Studio へのインポート 画面が表示されます。
   本画面では、TestRail上で登録されているプロジェクトが表示されるため、インポートしたいテストスイートを選択します。
![02_インポート2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826211/d5cf7dfd-c174-77a7-ed3e-2d4f4c0a1e70.png)
4.インポート実施後、下図のようにRanorex Studio上にTestRailのテストケースがインポートされます。
![Ranorex画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826211/12b6b21d-ca3f-145c-b32f-48ea16c10eca.png)
簡単に、Ranorexのテスト構成を説明します。
・テストスイート→テストの構成を作る最上位のノード
・スマートフォルダ→テストシナリオをまとめるフォルダー
・テストケース→テストシナリオをまとめるフォルダー
　※テストケースは、テストの成功失敗の起点となる

TestRailのセクションがスマートフォルダ、TestRailのテストケースがRanorexでもテストケースとして登録されていることが確認できます。

# 3. Ranorexでのテスト作成
TestRailからインポートしたRanorexのテストスイート構成を使用し、テストを作成してみます。Ranorexでは、テストケースの配下にレコーディングモジュールと呼ばれるものを追加します。
レコーディングモジュールは、一般的にテストシナリオやテストスクリプトと呼ばれるものとなり、マウスやキーボードの操作を記録したものとなります。
![Ranorex画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826211/76aa33ed-57a8-749f-34df-fb30a232ce48.png)
"氏名入力"モジュールを開くと、下図のような操作手順（テストシナリオ）が登録されています。
![レコーディングモジュール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826211/a7ab9051-0675-2229-8158-68320789ba75.png)

# 4. Ranorexでのテスト実行＋TestRailへのテスト結果の自動登録
TestRailと連携済みのRanorexソリューションを使用し、テストを実行します。
Ranorexからテストを実行すると、自動的にTestRailへ結果が登録されます。
1. Ranorex上の実行ボタンをクリックし、テストを実行します。
![テスト実行.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826211/a78e9ab4-8137-969a-619b-10bf9b6aaa9b.png)
2. テスト実行後、Ranorexのレポートが自動生成されます。
結果として、エントリー数の確認が失敗しています。下図の通り、成功失敗の判断は、テストケース単位でおこなわれています。
![Ranorexレポート.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826211/e8b32128-1fc5-cd8c-37de-fe3981296ee9.png)

TestRail側を確認すると、テストランと結果 タブに結果が自動的に登録されています。
![TestRailの結果.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826211/38f10102-8937-e1d2-75e9-5e8164bcb38d.png)
登録された結果を開くと、Ranorexのレポートと同様に、エントリー数の確認ケースがFailedとして登録されています。また、テストケースを開くとRanorexで出力されているログ内容も自動的に登録されています。
![テストランと結果.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826211/092a2b3c-294e-1d2c-baa2-f4883a97e221.png)

# 5. まとめ
今回、TestRailで作成したテストケースをRanorex側にインポートしてみましたが、Ranorex上のインターフェースからRanorexとTestRailを簡単に連携することができました。
Excel表でテスト仕様書を管理している場合、テスト仕様書を基にRanorexへ手動でテストケースなどを作成していく必要がありますが、TestRailで作成したテストケースであればRanorexへ自動的に取り込むことができるため、Ranorex上でのテストケースの作成の手間が省けてとても便利です。
また、RanorexとTestRailを連携することで、Ranorexで実施した自動テストの結果は自動的にTestRailへ反映されるため、結果登録の手間も省けることを確認できました。
TestRailは、自動テストの管理に加え、手動テストの管理もおこなえるため、テストを一括管理できる点もテストを管理する上でとてもメリットかと思います。

RanorexとTestRailは、それぞれ無料で使用できる体験版が用意されているので、興味のある方は気軽に試すことができます。
[Ranorex 体験版ダウンロード](https://s.techmatrix.co.jp/form/RXtry0001IND?k3ad=RX_HEADER&_gl=1*19vc7yq*_gcl_au*MjExMTAwNDc2Ni4xNzE0NTQ1MTYz*_ga*NjkyOTU2MjE3LjE3MTQ1NDUxNjM.*_ga_0GKP80182F*MTcyMDA3NTE1Ny45NC4xLjE3MjAwNzUxNzMuNDQuMC4w)
[TestRail 体験版ダウンロード](https://www.techmatrix.co.jp/product/testrail/evaluation.html)