見出し画像

①Azure DevOpsを利用してAllure x Pytestを使ったテスト自動化環境構築(Windows Server構築編)


はじめに

こんにちは、SHIFTの自動化エンジニアの竹川です。

昨年末より入社、現在は客先でアーキテクトとしてお仕事をさせていただいています。得意分野はTerraformやAnsibleを使った環境構築自動化です。

今後、日々の業務で研究した事、詰まった事などを共有していきたいと思いますのでよろしくお願いします。
さて、今回はAzure DevOpsを利用したテスト自動化環境の構築のご紹介をさせていただきます。

関連記事

本記事の目的

CI/CDを構築するための世の中に出ている参考例はほぼLinux環境向けのものが多い印象です。 しかしながら、筆者が経験した現場ではWindows環境上でCI/CDを構築する状況となり、Linux感覚で作業を進めたところかなりの苦労が あったため記事にさせていただきました。

筆者と同じ状況で困っていた人やこれからCI/CDを始めたいけどLinux経験がない人向けにご参考になれば幸いです。


アーキテクチャ

アーキテクチャはAzure DevOpsを利用して基礎となるパイプラインを構築し、テストプログラムをPythonのテストフレームワークのPytestで実装、Allure Frameworkというレポートフレームワークでテスト結果をレポーティング、Azure Storageへ静的コンテンツとしてAllureで生成されたレポートを公開する仕組みとなります。

Azure DevOps とは

2018年9月10日にMicrosoftより発表されたテストからビルドまでのタスク全体の自動化、リリース管理など、ソフトウェア開発プロジェクトを管理するための統合サービスとなります。 こちらは旧Visual Studio Team Services (VSTS)から発展したもので主なサービスとして「Azure Boards」、「Azure Repos」、「Azure Pipelines」、「Azure Test Plans」、「Azure Artifacts」があります。

Azure Pipelines agentsについて

Azure Pipelinesを利用するためには事前にパイプラインを実行する端末を用意する必要があります。Azure Pipelinesではパイプラインの実行端末の総称をAzure Pipelines agentsと呼びます。 エージェントには「Microsoft-hosted エージェント」、「Self-hosted エージェント」、「Azure virtual machine scale set エージェント」と3種類あります。

今回は「Self-hosted エージェント」で構築していきます。その理由はWindows環境でパイプラインを構築する際にエラーの原因を追求するために実機にログインしないとデバッグが困難になるためです。

■エージェントの種類

※Azure Pipelinesエージェントの詳細についてはこちらをご参照ください。

Windows Server 2022 構築

それでは「Self-hosted エージェント 」となるマシンを構築したいと思います。今回用意するマシンは「Windows Server 2022」となります。 Windows Serverの構築については基本的にGUIとなるため、作業が単調になりますがめげずにお付き合いください。 また、いくつか注意事項がございますので確認のうえご参考していただけると幸いです。

★注意事項

・仮想サーバー、ストレージなどのAzureで構築するサービスについては料金を確認のうえ、ご対応ください。
・接続許可設定、権限周りについては適切な設定のうえ、ご対応ください。

1. 仮想マシンの構築

Azure Portalへログインし、ヘッダにある検索窓で「Virtual Machines」を入力 フォームのサービスに「Virtual Machines」が表示されたら該当部分をクリック

Virtual Machinesの画面で作成ボタン > Azure仮想マシンの順にクリック

サブスクリプション、リソースグループ、仮想マシン名、地域、イメージ、サイズ、ユーザー名、パスワード、パスワードの確認に適切なものを入力して「次:ディスク」ボタンをクリック
※イメージについてはOSがWindows Server 2022をインストールされているイメージをご利用ください。

ディスクの設定が必要なかた以外は「次:ネットワーク」ボタンをクリック

仮想ネットワーク、サブネット、受信ポートを選択を適切な値を入力し、「次:管理」ボタンをクリック
※今回はRDPのポートはデフォルトの3389で設定しています。

「次:詳細」ボタンをクリック

「次:タグ」ボタンをクリック

名前、値に適切な値を入力し、「確認および作成」ボタンをクリック
※マシン名を識別するために例のように名前はName、値は任意の名称を入力してください

内容を確認して「作成」ボタンをクリック

2. Windows Server 2022 日本語化

仮想マシン一覧 > マシン名 をクリック 詳細画面が表示されたら左メニューにて実行コマンドをクリック

画面が切り替わったら「RunPowerShellScript」の行を選択

PowerShellスクリプト欄に以下内容を入力し、実行ボタンをクリック

#ユーザーが使用する言語を日本語に設定
Set-WinUserLanguageList -LanguageList ja-JP,en-US -Force

#入力する言語を日本語で上書きに設定
Set-WinDefaultInputMethodOverride -InputTip "0411:00000411"

#サーバーを再起動
Restart-Computer 

実行ボタンクリック後、「スクリプト実行が完了しました」と表示されたら仮想マシン一覧へ遷移し、対象のインスタンスの状態が実行中になったら次項を実施してください。

再び仮想マシン一覧 > マシン名 をクリック 詳細画面が表示されたら左メニューにて実行コマンドをクリック

画面が切り替わったら「RunPowerShellScript」の行を選択

PowerShellスクリプト欄に以下内容を入力し、実行ボタンをクリック

#UIの言語を日本語で上書きに設定
Set-WinUILanguageOverride -Language ja-JP

#時刻/日付の形式をWindowsの言語と同一に設定
Set-WinCultureFromLanguageListOptOut -OptOut $False

#ロケーションを日本に設定
Set-WinHomeLocation -GeoId 0x7A

#システムロケールを日本に設定
Set-WinSystemLocale -SystemLocale ja-JP

#タイムゾーンを東京に設定
Set-TimeZone -Id "Tokyo Standard Time"

#サーバーを再起動
Restart-Computer

仮想マシン一覧へ遷移し、対象のIPアドレスを控えてください

Windows + Rキーを入力し、「mstsc」を入力してOKボタンクリック

仮想マシン一覧で控えたIPアドレスを入力し、オプション表示をクリック

コンピューター、ユーザー名を入力し、接続ボタンをクリック

パスワードを入力し、OKボタンをクリック

はいをクリック

ログイン後、検索窓で「Language settings」を入力し、検索結果にて同様の文字が表示されている行を選択

Language画面にて「Add a language」をクリック

小ウィンドウが表示されたらテキスト欄にJapaneseを入力し、日本語という文字が表示されたら該当部分をクリック

「Next」ボタンをクリック

すべての項目をチェックして「Install」ボタンをクリック

下記のような画面が表示されたら「Yes sign out now」をクリック

サインアウトされるので再度リモートデスクトップで接続

ログイン後、日本語が表示されたら完了となります。

次回のお知らせ

今回はここまでとなります。

Windows Serverの構築はGUIなため、手順が多くて大変でしたね!

次回は、【②Azure DevOpsを利用してAllure x Pytestを使ったテスト自動化環境構築(self-hosted-agentセットアップ編)】 をご紹介したいと思います!

最後までお読みいただき、ありがとうございました。

【次回の記事はこちら】


執筆者プロフィール:Shinya Takekawa
前職ではERPパッケージのクラウドサービスの運用を3年経験 SHIFTでは、自動化エンジニアとして入社し、RPA、CI/CD、テストプログラム開発など案件に応じて従事しています。
得意な事としてはTerraform、Ansibleを使ったインフラ構築の自動化技術です。 CI/CDを中心とした自動化の技術に興味があり、日々勉強をしています。 研究した内容を広めて皆様に貢献できたらと思っています。

お問合せはお気軽に
https://service.shiftinc.jp/contact/

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/