⭐⭐ 加入我们,在 SNIA SDC 参加 SMB3 IO Lab(2026年9月28日至10月1日),查看即将举行的互操作性活动
Windows 协议测试套件 提供针对 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]:此单个组件是 ADFamily 和 MS-SMBD 所需的,它们包含 C++ 代码。
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 测试套件。
仅当用户想要使用通过 SSH 的 PowerShell Core 远程处理时才需要。
仅当用户想要在 Windows 平台上使用通过 SSH 的 PowerShell Core 远程处理时才需要。
仅当用户想要在 Windows Server 2012R2 上为 CommonTestSuite.ptfconfig 中的 ISutCommonControlAdapter 使用 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
您可以运行以下命令来验证 Execution Policy 是否已正确设置:
Get-ExecutionPolicy
然后重新运行脚本。
在您克隆此仓库的副本后,在安装了先决条件中列出的所有构建所需软件后,您可以在 PowerShell 中运行 build.ps1,或在 shell 中运行 build.sh,分别针对每个测试套件。
例如,如果您想构建 FileServer 测试套件:
cd WindowsProtocolTestSuites\TestSuites\FileServer\src
build.ps1
构建成功后,应在文件夹 WindowsProtocolTestSuite\drop\TestSuites\[TestSuiteName]\ 中生成通用文件夹结构。