T-DASHのモバイルアプリの自動テスト機能をAmazon EC2で実行する手順(その２)

T-DASHで生成AI（Gemini 2.0 Flash）を使ったAndroidアプリの自動テストに関する記事です。

https://qiita.com/advent-calendar/2024/t-dash01

Qiita Advent Calendar 2024 【[今年もT-DASHを使ってみた！ by T-DASH Advent Calendar 2024](https://qiita.com/advent-calendar/2024/t-dash01)】の15日目の記事になります。

T-DASHを用いたユニークな取り組みとして、先日発表されたばかり、Googleの生成AI「Gemini 2.0 Flash」を統合したAndroidアプリの自動テスト方法を紹介します。これから生成AIを活用したアプリが増えていく中で生成AIの自動テストをモバイルアプリでどのように実現するのかは大きな課題ですよね？

この記事では、Gemini 2.0 Flashを活用した「サマリー生成アプリ」の環境構築から実行までの簡単な流れと、それをどのようにT-DASHに統合して自動テストを行うのかを知ることができます。

最終的にこちらのサンプルアプリとT-DASHを使って検証していきます。

https://github.com/google-gemini/generative-ai-android

:::note warn
前回の記事「T-DASHを使ってGemini最新版を使ったAndroidアプリの生成AI自動テストを行う手順(その１)」の続編となります。mac上で何をしてもT-DASHを利用できなかったので別のアプローチでモバイルアプリのテスト自動化を実現してみたいと思います。

前回はWineで無理やりWindows版を動かそうという試みでしたが、今回はVirtual Desktop環境を利用してクラウドベースでWindowsを動かして正規の手段でT-DASHのWindows版を動かして検証していきます。
:::


# T-DASHとは？

![スクリーンショット 2024-12-15 9.55.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/3c8a94b1-b1ec-232e-c31a-8ad0a1ba0e4c.png)

https://service.valtes.co.jp/t-dash/

一言でいうとノーコードのテスト自動化ツールです。競合のツールとしては[Mabl](https://www.mabl.com/ja/)や[Autify](https://autify.jp/)があります。

T-DASHの特徴としては

> 日本語で書いたテストケースがスクリプトになる

というのが特徴となっています。この記事ではコストや機能で競合ツールと比較したわけではありませんが、月額4,840円というのはテスト自動化をノーコードで始めるにはお手軽な価格帯に設定されていると思います。

# DaaS(Desktop as a Service)

近年DaaS(Desktop as a Service)という言葉もよく耳にする機会が増えてきましたね。昔は[シンクライアント（Thin Client）](https://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%B3%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88)などという名前で呼ばれていましたが最近は「DaaS」と呼ばれる事が多いようです。

簡単にいうと環境が動いているのはネットワーク越しのどこかクラウド上や自社データセンター、サーバールームなど、別の場所で動作しています。それをネットワーク越しにリモートデスクトップアプリなどを利用して、ログインし、あたかも手元で動作しているかのようにネットワーク越しのパソコンを操作するものになります。

# 三大クラウドのDaaSを比較（AWS・Azure・Google Cloud）

数多くのDaaSサービスがあり、一週間から一ヶ月程度のトライアル期間を設けているサービスも多くあります。今回は情報も多く、大手のクラウドサービスが提供している環境でセットアップしていきたいと思います。

https://ops.jig-saw.com/tech-cate/daas_cloud_comparison

AWS Workspace一択かと思っていましたがこちらのサイトの比較を見て、AWS EC2、Azure Virtual Machines、GCEのRDPファイルの３つの方式が環境構築難易度も低いのでおすすめです。

![スクリーンショット 2024-12-16 8.13.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/75fe6e80-15f2-049f-1e3a-1aee73ce0592.png)

上記サイトを参考にしつつ、Amazon EC2が最も歴史も長く、難易度が最も低そうということで、今回はEC2でWindowsを動かし、T-DASHのWindows版を動かすことにしたいと思います。

# Windows Appのインストール

https://apps.apple.com/us/app/windows-app/id1295203466

App StoreからWindows App（旧Remote Desktop）をインストールします

![2024-12-18_08-32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/b0624e32-0bc2-13e6-2a0e-e4f5977dd13f.png)

# Amazon EC2のセットアップ

## OS選択
Quick StartでWindowsを選択します。デフォルトだとMicrosoft Windows Server 2025 Baseというのが選択されました。
![2024-12-18_08-40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/cac65a1e-a087-bfde-012f-f5fab43eca32.png)

## インスタンス選択

今回はt3.xlargeを選択しました。利用目的や予算に合わせてインスタンスを選択すると良いでしょう。
![2024-12-18_08-41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/2e5794f3-df2e-8093-f7f4-eba7c68e1389.png)

実はこの前にコストを抑えようとt3.nanoでも動かそうとしたのですが、Windows Desktopとして動作させるにはスペックが低すぎてWindows自体まともに動きませんでした（長時間待てばなんとか動く程度）
![2024-12-18_08-43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/9884dea6-f6e4-d89f-d5b6-4061501ea9e3.png)

## キーペアの作成
![2024-12-18_08-48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/74aec6a9-57ad-aad8-24a3-8fa517b3ad58.png)

## ネットワーク設定
今回は事前に作成したものから選択します。設定がなければ作成して下さい。
![2024-12-18_09-36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/3db026ac-c937-a708-1802-283e78fa5de7.png)

## グローバルIPを設定
インスタンス起動後、グローバルIPを設定します。
![2024-12-18_08-52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/197f772f-beb3-3613-af96-a12390b1fcaa.png)

## 接続設定
![2024-12-18_09-37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/97de5adc-31ce-ffc6-b0bc-3d2e3914cbf8.png)

RDPクライアントを選択し、リモートデスクトップファイルをダウンロードします。

そして、Administrator用のパスワードを取得します。
![2024-12-18_09-35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/d18eace7-4ee5-f7df-06ab-5ba761638cd7.png)

## Windowsに接続

↑でダウンロードしたリモートデスクトップファイルを実行すると事前にインストールしたWindows Appが起動しログインを求められます。
![2024-12-18_08-59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/a3108ae3-3c04-bf81-3c42-e309c844ccde.png)

OSが起動する画面ってワクワクしますよね。
![2024-12-18_09-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/f401c802-2d6a-9dbe-e758-6002481e9ba3.png)

デスクトップ画面が開きました
![2024-12-18_09-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/d728a30d-aa50-96db-7c7e-97ccb56231ea.png)

# T-DASH(Windows版)のインストール

## T-DASHにログイン
![2024-12-18_09-04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/e2f90d5c-bb53-1c6b-01d8-97ad12daa096.png)

## T-DASHアプリをダウンロード
![2024-12-18_09-04_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/ca8933c8-a93e-dca4-23ce-6da2df57d9c4.png)

## T-DASHアプリをインストール
![2024-12-18_09-06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/6aaa2ed9-db38-603b-73ab-1ea32a97f1ae.png)

動作環境がWindowsサーバーということが少し気になっていましたが順調にインストールが進みます

![2024-12-18_09-07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/317d1c9f-da5c-dc02-1406-b425241fdc0f.png)

無事に完了です

![2024-12-18_09-08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/967f9c5d-10f9-f561-2ce7-6ec32f1a4d90.png)

## 起動
![2024-12-18_09-09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/68d47c94-834f-bacc-739d-50999d1fb658.png)

無事に起動してブラウザで認証画面が開きました
![2024-12-18_09-09_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/462b32ce-3f3a-1fbe-e90b-ca437d46d26b.png)

## 端末IDの確認

前回の記事ではWine上で動かした際に端末IDが取得できずに認証することが出来ませんでしたが、今回は正規のWindows上で動かしているので問題なく端末IDも取得できています（モザイクで見えませんが、実際には表示されています）

![2024-12-18_09-10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/afe9b91a-5eae-2ab0-ef8b-834a996b839e.png)

問題なく認証も通ります

![2024-12-18_09-12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/9eec7ee4-9d0d-bf27-c342-ef766c142253.png)

## ログイン成功
![2024-12-18_09-13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/9473ec5f-6e4c-5003-be29-94b10a41d9d0.png)

## プロジェクト作成
ついに！Mac版ではなかったプロジェクト種類という項目が表示されました。
![2024-12-18_09-14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/578c3b12-75c1-5794-efa7-a961968c79c1.png)

## プロジェクト種類の選択
プロジェクト種類を選択すると「Webアプリ」「Windowsアプリ」「Androidアプリ [Beta版]」と３種類から選択出来ます。Windowsアプリも検証できるのですね。

Mac版ではWebアプリ一択だったことを考えると、WindowsアプリやAndroidアプリなど、コンシューマ向けよりはBtoB向けのシステムとかに使われることを主に想定されているのかもしれません。

まずはAndroidアプリを選択して先に進みましょう
![2024-12-18_09-16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/7cddc502-c235-d24a-3b70-7eb640787f2d.png)

## Androidアプリ [Beta版]
待ちに待ったこの画面。ようやくたどり着きました。
![2024-12-18_09-19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/9d0430f1-337d-7131-25b2-586ae65f0f7e.png)

## アプリ種別
アプリ種別とは何でしょうか？Apk以外に何かあるかな？と思ったのですが、Apkをインストールする方法とインストール済アプリを選択する方法があるようです
![2024-12-18_09-20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/8f4bc4c3-b1ac-7428-655b-6d02d48dcb31.png)

### Apkファイル
Apkファイルを選択する場合はファイル選択ダイアログが表示されてapkファイルを選択するようになっています
![2024-12-18_09-23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/53f65d19-bcfc-d3d3-d5aa-263b4d807770.png)

### インストール済アプリ
インストール済アプリの場合はパッケージ名とActivity名を設定するようになっているようです。
![2024-12-18_09-24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/bc6d515b-240c-cb61-5132-7983d7475572.png)

## アプリ種別の使い分け
事前にインストールしたアプリを検証する場合はインストール済アプリを実行する流れとなります。この場合、開発メンバーにパッケージ名とActivity名を事前に確認しておく必要があります。

自動テストを行う場合でもアプリバージョンを固定して、例えばAPIサーバーの変更により動きが変わっていないことを検証する場合には、手間もかからないのでインストール済アプリの方式で検証するのが良さそうです。

逆にアプリのバージョンが変わっても動作が問題ないことを確認するという場合にはApkファイルを選択して実行するという使い分けが簡単に出来そうです。

# まとめ
Amazon EC2でWindowsを動かしてリモート接続することで、MacやLinux、スペックが低い端末しかない状況でも動作させることが可能となることがわかりました。試していませんが、リモートデスクトップに接続できればよいので、iPadやスマホからでもEC2に接続してT-DASHを利用することが可能になります。

次の記事では、いよいよモバイルアプリの検証をT-DASHを使って行いたいと思います。