
WindowsProtocolTestSuites v4.26.9.0
⭐⭐ Присоединяйтесь к нам на SNIA SDC для SMB3 IO Lab (28 сентября — 1 октября 2026 г.), узнайте о предстоящих мероприятиях Interoperability Events
Windows Protocol Test Suites
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 даёт пользователям полезное указание на совместимость.
- File Server Family Test Suite. Предназначен для тестирования реализаций семейства протоколов файлового сервера, включая [MS-SMB2], [MS-DFSC], [MS-SWN], [MS-FSRVP], [MS-FSA], [MS-FSCC], [MS-RSVD] и [MS-SQOS]. Чтобы начать работу с File Server test suite, обратитесь к File Server Test Suite User Guide. Для создания одноразовой тестовой среды Azure используйте File Server Azure automated deployment.
- RDP Client Family Test Suite. Обеспечивает тестирование совместимости клиентской реализации семейства протоколов RDP, включая [MS-RDPBCGR], [MS-RDPEDISP], [MS-RDPEDYC], [MS-RDPEGFX], [MS-RDPEGT], [MS-RDPEI], [MS-RDPEMT], [MS-RDPEUDP], [MS-RDPEUSB], [MS-RDPEVOR] и [MS-RDPRFX]. Чтобы начать работу с RDP Client test suite, обратитесь к RDP Client Test Suite User Guide
- RDP Server Family Test Suite. Обеспечивает тестирование совместимости серверной реализации семейства протоколов RDP, включая [MS-RDPBCGR], [MS-RDPEDYC], [MS-RDPEMT] и [MS-RDPELE]. Чтобы начать работу с RDP Server test suite, обратитесь к RDP Server Test Suite User Guide
- Kerberos Server Test Suite. Предназначен для тестирования серверных реализаций протоколов Kerberos, включая [MS-KILE], [MS-KKDCP] и [MS-PAC]. Чтобы начать работу с Kerberos Server test suite, обратитесь к Kerberos Server Test Suite User Guide
- SMBD Server Test Suite. Предназначен для тестирования реализаций прямого (RDMA) протокола SMB2&3, как указано в [MS-SMBD] и [MS-SMB2]. Чтобы начать работу с SMBD Server test suite, обратитесь к SMBD Server Test Suite User Guide
- Branch Cache Test Suite. Предназначен для тестирования реализаций протоколов [MS-PCCRTP], [MS-PCCRR], [MS-PCHC] и [MS-PCCRC]. Чтобы начать работу с Branch Cache test suite, обратитесь к Branch Cache Test Suite User Guide
- AZOD Test Suite. Предназначен для тестирования реализаций протокола [MS-AZOD]. Чтобы начать работу с AZOD test suite, обратитесь к AZOD Test Suite User Guide
- ADFamily Test Suite. Предназначен для тестирования реализаций протоколов Active Directory, включая [MS-ADA1], [MS-ADA2], [MS-ADA3], [MS-ADLS], [MS-ADSC], [MS-ADTS], [MS-APDS], [MS-DRSR], [MS-FRS2], [MS-LSAD], [MS-LSAT], [MS-SAMR] и [MS-NRPC]. Чтобы начать работу с ADFamily test suite, обратитесь к ADFamily Test Suite User Guide
- ADFSPIP Client Test Suite. Предназначен для тестирования реализаций интеграции ADFS Proxy и Web Application Proxy, как описано в [MS-ADFSPIP]. Чтобы начать работу с ADFSPIP Client test suite, обратитесь к ADFSPIP Client Test Suite User Guide
- ADOD Test Suite. Предназначен для тестирования реализаций протокола [MS-ADOD]. Чтобы начать работу с ADOD test suite, обратитесь к ADOD Test Suite User Guide
- XCA Test Suite. Предназначен для тестирования реализаций протокола [MS-XCA]. Чтобы начать работу с XCA test suite, обратитесь к XCA Test Suite User Guide
- WSP Test Suite. Предназначен для тестирования реализаций протокола [MS-WSP]. Чтобы начать работу с WSP test suite, обратитесь к WSP Test Suite User Guide
Компоненты
Windows Protocol Test Suites содержат следующие компоненты:
- CommonScripts. Общие скрипты, используемые каждым test suite. Обычно они используются для развёртывания среды.
- ProtoSDK. Библиотека протоколов, используемая каждым test suite. Она предоставляет структуры данных сообщений протокола, методы кодирования и декодирования сообщений, методы отправки и получения сообщений и т. д.
- TestSuites. Весь код и документация Test Suites хранятся здесь и категоризированы по папкам, представляющим каждый test suite.
- ProtocolTestManager. Инструмент, помогающий настраивать и запускать 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"
- Если вы столкнётесь с ошибками, связанными с Execution Policy, убедитесь, что вы запускаете Windows PowerShell от имени Administrator, и введите следующее и нажмите Enter:
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 вам нужно выполнить одно из следующего:
- Загрузить архив test suite, который вы хотите запустить, из Releases и извлечь его в какой-либо доступный вам путь.
- Собрать test suite в соответствии с разделом Сборка 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. - Если вы получите ошибку "algorithm 'aesgcm' is not supported on this platform", это означает, что dotnet не может загрузить класс AesGcm из libcrypto.1.1.dylib на вашем macOS; тогда вам нужно проверить, находится ли его расположение в вашей переменной среды
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.
Запуск test suite с помощью batch
В папке 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"
Настройка и запуск test suite с помощью Protocol Test Manager Service
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.
В той же папке есть ещё два вида документов:
- Technical Documents. Документация Open Specifications для протоколов, опубликованная Microsoft. Это основа для разработки Test Suites.
- Test Design Specs. Предоставляет информацию об области тестирования и дизайне test suite.
Участие в разработке
Руководство по участию в разработке можно найти здесь.
Лицензия
Windows Protocol Test Suites распространяются под лицензией MIT.
Контакты
Следующие ресурсы предназначены для новостей, обсуждений и поддержки Windows protocol test suite:
- Просматривайте новостные объявления в Open Specification Windows Protocols Forum.
- Обсуждайте вопросы test suites здесь на github.
- Для поддержки Open Specifications Protocols обращайтесь по адресу [email protected].
Microsoft Open Source Code of Conduct
Этот проект принял Microsoft Open Source Code of Conduct. Для получения дополнительной информации см. Code of Conduct FAQ или свяжитесь с [email protected] по любым дополнительным вопросам или комментариям.