見出し画像

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

SHIFT Group 技術ブログ

はじめに

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

前回のPython x Allure環境構築編はいかがでしたか?今回も引き続き「Azure DevOpsを利用してAllure x Pytestを使ったテスト自動化環境構築」をご紹介したいと思います。

本記事の目的

前回の章ではWindows Server2022上にPython、Pytest、Allure、Powershell Azモジュールの実行環境の構築をしました。今回の章ではAllureで出力されるE2Eテストのレポート結果の静的HTMLをホスティングするための 「Azure Storage」の構築方法とAzure Pipelinesと連携するための「Service Connection」作成方法について解説させていただきます。

Service ConnectionとはAzure Pipelinesから Azure Storageへ接続するための設定となります。

Azure Storageの接続方法にはサービスプリンシパルを設定する方法と似ていますが、設定方法と用語が結びつかなく 筆者も大変混乱したため、整理させていただきました。是非、同じような悩みをお持ちのかたに参考にしていただけると幸いです。

Azure Storageとは

Azure StorageはAzureが提供するクラウド上のストレージサービスで「BLOB」「FILE」「QUEUE」「TABLE」の4種類のストレージがあります。
Amazon Web Serviceで言うとS3にあたるサービスになります。

当記事ではAllureで生成された静的HTMLを公開する形式のため、「BLOB」を利用していきます。

Azure Storage構築

1. ストレージアカウント作成

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

ヘッダにある「+作成」ボタンをクリック

サブスクリプション、リソースグループ、ストレージアカウント名、地域を任意のものを入力、パフォーマンス:Standard、冗長性(ローカル冗長ストレージ(LRS)に 設定して「次へ:詳細設定」ボタンをクリック
※ストレージアカウント名は控えてください。
※冗長性の種類の説明についてはこちらをご参照ください

デフォルトのままで「次へ:ネットワーク」ボタンをクリック

デフォルトのままで「次へ:データ保護」ボタンをクリック

デフォルトのままで「次へ:暗号化」ボタンをクリック

デフォルトのままで「次へ:タグ」ボタンをクリック

リソースを識別するために名前にName、値は任意のものを入力し、「次へ:確認及び作成」ボタンをクリック

「検証に成功しました」が表示されたら「作成」ボタンクリック

左メニュー > 静的Webサイトをクリック

静的なWebサイトをクリックして有効に変更

インデックス ドキュメント名に「index.html」を入力し、「保存」ボタンをクリック

Azure Storageコンテナ名、プライマリ エンドポイントを控えてください

2. Service Connection作成

Azure PipelinesからAzure Storageへ接続するにはService Connectionを作成する必要があります。Service ConnectionはAzureの外部サービス、権限の付与を設定ができます。 今回はAzureStorageのサービスを接続できるService Connectionを作成していきます。

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

「My Azure DevOps Organizations」をクリック

作成したプロジェクトを選択

左メニューの下部にある「Project settings」をクリック

「Service Connections」をクリック

「Create Service Connection」ボタンをクリック

「Azure Resource Manager」ボタンをクリック

画面を下にスクロールし、「Next」ボタンをクリック

「Service principal(automatic)」を選択し、「Next」ボタンをクリック

サイインイン画面のポップアップが表示されるのでAzureを契約しているアカウントでログインして「次へ」ボタンをクリック
※1.ログインポップアップが表示されない場合、ブラウザの設定でポップアップがブロックされていないかご確認ください。
※2.契約アカウントによっては2要素認証が設定されているため、サインイン画面のキャプチャは割愛いたします。

Scopeを「Subscription」、Subscription、Resource group、Service Connection nameを任意の文字を入力、Securityの「Grant access permission to all pipelines」を選択し、「Save」ボタンをクリック
※「Service Connection name」は後ほど利用するため控えてください。

Service Connections一覧にて作成したService Connectionをクリック

「Manage Service Principal」をクリック

表示名をコピーして控えてください

Service Connectionの画面へ戻り、「Manage service connection roles」をクリック

「ロールの割り当ての追加」ボタンをクリック

「ストレージ BLOB データ共同作成者」を選択し、「次へ」ボタンをクリック

「+メンバーを選択する」ボタンをクリック

前項で控えたサービスプリンシパルを検索して選択

「選択」ボタンをクリック

「レビューと割り当て」ボタンをクリック

「レビューと割り当て」ボタンをクリック

次回のお知らせ

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

「Azure Storage」でストレージアカウント作成、「Azure DevOps」権限設定をしてきました。 実際に動いているものがないのでしっくりとはまだこないですね!手作業が多いところも気になりますが、これらの作業もAPIやCLIが提供されているので自動化が可能です。 慣れたら自動化なども検討してみてください。

次回は、【⑤Azure DevOpsを利用してAllure x Pytestを使ったテスト自動化環境構築(Microsoft Teams通知設定編)】 をご紹介したいと思います!

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


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


みんなにも読んでほしいですか?

オススメした記事はフォロワーのタイムラインに表示されます!
SHIFT Group 技術ブログ
「無駄をなくしたスマートな社会の実現」を目指し、ソフトウェア製品の開発、運用、マーケティングなどあらゆる立場から携わるSHIFT Groupの公式note。エンタメ・ゲーム業界から、Web系、金融/製造/小売りなどのエンタープライズ業界まで広い知見を活かした情報を発信しています。