⭐⭐ Присоединяйтесь к нам на SNIA SDC для SMB3 IO Lab (28 сентября — 1 октября 2026 г.), узнайте о предстоящих мероприятиях Interoperability Events
Windows Protocol Test Suites обеспечивают тестирование совместимости с реализацией открытых спецификаций Windows, включая File Services, Identity Management, Remote Desktop и другие.
Изначально разработанные для внутреннего тестирования Microsoft Open Specifications, Microsoft Protocol Test Suites широко использовались во время Plugfests и лабораторий совместимости для тестирования с реализациями партнёров. Test Suite оценивает, соответствует ли реализация протокола или семейства протоколов определённым требованиям совместимости. Test Suites не охватывают все требования протокола и никоим образом не сертифицируют реализацию, даже если все тесты пройдены. Однако каждый test suite даёт пользователям полезное указание на совместимость.
Windows Protocol Test Suites содержат следующие компоненты:
Windows Protocol Test Suites основаны на .NET, поэтому их можно разрабатывать и запускать на разных платформах. Вам следует установить перечисленное ниже программное обеспечение в зависимости от целей тестирования, включая их собственные зависимости.
.NET и связанные компоненты
a. Для Windows, Linux и macOS установите .NET 8.0 SDK для сборки или запуска test suites.
b. Тем, кто работает на Windows и предпочитает IDE, следует установить Visual Studio 2022 или выше (рекомендуется Visual Studio 2022 Community), вместе со следующими отдельными компонентами из установщика:
| Раздел | Отдельный компонент в Visual Studio 2022 | Запуск Windows Protocol Test Suites | Сборка Windows Protocol Test Suites из исходного кода |
|---|---|---|---|
| .NET | .NET SDK | Требуется | Требуется |
| Compilers, build tools, and runtime | C# and Visual Basic Roslyn compilers | Требуется | |
| Compilers, build tools, and runtime | MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest) | Требуется1 | |
| Compilers, build tools, and runtime | C++/CLI support for v143 build tools (Latest) | Требуется1 | |
| Compilers, build tools, and runtime | C++ 2022 Redistributable Update | Требуется1 | Требуется1 |
| Development Activities | C++ core features | Требуется1 | |
| SDKs, libraries, and frameworks | 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 packages.
Из NetworkDirect_DDK.zip извлеките ndspi.h и ndstatus.h в путь проекта ProtoSDK\RDMA\include. Это необходимо для сборки SMBD test suite.
Требуется только если пользователь хочет использовать PowerShell Core Remoting over SSH.
Требуется только если пользователь хочет использовать PowerShell Core Remoting over SSH для платформы Windows.
Требуется только если пользователь хочет использовать реализацию PowerShell на Windows Server 2012R2 для ISutCommonControlAdapter в CommonTestSuite.ptfconfig.
a. Если вы выбираете реализацию PowerShell для ISutCommonControlAdapter в доменной среде, где DC работает под управлением Windows Server 2012R2, для получения SID от DC необходимо установить WMF 5.1 на DC; для других версий Windows Server новее Windows Server 2012R2 устанавливать WMF 5.1 на DC не нужно.
b. Если вы выбираете реализацию PowerShell для ISutCommonControlAdapter на платформах Windows (включая Windows Server 2012R2 и более новые версии) в среде рабочей группы, устанавливать WMF 5.1 на SUT не нужно.
c. Если вы выбираете управляемую реализацию для ISutCommonControlAdapter на платформах Windows (включая Windows Server 2012R2 и более новые версии), она будет использовать LDAP-запросы для получения SID и поддерживает только доменную среду.
Если вы работаете на Windows, вы можете использовать скрипт в папке InstallPrerequisites для автоматической загрузки и установки этого программного обеспечения.
Советы при использовании скрипта в папке InstallPrerequisites:
Скрипту требуется подключение к интернету для загрузки некоторых зависимостей.
Параметр Category используется для указания того, какой набор инструментов нужно загрузить и установить, в зависимости от названий различных test suite, таких как FileServer, Kerberos, SMBD, RDP, BranchCache, ADFamily, AZOD, ADFSPIP и ADOD. Категории определены в PrerequisitesConfig.xml, и вы можете обновить этот файл конфигурации для достижения нужного результата.
Параметр ConfigPath используется для указания пути к файлу конфигурации предварительных требований, значение по умолчанию — ".\PrerequisitesConfig.xml".
Чтобы запустить скрипт для FileServer test suite, например, откройте Windows PowerShell и выполните приведённые ниже команды в PowerShell Window:
cd WindowsProtocolTestSuites\InstallPrerequisites
.\InstallPrerequisites.ps1 -Category FileServer -ConfigPath ".\PrerequisitesConfig.xml"
Set-ExecutionPolicy RemoteSigned
Вы можете выполнить приведённую ниже команду, чтобы проверить, правильно ли установлена Execution Policy:
Get-ExecutionPolicy
Затем перезапустите скрипт.
После того как вы клонируете копию этого репозитория, вы можете запустить build.ps1 в PowerShell или build.sh в shell для каждого test suite отдельно после установки всего программного обеспечения, необходимого для сборки, перечисленного в разделе Предварительные требования.
Например, если вы хотите собрать FileServer test suite:
cd WindowsProtocolTestSuites\TestSuites\FileServer\src
build.ps1
После успешной сборки в папке WindowsProtocolTestSuite\drop\TestSuites\[TestSuiteName]\ должна быть создана общая структура папок.
Bin: все собранные бинарные файлы, включая ProtoSDK, адаптеры и test suites.Batch: пакетные файлы (.ps1, .sh), которые можно использовать для запуска тестов.Scripts: скрипты, которые можно использовать для настройки тестовой среды.Utils: некоторые утилиты, которые можно использовать в тестах.В качестве альтернативы вы можете загрузить архив предварительно собранного test suite из Releases.
Перед запуском test suite вам нужно выполнить одно из следующего:
На macOS FileServer test suite использует классы AesCcm и AesGcm, которые требуют OpenSSL, поэтому если на вашем macOS нет OpenSSL 1.1, установите OpenSSL 1.1 и задайте переменную среды следующим образом перед запуском FileServer test suite на macOS,
brew install [email protected]
export DYLD_LIBRARY_PATH="/usr/local/opt/[email protected]/lib:$DYLD_LIBRARY_PATH"
Примечание:
brew не установлен на вашем macOS, вы можете установить его согласно brew.DYLD_LIBRARY_PATH или нет. После установки OpenSSL 1.1 на ваш macOS расположение криптографической библиотеки — /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 в корневом пути test suite есть несколько скриптов, которые можно использовать для запуска тестов.
Запуск всех тестовых случаев
Выполните RunAllTestCases.ps1 в PowerShell или RunAllTestCases.sh в shell напрямую.
Запуск тестовых случаев по фильтрам
Выполните RunTestCasesByFilter.ps1 -Filter [ваше выражение фильтра] в PowerShell или RunTestCasesByFilter.sh [ваше выражение фильтра] в shell напрямую.
Например, вы можете выполнить приведённую ниже команду, если хотите запустить тестовые случаи с тестовой категорией BVT и SMB311:
RunTestCasesByFilter.sh "TestCategory=BVT&TestCategory=SMB311"
Для получения дополнительной информации о том, как составить выражение фильтра, обратитесь к Filter option details.
Пробный запуск
Если вы хотите вывести список тестовых случаев перед их фактическим запуском, вы можете добавить переключатель -DryRun к скриптам .ps1 или передать непустую строку в качестве последнего аргумента скриптам .sh.
Например, вы можете выполнить приведённую ниже команду, если хотите вывести список тестовых случаев с тестовой категорией BVT и SMB311:
RunTestCasesByFilter.sh "TestCategory=BVT&TestCategory=SMB311" "list"
Protocol Test Manager Service (PTMService) — это инструмент в виде одностраничного веб-приложения, который помогает настраивать и запускать тестовые случаи в Test Suites. PTMService поддерживает несколько платформ, включая Windows, Linux и macOS. Чтобы начать работу с PTMService, обратитесь к PTMService Wiki.
Для конфигураций FileServer настройка PTM UI Enable Parallel Test Execution соответствует полному свойству .ptfconfig Common.PTF.LogProfileParserPatch.Enabled. Установите для него значение true, чтобы включить поэтапное параллельное выполнение в рамках запуска FileServer test.
Вы можете настроить тестовую среду и сконфигурировать test suite в соответствии с его User Guide.
Каждый test suite имеет собственный User Guide в папке WindowsProtocolTestSuites\TestSuites\[TestSuiteName]\docs.
В той же папке есть ещё два вида документов:
Руководство по участию в разработке можно найти здесь.
Windows Protocol Test Suites распространяются под лицензией MIT.
Следующие ресурсы предназначены для новостей, обсуждений и поддержки Windows protocol test suite:
Этот проект принял Microsoft Open Source Code of Conduct. Для получения дополнительной информации см. Code of Conduct FAQ или свяжитесь с [email protected] по любым дополнительным вопросам или комментариям.