⭐⭐ Únete a nosotros en SNIA SDC para el SMB3 IO Lab (28 de septiembre - 1 de octubre de 2026), consulta los próximos Eventos de Interoperabilidad
Windows Protocol Test Suites proporciona pruebas de interoperabilidad contra la implementación de las especificaciones abiertas de Windows, incluyendo Servicios de Archivos, Gestión de Identidades, Escritorio Remoto, etc.
Originalmente desarrolladas para pruebas internas de las Especificaciones Abiertas de Microsoft, las Suites de Pruebas de Protocolos de Microsoft se han utilizado ampliamente durante Plugfests y laboratorios de interoperabilidad para probar contra implementaciones de socios. Una Suite de Pruebas evalúa si una implementación de un protocolo o familia de protocolos cumple ciertos requisitos de interoperabilidad. Las Suites de Pruebas no cubren todos los requisitos de un protocolo y de ninguna manera certifican una implementación, incluso si todas las pruebas pasan. Sin embargo, cada suite de pruebas proporciona a los usuarios una indicación útil de interoperabilidad.
Windows Protocol Test Suites contiene los siguientes componentes:
Windows Protocol Test Suites se basa en .NET, por lo que pueden desarrollarse y ejecutarse en diferentes plataformas. Debe instalar el software que se indica a continuación según su propósito de prueba, incluyendo sus propias dependencias.
.NET y componentes relacionados
a. Para Windows, Linux y macOS, instale .NET 8.0 SDK para compilar o ejecutar las suites de pruebas.
b. Para aquellos que trabajan en Windows y prefieren un IDE, instale Visual Studio 2022 o superior (se recomienda Visual Studio 2022 Community), junto con estos componentes individuales del instalador:
| Sección | Componente individual en Visual Studio 2022 | Ejecutar Windows Protocol Test Suites | Compilar Windows Protocol Test Suites desde el código fuente |
|---|---|---|---|
| .NET | .NET SDK | Requerido | Requerido |
| Compiladores, herramientas de compilación y tiempo de ejecución | Compiladores C# y Visual Basic Roslyn | Requerido | |
| Compiladores, herramientas de compilación y tiempo de ejecución | MSVC v143 - Herramientas de compilación C++ x64/x86 de VS 2022 (más reciente) | Requerido1 | |
| Compiladores, herramientas de compilación y tiempo de ejecución | Compatibilidad con C++/CLI para las herramientas de compilación v143 (más reciente) | Requerido1 | |
| Compiladores, herramientas de compilación y tiempo de ejecución | Actualización redistribuible de C++ 2022 | Requerido1 | Requerido1 |
| Actividades de desarrollo | Características principales de C++ | Requerido1 | |
| SDKs, bibliotecas y marcos de trabajo | Windows 10 SDK (10.0.19041.0) | Requerido1 |
Nota:
[1]: Este componente individual es requerido por ADFamily y MS-SMBD, que tienen código C++.
Protocol Test Framework v2.6 (build 2.6.1)
Protocol Test Framework es referenciado por los proyectos de ProtoSDK y TestSuites como paquetes NuGet.
Desde NetworkDirect_DDK.zip extraiga ndspi.h y ndstatus.h en la ruta del proyecto ProtoSDK\RDMA\include. Esto es para compilar la suite de pruebas SMBD.
Esto solo es necesario cuando el usuario desea utilizar PowerShell Core Remoting over SSH.
Esto solo es necesario cuando el usuario desea utilizar PowerShell Core Remoting over SSH para la plataforma Windows.
Esto solo es necesario cuando el usuario desea utilizar la implementación de PowerShell en Windows Server 2012R2 para ISutCommonControlAdapter en CommonTestSuite.ptfconfig.
a. Si elige la implementación de PowerShell para ISutCommonControlAdapter en un entorno de dominio donde el DC ejecuta Windows Server 2012R2, para obtener el SID del DC, necesita instalar WMF 5.1 en el DC; para otras versiones de Windows Server más recientes que Windows Server 2012R2, no necesita instalar WMF 5.1 en el DC.
b. Si elige la implementación de PowerShell para ISutCommonControlAdapter en plataformas Windows (incluyendo Windows Server 2012R2 y versiones más recientes) en un entorno de grupo de trabajo, no necesita instalar WMF 5.1 en el SUT.
c. Si elige la implementación administrada para ISutCommonControlAdapter en plataformas Windows (incluyendo Windows Server 2012R2 y versiones más recientes), utilizará consultas LDAP para obtener el SID y solo admite entornos de dominio.
Si trabaja en Windows, puede utilizar el script de la carpeta InstallPrerequisites para descargar e instalar automáticamente este software.
Consejos al utilizar el script de la carpeta InstallPrerequisites:
El script requiere conectividad a Internet para descargar algunas dependencias.
El parámetro Category se utiliza para especificar qué conjunto de herramientas debe descargarse e instalarse, según los diferentes nombres de suites de pruebas, como FileServer, Kerberos, SMBD, RDP, BranchCache, ADFamily, AZOD, ADFSPIP y ADOD. Las categorías se definen en PrerequisitesConfig.xml y puede actualizar este archivo de configuración para lograr el requisito deseado.
El parámetro ConfigPath se utiliza para especificar la ruta del archivo de configuración de requisitos previos; el valor predeterminado es ".\PrerequisitesConfig.xml".
Para ejecutar el script de la suite de pruebas FileServer, por ejemplo, abra Windows PowerShell y ejecute los comandos siguientes en la ventana de PowerShell:
cd WindowsProtocolTestSuites\InstallPrerequisites
.\InstallPrerequisites.ps1 -Category FileServer -ConfigPath ".\PrerequisitesConfig.xml"
Set-ExecutionPolicy RemoteSigned
Puede ejecutar el comando siguiente para verificar si la Execution Policy está configurada correctamente:
Get-ExecutionPolicy
Luego vuelva a ejecutar el script.
Después de clonar una copia de este repositorio, puede ejecutar build.ps1 en PowerShell o build.sh en shell para cada suite de pruebas por separado después de haber instalado todo el software necesario para la compilación indicado en Requisitos previos.
Por ejemplo, si desea compilar la suite de pruebas FileServer:
cd WindowsProtocolTestSuites\TestSuites\FileServer\src
build.ps1
Una vez que la compilación se realice correctamente, la estructura de carpetas común debería generarse en la carpeta WindowsProtocolTestSuite\drop\TestSuites\[TestSuiteName]\.
Bin: todos los binarios compilados, incluyendo ProtoSDK, adaptadores y suites de pruebas.Batch: archivos por lotes (.ps1, .sh) que pueden utilizarse para lanzar las pruebas.Scripts: scripts que pueden utilizarse para configurar el entorno de pruebas.Utils: algunas utilidades que pueden utilizarse en las pruebas.Alternativamente, puede descargar el archivo de la suite de pruebas precompilada desde Releases.
Antes de ejecutar una suite de pruebas, debe hacer una de las siguientes cosas:
En macOS, la suite de pruebas FileServer utiliza las clases AesCcm y AesGcm, que requieren OpenSSL, por lo que si no hay OpenSSL 1.1 en su macOS, instale OpenSSL 1.1 y configure la variable de entorno como se indica a continuación antes de ejecutar la suite de pruebas FileServer en macOS,
brew install [email protected]
export DYLD_LIBRARY_PATH="/usr/local/opt/[email protected]/lib:$DYLD_LIBRARY_PATH"
Nota:
brew no está instalado en su macOS, puede instalarlo según brew.DYLD_LIBRARY_PATH o no. Una vez que instale OpenSSL 1.1 en su macOS, la ubicación de la biblioteca crypto es /usr/local/Cellar/[email protected]/1.1.1m/lib/libcrypto.1.1.dylib y /usr/local/opt/openssl enlaza con el directorio /usr/local/Cellar/[email protected]/1.1.1m de forma predeterminada.En la carpeta Batch bajo la ruta raíz de la suite de pruebas, hay varios scripts que puede utilizar para lanzar las pruebas.
Ejecutar todos los casos de prueba
Ejecute RunAllTestCases.ps1 en PowerShell, o RunAllTestCases.sh en shell directamente.
Ejecutar casos de prueba por filtros
Ejecute RunTestCasesByFilter.ps1 -Filter [su expresión de filtro] en PowerShell, o RunTestCasesByFilter.sh [su expresión de filtro] en shell directamente.
Por ejemplo, puede ejecutar el comando siguiente si desea ejecutar casos de prueba con la categoría de prueba BVT y SMB311:
RunTestCasesByFilter.sh "TestCategory=BVT&TestCategory=SMB311"
Para obtener más información sobre cómo construir la expresión de filtro, puede consultar Filter option details.
Ejecución en seco
Si desea listar los casos de prueba antes de ejecutarlos realmente, puede añadir el modificador -DryRun a los scripts .ps1 o pasar una cadena no vacía como último argumento a los scripts .sh.
Por ejemplo, puede ejecutar el comando siguiente si desea listar los casos de prueba con la categoría de prueba BVT y SMB311:
RunTestCasesByFilter.sh "TestCategory=BVT&TestCategory=SMB311" "list"
Protocol Test Manager Service (PTMService) es una herramienta de aplicación web de una sola página que le ayuda a configurar y ejecutar casos de prueba en las Suites de Pruebas. PTMService admite múltiples plataformas, incluyendo Windows, Linux y macOS. Para comenzar con PTMService, puede consultar la PTMService Wiki.
Para las configuraciones de FileServer, la opción de la interfaz de PTM Enable Parallel Test Execution se corresponde con la propiedad .ptfconfig totalmente cualificada Common.PTF.LogProfileParserPatch.Enabled. Establézcala en true para habilitar la ejecución paralela por etapas dentro de una ejecución de pruebas de FileServer.
Puede configurar el entorno de pruebas y configurar la suite de pruebas según su User Guide.
Cada suite de pruebas tiene su propia User Guide en la carpeta WindowsProtocolTestSuites\TestSuites\[TestSuiteName]\docs.
Hay dos tipos más de documentos en la misma carpeta:
Puede encontrar la guía de contribución aquí.
Windows Protocol Test Suites está bajo la licencia MIT.
Los siguientes recursos son para noticias, discusión y soporte de la suite de pruebas de protocolos de Windows:
Este proyecto ha adoptado el Microsoft Open Source Code of Conduct. Para obtener más información, consulte las Code of Conduct FAQ o contacte con [email protected] si tiene preguntas o comentarios adicionales.