⭐⭐ SNIA SDCのSMB3 IO Labにぜひご参加ください(2026年9月28日〜10月1日)。今後の相互運用性イベントもご覧ください。
Windows プロトコル テスト スイートは、ファイル サービス、ID 管理、リモート デスクトップなどを含む Windows オープン仕様の実装に対する相互運用性テストを提供します。
もともと Microsoft オープン仕様の社内テスト用に開発された Microsoft プロトコル テスト スイートは、Plugfest や相互運用性ラボでパートナーの実装に対してテストするために広く使用されてきました。 テスト スイートは、プロトコルまたはプロトコル ファミリの実装が特定の相互運用性要件を満たしているかどうかを評価します。 テスト スイートはすべてのプロトコル要件を網羅しているわけではなく、すべてのテストに合格したとしても実装を認定するものでは決してありません。 ただし、各テスト スイートは、相互運用性に関する有用な指標をユーザーに提供します。
Windows プロトコル テスト スイートには以下のコンポーネントが含まれています:
Windows プロトコル テスト スイートは .NET に基づいているため、さまざまなプラットフォームで開発および実行できます。 テストの目的に応じて、以下に示すソフトウェアをそれぞれの依存関係も含めてインストールする必要があります。
.NET および関連コンポーネント
a. Windows、Linux、macOS の場合、テスト スイートをビルドまたは実行するために .NET 8.0 SDK をインストールします。
b. Windows で作業し、IDE を好む場合は、Visual Studio 2022 以降 (Visual Studio 2022 Community を推奨) を、インストーラーから以下の個別コンポーネントとともにインストールします:
| セクション | Visual Studio 2022 の個別コンポーネント | Windows プロトコル テスト スイートの実行 | ソース コードからの Windows プロトコル テスト スイートのビルド |
|---|---|---|---|
| .NET | .NET SDK | 必須 | 必須 |
| コンパイラ、ビルド ツール、ランタイム | C# および Visual Basic Roslyn コンパイラ | 必須 | |
| コンパイラ、ビルド ツール、ランタイム | MSVC v143 - VS 2022 C++ x64/x86 ビルド ツール (最新) | 必須1 | |
| コンパイラ、ビルド ツール、ランタイム | v143 ビルド ツール用 C++/CLI サポート (最新) | 必須1 | |
| コンパイラ、ビルド ツール、ランタイム | C++ 2022 再頒布可能パッケージの更新 | 必須1 | 必須1 |
| 開発アクティビティ | C++ コア機能 | 必須1 | |
| SDK、ライブラリ、フレームワーク | Windows 10 SDK (10.0.19041.0) | 必須1 |
注:
[1]: この個別コンポーネントは、C++ コードを含む ADFamily および MS-SMBD で必要です。
Protocol Test Framework v2.6 (build 2.6.1)
Protocol Test Framework は、ProtoSDK および TestSuites のプロジェクトから NuGet パッケージとして参照されます。
NetworkDirect_DDK.zip から ndspi.h と ndstatus.h をプロジェクト パス ProtoSDK\RDMA\include に展開します。これは SMBD テスト スイートをビルドするためです。
これは、ユーザーが PowerShell Core Remoting over SSH を使用する場合にのみ必要です。
これは、ユーザーが Windows プラットフォームで PowerShell Core Remoting over SSH を使用する場合にのみ必要です。
これは、ユーザーが CommonTestSuite.ptfconfig の ISutCommonControlAdapter に対して Windows Server 2012R2 で PowerShell 実装を使用する場合にのみ必要です。
a. DC が Windows Server 2012R2 を実行しているドメイン環境で ISutCommonControlAdapter に PowerShell 実装を選択した場合、DC から SID を取得するために DC に WMF 5.1 をインストールする必要があります。Windows Server 2012R2 より新しい他の Windows Server バージョンでは、DC に WMF 5.1 をインストールする必要はありません。
b. ワークグループ環境で Windows プラットフォーム (Windows Server 2012R2 以降を含む) 上の ISutCommonControlAdapter に PowerShell 実装を選択した場合、SUT に WMF 5.1 をインストールする必要はありません。
c. Windows プラットフォーム (Windows Server 2012R2 以降を含む) 上の ISutCommonControlAdapter にマネージド実装を選択した場合、LDAP クエリを使用して SID を取得し、ドメイン環境のみをサポートします。
Windows で作業する場合、InstallPrerequisites フォルダー内のスクリプトを使用して、これらのソフトウェアを自動的にダウンロードしてインストールできます。
InstallPrerequisites フォルダー内のスクリプトを使用する際のヒント:
スクリプトは一部の依存関係をダウンロードするためにインターネット接続が必要です。
パラメーター Category は、FileServer、Kerberos、SMBD、RDP、BranchCache、ADFamily、AZOD、ADFSPIP、ADOD などの異なるテスト スイート名に基づいて、どのツール セットをダウンロードしてインストールする必要があるかを指定するために使用されます。カテゴリは PrerequisitesConfig.xml で定義されており、この構成ファイルを更新して目的の要件を達成できます。
パラメーター ConfigPath は、前提条件構成ファイルのパスを指定するために使用されます。既定値は ".\PrerequisitesConfig.xml" です。
たとえば FileServer テスト スイート用にスクリプトを実行するには、Windows PowerShell を開き、PowerShell ウィンドウで以下のコマンドを実行します:
cd WindowsProtocolTestSuites\InstallPrerequisites
.\InstallPrerequisites.ps1 -Category FileServer -ConfigPath ".\PrerequisitesConfig.xml"
Set-ExecutionPolicy RemoteSigned
以下のコマンドを実行して、実行ポリシーが正しく設定されているかどうかを確認できます:
Get-ExecutionPolicy
その後、スクリプトを再実行します。
このリポジトリのコピーをクローンした後、前提条件に記載されているビルドに必要なすべてのソフトウェアをインストールしたら、各テスト スイートごとに PowerShell で build.ps1 を、またはシェルで build.sh を実行できます。
たとえば、FileServer テスト スイートをビルドする場合:
cd WindowsProtocolTestSuites\TestSuites\FileServer\src
build.ps1
ビルドが成功すると、共通のフォルダー構造がフォルダー WindowsProtocolTestSuite\drop\TestSuites\[TestSuiteName]\ に生成されます。
Bin: ProtoSDK、アダプター、テスト スイートを含む、ビルドされたすべてのバイナリ。Batch: テストを起動するために使用できるバッチ ファイル (.ps1、.sh)。Scripts: テスト環境を構成するために使用できるスクリプト。Utils: テストで使用できるいくつかのユーティリティ。または、Releases からビルド済みのテスト スイート アーカイブをダウンロードできます。
テスト スイートを実行する前に、以下のいずれかを行う必要があります:
macOS では、FileServer テスト スイートは OpenSSL を必要とする AesCcm および AesGcm クラスを使用するため、macOS に OpenSSL 1.1 がない場合は、macOS で FileServer テスト スイートを実行する前に OpenSSL 1.1 をインストールし、以下のように環境変数を設定してください。
brew install [email protected]
export DYLD_LIBRARY_PATH="/usr/local/opt/[email protected]/lib:$DYLD_LIBRARY_PATH"
注:
brew がインストールされていない場合は、brew に従ってインストールできます。DYLD_LIBRARY_PATH 環境変数にあるかどうかを確認する必要があります。macOS に OpenSSL 1.1 をインストールすると、暗号ライブラリの場所は /usr/local/Cellar/[email protected]/1.1.1m/lib/libcrypto.1.1.dylib となり、/usr/local/opt/openssl は既定で /usr/local/Cellar/[email protected]/1.1.1m ディレクトリにリンクします。テスト スイートのルート パス下の Batch フォルダーには、テストを起動するために使用できるいくつかのスクリプトがあります。
すべてのテスト ケースを実行
PowerShell で RunAllTestCases.ps1 を、またはシェルで RunAllTestCases.sh を直接実行します。
フィルターによるテスト ケースの実行
PowerShell で RunTestCasesByFilter.ps1 -Filter [your filter expression] を、またはシェルで RunTestCasesByFilter.sh [your filter expression] を直接実行します。
たとえば、テスト カテゴリ BVT および SMB311 のテスト ケースを実行する場合は、以下のコマンドを実行できます:
RunTestCasesByFilter.sh "TestCategory=BVT&TestCategory=SMB311"
フィルター式の構築方法の詳細については、フィルター オプションの詳細を参照してください。
ドライ ラン
実際にテスト ケースを実行する前に一覧表示する場合は、.ps1 スクリプトに -DryRun スイッチを追加するか、.sh スクリプトの最後の引数として空でない文字列を渡します。
たとえば、テスト カテゴリ BVT および SMB311 のテスト ケースを一覧表示する場合は、以下のコマンドを実行できます:
RunTestCasesByFilter.sh "TestCategory=BVT&TestCategory=SMB311" "list"
Protocol Test Manager Service (PTMService) は、テスト スイート内のテスト ケースを構成および実行するのに役立つ単一の Web ページ アプリケーション ツールです。PTMService は、Windows、Linux、macOS を含む複数のプラットフォームをサポートしています。PTMService を開始するには、PTMService Wiki を参照してください。
FileServer 構成の場合、PTM UI 設定 Enable Parallel Test Execution は、完全修飾された .ptfconfig プロパティ Common.PTF.LogProfileParserPatch.Enabled にマップされます。FileServer テスト実行内で段階的な並列実行を有効にするには、true に設定します。
テスト スイートの ユーザー ガイドに従って、テスト環境をセットアップし、テスト スイートを構成できます。
各テスト スイートには、WindowsProtocolTestSuites\TestSuites\[TestSuiteName]\docs フォルダーに独自の ユーザー ガイドがあります。
同じフォルダーには、さらに 2 種類のドキュメントがあります:
コントリビューション ガイドはこちらにあります。
Windows プロトコル テスト スイートは MIT ライセンスの下にあります。
以下のリソースは、Windows プロトコル テスト スイートのニュース、ディスカッション、サポート用です:
このプロジェクトは Microsoft オープン ソース行動規範を採用しています。詳細については、行動規範 FAQ を参照するか、追加の質問やコメントがある場合は [email protected] にお問い合わせください。