見出し画像

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


はじめに

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

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

関連記事


本記事の目的

前回Windows Server2022上に「self-hosted-agent」をインストールして起動するところまで対応しました。今回の章ではテスト自動化フレームワークのPytestとテスト結果のレポートを出力するためのAllure CLIAzure StorageへのファイルアップロードするためのPowershell Azモジュールのインストール手順について解説させていただきます。

Allure CLIをインストールするにはWindowsのパッケージ管理コマンドscoopでインストールする方法とMaven Centralでダウンロードしてマニュアルでインストールする方法がありますが、 今回はscoopでインストール方法を採用しています。

また、途中Pytestのインストールの中でpytest-playwrightをインストールの手順がございますが、こちらはPlaywrightでE2Eのテストするためにインストールしています。 PlaywrightはFireFox、Chrome、Webkitを1つのAPI で自動化するためのMicrosoftから提供されているツールとなります。

たくさんの用語がでてきて初めてのかたは覚える事が大変かと思いますが、めげずにお付き合いいただけると幸いです。


Python環境構築

1. Pythonインストール

以下ソースをコピーし、install_python.ps1を作成

# urとoutput: https://www.python.org/ より適切なものを設定してください。
$url = "https://www.python.org/ftp/python/3.10.4/python-3.10.4-amd64.exe"
$output = "C:/tmp/python-3.10.4-amd64.exe"

# exeの存在チェック
if (Test-Path $output) {
    Write-Host "Script exists - skipping installation"
    return;
}

# tmpディレクトリ作成
New-Item -ItemType Directory -Force -Path C:/tmp

# TLS1.2に設定
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

# インストーラーダウンロード
Invoke-WebRequest -Uri $url -OutFile $output
# パッシブモードでインストーラー起動
& $output /passive InstallAllUsers=1 PrependPath=1 Include_test=0 

Windows Serverへログインし、C:\Users{対象ユーザー}\Downloads」に「install_python.ps1」を設置

Powershell ISEを管理者権限で開いて先ほど作成した「install_python.ps1」を実行してください。
※Pythonのバージョンを変更したい場合は公式ページよりダウンロードURLを控えて適切なものに変更してください。

「install_python.ps1」を実行後、Pythonのインストーラーが起動されます。

Pythonのインストーラーの処理が完了したら再度Powershellを起動し、以下コマンドを実行してバージョンを確認してください。
下記のキャプチャのようにバージョンが表示されたら完了となります。

python --version

2. Pythonモジュールインストール

Powershellを管理者権限で開いて以下コマンドでpytestをインストール

py -m pip install pytest

allure-pytestをインストール

py -m pip install allure-pytest

playwrightをインストール

py -m pip install playwright

pytest-playwrightをインストール

py -m pip install pytest-playwright

PlayWrightで利用可能なブラウザをインストール

 playwright install
 もしくは
 py -m playwright install 

python-slugifyをインストール

py -m pip install python-slugify

Allure環境構築

1. scoopインストール

Allureインストールについては公式サイトではscoopコマンドを推奨しています。そのため、scoopコマンドをインストールする必要がありますので 以下手順を実施してください。また、ポリシーによってはscoopをインストールできない場合もありますのでAllureの公式インストールガイドの 2.1.4. Manual installationをご参照のうえご対応ください。

実行ポリシーを変更

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

インストール用スクリプトをダウンロード

# 管理者権限で実行する場合:
iwr -useb get.scoop.sh -outfile 'install.ps1'

# 通常権限 ※Windows Server2002の場合は管理者権限になってしまうので以下コマンドは使えません。
Invoke-WebRequest get.scoop.sh | Invoke-Expression

インストールスクリプト実行

.\install.ps1 -RunAsAdmin

Scoop was installed successfully!が表示されたら成功となります

2. allureインストール

allure を以下コマンドでインストール

scoop install allure

'allure' (x.xx.x) was installed sucessfully!が表示されたら成功です

gitをインストール

scoop install git

bucketにjavaを追加

scoop bucket add java

openjdkをインストール

scoop install openjdk

allureのバージョン確認し、以下のようにバージョンが表示されたら成功となります

allure --version

PowerShell Azモジュールインストール

Azure Storageにアップロードする際にAZモジュールが必要となりますので以下手順に従ってご対応ください。

Powershellにて以下コマンドを実行

Install-Module Az -AllowClobber

NuGetプロバイダー:Y、信頼されていないレポジトリ:Yを入力
インストール完了後、サーバー再起動をしてください。

次回のお知らせ

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

Python、Allure、Powershell AZモジュールをインストールしてきました。環境構築の作業だったので単調でしたね!
私もWindowsの単調な作業は好みではないのでこういった作業はすぐに自動化したくなります。 しかしながら、お客様の環境によってはTerraformやAnsibleがセキュリティーポリシーなどで導入できない事もありますので 環境に合わせて対応するしかないと思っています。

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

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

【次回の記事はこちら】


執筆者プロフィール: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/