kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

TestBase for Microsoft 365を試してみる

TestBaseとは

for Office 365といわれていたころから一応あることは知っていましたが、Entraに紐づくサブスクリプションがなかったのと、ちょっとお高めのイメージがあったので、使えなかったんですよね。お仕事で試せる機会があればと思っていましたが、Armデバイスのプレビューが始まった時に申し込みの機会があったので申し込んでみました。今回はArmでのテストではありません(プレビュー通ればやってみます)。

learn.microsoft.com

ドキュメントに「Azureサービスです」と書かれている通り、使うのはAzureポータルからです。サインアップすると100時間くらいの無料枠が付いてくるようです。なんでAzureに含まれるサービスではありますが、Intuneへのデプロイ前にカスタムアプリケーションのテストに使えるので、E2Eテスト環境として最適です。

似たものとしてAzure PipelineがサポートするDeployment Groupおよび、Azure Playwrite Testingサービス(プレビュー)というものがあります。

learn.microsoft.com

azure.microsoft.com

TestBase Deployment Group PlayWrite Testing
テスト対象 - クライアントOS
- サーバーOS
- プレビューOS
いずれもWindows
任意のOS PlayWriteでサポートされているWindows/Linux
独自OSイメージ 不可
対象アプリ Storeおよび、Windowsアプリ, Webも頑張れば? デプロイ対象で動くもの任意 Webのみ
価格 無料枠ありの有料 対象VMの料金とPipelineの料金 最初の100分は30日無料。そのあと分単位の従量課金
CI統合 SDKはあるので頑張る サポート サポート

用途に応じてサービスを使い分けることになります。TestBaseとしては組織内や販売するアプリケーションの展開前テストという意味合いが強いでしょうか。もちろんMicrosoft 365 Apps(Officeアプリ)も含まれるので、Officeアプリケーションのアドイン(もう基本的に廃止方向ですが)との互換テストにもいいと思います。ただ、OSは英語になるはずなので、自分で言語設定変えるスクリプト入れ込むか、カスタムイメージを用意するとなるとちょっとつらいでしょうね。

使用してみる

AzureポータルからTestBaseアカウントを作ってパッケージをアップロードしてみます。今回はMicrosoftが用意しているサンプル(テストスクリプトが入っているzipをアップロードしてテストする)でやってみます。

github.com

アカウント作成後、Upload pre-build packageを選択します。どれを選んでも次の画面で変更できるので問題ありません。

所定のフォルダー構成とスクリプト名で圧縮したzipファイルを選択してアップロード、パッケージ名とバージョンを決めます。セマンティックバージョン推奨です。なお、余談ですがこの画面で「やっぱりやめた」とキャンセルするとTestBaseのNew Package一覧にごみが残るので気を付けてください(気づいたら数個残っていた…)。

packega sourceでIntuneのパッケージや普通のwin32アプリケーション、wingetのリポジトリからも選択可能です。

例えばPackerとか。一つ注意しなければならないのは、「WinGetに公開されているバージョンが即時反映されていないっぽい」ということです。例えばGoLang 1.20.8や1.20.9がありません。wingetレポジトリにはあります。

github.com

同期されていないこともあるようです。

次は何のテストをするかです。今回はOut of Box(スクリプト外のアプリ)のテストを選びます。ちなみにMicrosoftのサンプルではストアのToDoアプリをテストします。Functional(機能テスト)やFlow Drivenも同時に選択可能です。

今回は使いませんが、Office入りが必要であれば、Pre-install Microsoft appsを有効にして対象のOfficeのアーキテクチャやチャネルを選択します。

テストスクリプトにはルールがあります。終了時(close)、インストール時(install)、起動時(launch)、削除時(uninstall)それぞれに従ってスクリプトの編集を行います。今回は出来上がったスクリプトの名前から自動判定してくれたので、そのままです。

Windowsには毎月パッチと年に一度の機能更新があります。そのどちらか、あるいは両方をテストするかどうかです。

セキュリティ更新の対象となるOS、機能更新の対象となるOSを一つ以上選択します。

これはどのOSからの更新かというベースラインイメージの選択です。OSの機能更新を選択した場合は必須です。

これで保存すれば完了です。

Varidationが実行されます。これがかなり長いです。割と単純なスクリプトだと思ったのですが1時間くらいしてやっとreadyになりました。

右端のRun on requestをクリックしてもまだComming soonでした…。

でも一応varidationが終わった時点で動き出しているようで、ちゃんとこんな風にテスト中の状態が見えます。

まとめ

複数のバージョンのWindows Client OSやServer OSを用意して、インストールテストするのは大変だと思います。TestBaseはそういうところでうまく使えそうです。

CIと絡めたパッケージの更新やIntune使った展開もやってみたいですね。

2023/11/5 追記(テスト結果)

8時間くらいかかって終了していました。今回のパッチではセキュリティパッチ検証1台につき1時間ちょっとかかっていますね。機能更新でも同じくらいかかっています。Build versionもしっかり10月のBパッチを使っていますね。

こちらは実行したときの様子です。信頼性、メモリ使用量(8GBのVMですね)、CPU使用状況の比較もできます。同じTo DoでもOSバージョンによって結構誓いが見て取れます。今回は起動テストだけですね。

ログや実行したときの動画もダウンロードできます。割と大きいファイルになります。今回どちらも60MBくらいのzipでした。アプリ起動までに結構待つもんですね。スクリプトなのかな。今回のテストでは800x600くらいの動画になっていましたが、変えられるのかな。

結構面白いですね。セキュリティパッチどのくらいでTestBaseにリリースされるのかわかりませんが、CIと関連させてテストできれば使いどころはあると思います。