Retour aux mises à jour
New releaseSep 4, 2026

WindowsProtocolTestSuites v4.26.9.0

⭐⭐ Rejoignez-nous au SNIA SDC pour le SMB3 IO Lab (28 septembre - 1er octobre 2026), consultez les prochains événements d'interopérabilité

Partager

Suites de tests de protocoles Windows

Les Suites de tests de protocoles Windows fournissent des tests d'interopérabilité par rapport à l'implémentation des spécifications ouvertes Windows, notamment les services de fichiers, la gestion des identités, le bureau à distance, etc.

Développées à l'origine pour les tests internes des spécifications ouvertes Microsoft, les suites de tests de protocoles Microsoft ont été largement utilisées lors des Plugfests et des laboratoires d'interopérabilité pour tester les implémentations des partenaires. Une suite de tests évalue si une implémentation de protocole ou de famille de protocoles répond à certaines exigences d'interopérabilité. Les suites de tests ne couvrent pas toutes les exigences d'un protocole et ne certifient en aucun cas une implémentation, même si tous les tests réussissent. Cependant, chaque suite de tests fournit aux utilisateurs une indication utile de l'interopérabilité.

  • Suite de tests de la famille File Server. Elle est conçue pour tester les implémentations de la famille de protocoles de serveur de fichiers, notamment [MS-SMB2], [MS-DFSC], [MS-SWN], [MS-FSRVP], [MS-FSA], [MS-FSCC], [MS-RSVD] et [MS-SQOS]. Pour démarrer avec la suite de tests File Server, vous pouvez consulter le Guide d'utilisation de la suite de tests File Server. Pour créer un environnement de test Azure jetable, utilisez le déploiement automatisé Azure pour File Server.
  • Suite de tests de la famille RDP Client. Elle fournit des tests d'interopérabilité pour l'implémentation client des protocoles de la famille RDP, notamment [MS-RDPBCGR], [MS-RDPEDISP], [MS-RDPEDYC], [MS-RDPEGFX], [MS-RDPEGT], [MS-RDPEI], [MS-RDPEMT], [MS-RDPEUDP], [MS-RDPEUSB], [MS-RDPEVOR] et [MS-RDPRFX]. Pour démarrer avec la suite de tests RDP Client, vous pouvez consulter le Guide d'utilisation de la suite de tests RDP Client
  • Suite de tests de la famille RDP Server. Elle fournit des tests d'interopérabilité pour l'implémentation serveur des protocoles de la famille RDP, notamment [MS-RDPBCGR], [MS-RDPEDYC], [MS-RDPEMT] et [MS-RDPELE]. Pour démarrer avec la suite de tests RDP Server, vous pouvez consulter le Guide d'utilisation de la suite de tests RDP Server
  • Suite de tests Kerberos Server. Elle est conçue pour tester les implémentations serveur des protocoles Kerberos, notamment [MS-KILE], [MS-KKDCP] et [MS-PAC]. Pour démarrer avec la suite de tests Kerberos Server, vous pouvez consulter le Guide d'utilisation de la suite de tests Kerberos Server
  • Suite de tests SMBD Server. Elle est conçue pour tester les implémentations du protocole SMB2&3 direct (RDMA), tel que spécifié dans [MS-SMBD] et [MS-SMB2]. Pour démarrer avec la suite de tests SMBD Server, vous pouvez consulter le Guide d'utilisation de la suite de tests SMBD Server
  • Suite de tests Branch Cache. Elle est conçue pour tester les implémentations des protocoles [MS-PCCRTP], [MS-PCCRR], [MS-PCHC] et [MS-PCCRC]. Pour démarrer avec la suite de tests Branch Cache, vous pouvez consulter le Guide d'utilisation de la suite de tests Branch Cache
  • Suite de tests AZOD. Elle est conçue pour tester les implémentations du protocole [MS-AZOD]. Pour démarrer avec la suite de tests AZOD, vous pouvez consulter le Guide d'utilisation de la suite de tests AZOD
  • Suite de tests ADFamily. Elle est conçue pour tester les implémentations des protocoles Active Directory, notamment [MS-ADA1], [MS-ADA2], [MS-ADA3], [MS-ADLS], [MS-ADSC], [MS-ADTS], [MS-APDS], [MS-DRSR], [MS-FRS2], [MS-LSAD], [MS-LSAT], [MS-SAMR] et [MS-NRPC]. Pour démarrer avec la suite de tests ADFamily, vous pouvez consulter le Guide d'utilisation de la suite de tests ADFamily
  • Suite de tests ADFSPIP Client. Elle est conçue pour tester les implémentations de l'intégration d'ADFS Proxy et de Web Application Proxy, comme décrit dans [MS-ADFSPIP]. Pour démarrer avec la suite de tests ADFSPIP Client, vous pouvez consulter le Guide d'utilisation de la suite de tests ADFSPIP Client
  • Suite de tests ADOD. Elle est conçue pour tester les implémentations du protocole [MS-ADOD]. Pour démarrer avec la suite de tests ADOD, vous pouvez consulter le Guide d'utilisation de la suite de tests ADOD
  • Suite de tests XCA. Elle est conçue pour tester les implémentations du protocole [MS-XCA]. Pour démarrer avec la suite de tests XCA, vous pouvez consulter le Guide d'utilisation de la suite de tests XCA
  • Suite de tests WSP. Elle est conçue pour tester les implémentations du protocole [MS-WSP]. Pour démarrer avec la suite de tests WSP, vous pouvez consulter le Guide d'utilisation de la suite de tests WSP

Composants

Les suites de tests de protocoles Windows contiennent les composants suivants :

  • CommonScripts. Scripts communs utilisés par chaque suite de tests. Ils sont normalement utilisés pour déployer l'environnement.
  • ProtoSDK. La bibliothèque de protocoles utilisée par chaque suite de tests. Elle fournit les structures de données des messages de protocole, les méthodes pour encoder et décoder les messages, les méthodes pour envoyer et recevoir des messages, etc.
  • TestSuites. Tout le code et les documents des suites de tests sont enregistrés ici et classés par dossier représentant chaque suite de tests.
  • ProtocolTestManager. Un outil pour vous aider à configurer et exécuter les suites de tests.

Prérequis

Les Suites de tests de protocoles Windows sont basées sur .NET, elles peuvent donc être développées et exécutées sur différentes plateformes. Vous devez installer les logiciels listés ci-dessous en fonction de votre objectif de test, y compris leurs propres dépendances.

  1. .NET et composants associés

    a. Pour Windows, Linux et macOS, installez le SDK .NET 8.0 pour compiler ou exécuter les suites de tests.

    b. Pour ceux qui travaillent sous Windows et préfèrent un IDE, installez Visual Studio 2022 ou une version ultérieure (Visual Studio 2022 Community recommandé), ainsi que ces composants individuels depuis l'installateur :

    SectionComposant individuel dans Visual Studio 2022Exécuter les suites de tests de protocoles WindowsCompiler les suites de tests de protocoles Windows à partir du code source
    .NET.NET SDKRequisRequis
    Compilateurs, outils de build et runtimeCompilateurs C# et Visual Basic RoslynRequis
    Compilateurs, outils de build et runtimeMSVC v143 - VS 2022 C++ x64/x86 build tools (Latest)Requis1
    Compilateurs, outils de build et runtimePrise en charge C++/CLI pour les outils de build v143 (Latest)Requis1
    Compilateurs, outils de build et runtimeC++ 2022 Redistributable UpdateRequis1Requis1
    Activités de développementFonctionnalités principales C++Requis1
    SDK, bibliothèques et frameworksWindows 10 SDK (10.0.19041.0)Requis1

    Remarque :

[1] : Ce composant individuel est requis par ADFamily et MS-SMBD qui contiennent du code C++.

  1. Protocol Test Framework v2.6 (build 2.6.1)

    Protocol Test Framework est référencé par les projets de ProtoSDK et TestSuites en tant que packages NuGet.

  2. Network Direct DDK

    Depuis NetworkDirect_DDK.zip, extrayez ndspi.h et ndstatus.h dans le chemin de projet ProtoSDK\RDMA\include. Cela sert à compiler la suite de tests SMBD.

  3. PowerShell Core

    Ceci n'est requis que lorsque l'utilisateur souhaite utiliser PowerShell Core Remoting over SSH.

  4. Win32-OpenSSH

    Ceci n'est requis que lorsque l'utilisateur souhaite utiliser PowerShell Core Remoting over SSH pour la plateforme Windows.

  5. WMF 5.1

    Ceci n'est requis que lorsque l'utilisateur souhaite utiliser l'implémentation PowerShell sur Windows Server 2012R2 pour ISutCommonControlAdapter dans CommonTestSuite.ptfconfig.

    a. Si vous choisissez l'implémentation PowerShell pour ISutCommonControlAdapter dans un environnement de domaine où le DC exécute Windows Server 2012R2, afin d'obtenir le SID depuis le DC, vous devez installer WMF 5.1 sur le DC ; pour les autres versions de Windows Server plus récentes que Windows Server 2012R2, vous n'avez pas besoin d'installer WMF 5.1 sur le DC.

    b. Si vous choisissez l'implémentation PowerShell pour ISutCommonControlAdapter sur les plateformes Windows (y compris Windows Server 2012R2 et les versions plus récentes) dans un environnement de groupe de travail, vous n'avez pas besoin d'installer WMF 5.1 sur le SUT.

    c. Si vous choisissez l'implémentation managée pour ISutCommonControlAdapter sur les plateformes Windows (y compris Windows Server 2012R2 et les versions plus récentes), elle utilisera des requêtes LDAP pour obtenir le SID et ne prend en charge que l'environnement de domaine.

Si vous travaillez sous Windows, vous pouvez utiliser le script dans le dossier InstallPrerequisites pour télécharger et installer automatiquement ces logiciels.

Conseils lors de l'utilisation du script dans le dossier InstallPrerequisites :

  • Le script nécessite une connectivité Internet pour télécharger certaines dépendances.

  • Le paramètre Category est utilisé pour spécifier quel ensemble d'outils doit être téléchargé et installé, en fonction des différents noms de suites de tests, tels que FileServer, Kerberos, SMBD, RDP, BranchCache, ADFamily, AZOD, ADFSPIP et ADOD. Les catégories sont définies dans PrerequisitesConfig.xml et vous pouvez mettre à jour ce fichier de configuration pour répondre à vos besoins.

  • Le paramètre ConfigPath est utilisé pour spécifier le chemin du fichier de configuration des prérequis, la valeur par défaut est « .\PrerequisitesConfig.xml ».

  • Pour exécuter le script pour la suite de tests FileServer, par exemple, ouvrez Windows PowerShell et exécutez les commandes ci-dessous dans la fenêtre PowerShell :

cd WindowsProtocolTestSuites\InstallPrerequisites
.\InstallPrerequisites.ps1 -Category FileServer -ConfigPath ".\PrerequisitesConfig.xml"
  • Si vous rencontrez des erreurs concernant la Execution Policy, assurez-vous d'exécuter Windows PowerShell en tant qu'Administrateur, puis tapez ce qui suit et appuyez sur Entrée :
Set-ExecutionPolicy RemoteSigned

Vous pouvez exécuter la commande ci-dessous pour vérifier si la Execution Policy est correctement définie :

Get-ExecutionPolicy

Puis relancez le script.

Compilation

Après avoir cloné une copie de ce dépôt, vous pouvez exécuter build.ps1 dans PowerShell ou build.sh dans un shell pour chaque suite de tests séparément, après avoir installé tous les logiciels requis pour la compilation listés dans Prérequis.

Par exemple, si vous souhaitez compiler la suite de tests FileServer :

cd WindowsProtocolTestSuites\TestSuites\FileServer\src
build.ps1

Une fois la compilation réussie, la structure de dossiers commune doit être générée dans le dossier WindowsProtocolTestSuite\drop\TestSuites\[TestSuiteName]\.

  • Bin : tous les binaires compilés, y compris ProtoSDK, les adaptateurs et les suites de tests.
  • Batch : fichiers batch (.ps1, .sh) qui peuvent être utilisés pour lancer les tests.
  • Scripts : scripts qui peuvent être utilisés pour configurer l'environnement de test.
  • Utils : quelques utilitaires qui peuvent être utilisés dans les tests.

Alternativement, vous pouvez télécharger l'archive précompilée de la suite de tests depuis Releases.

Exécution

Avant d'exécuter une suite de tests, vous devez effectuer l'une des actions suivantes :

  • Télécharger l'archive de la suite de tests que vous souhaitez exécuter depuis Releases, et l'extraire vers un chemin auquel vous avez accès.
  • Compiler la suite de tests conformément à Compiler une suite de tests.

Sur macOS, la suite de tests FileServer utilise les classes AesCcm et AesGcm qui nécessitent OpenSSL. Donc, s'il n'y a pas OpenSSL 1.1 sur votre macOS, veuillez installer OpenSSL 1.1 et définir la variable d'environnement comme suit avant d'exécuter la suite de tests FileServer sur macOS,

brew install [email protected]
export DYLD_LIBRARY_PATH="/usr/local/opt/[email protected]/lib:$DYLD_LIBRARY_PATH"

Remarque :

  1. Si brew n'est pas installé sur votre macOS, vous pouvez l'installer conformément à brew.
  2. Si vous obtenez l'erreur « algorithm 'aesgcm' is not supported on this platform », cela signifie que dotnet ne peut pas charger la classe AesGcm depuis libcrypto.1.1.dylib sur votre macOS. Vous devez alors vérifier si son emplacement figure dans votre variable d'environnement DYLD_LIBRARY_PATH ou non. Une fois OpenSSL 1.1 installé sur votre macOS, l'emplacement de la bibliothèque crypto est /usr/local/Cellar/[email protected]/1.1.1m/lib/libcrypto.1.1.dylib et /usr/local/opt/openssl pointe par défaut vers le répertoire /usr/local/Cellar/[email protected]/1.1.1m.

Exécuter une suite de tests par batch

Dans le dossier Batch situé à la racine de la suite de tests, plusieurs scripts sont disponibles pour lancer les tests.

  1. Exécuter tous les cas de test

    Exécutez RunAllTestCases.ps1 dans PowerShell, ou RunAllTestCases.sh dans un shell directement.

  2. Exécuter des cas de test par filtres

    Exécutez RunTestCasesByFilter.ps1 -Filter [votre expression de filtre] dans PowerShell, ou RunTestCasesByFilter.sh [votre expression de filtre] dans un shell directement.

    Par exemple, vous pouvez exécuter la commande ci-dessous si vous souhaitez exécuter les cas de test avec la catégorie de test BVT et SMB311 :

    RunTestCasesByFilter.sh "TestCategory=BVT&TestCategory=SMB311"
    

    Pour plus d'informations sur la construction de l'expression de filtre, vous pouvez consulter Détails de l'option de filtre.

  3. Exécution à blanc

    Si vous souhaitez lister les cas de test avant de les exécuter réellement, vous pouvez ajouter le commutateur -DryRun aux scripts .ps1 ou passer une chaîne non vide comme dernier argument aux scripts .sh.

    Par exemple, vous pouvez exécuter la commande ci-dessous si vous souhaitez lister les cas de test avec la catégorie de test BVT et SMB311 :

    RunTestCasesByFilter.sh "TestCategory=BVT&TestCategory=SMB311" "list"
    

Configurer et exécuter une suite de tests via Protocol Test Manager Service

Protocol Test Manager Service (PTMService) est un outil applicatif web sur une seule page qui vous aide à configurer et exécuter les cas de test dans les suites de tests. PTMService prend en charge plusieurs plateformes, notamment Windows, Linux et macOS. Pour démarrer avec PTMService, vous pouvez consulter le Wiki PTMService.

Pour les configurations FileServer, le paramètre PTM UI Enable Parallel Test Execution correspond à la propriété .ptfconfig pleinement qualifiée Common.PTF.LogProfileParserPatch.Enabled. Définissez-la sur true pour activer l'exécution parallèle par étapes au sein d'une exécution de test FileServer.

Documents

Vous pouvez configurer l'environnement de test et la suite de tests conformément à son Guide d'utilisation. Chaque suite de tests possède son propre Guide d'utilisation dans le dossier WindowsProtocolTestSuites\TestSuites\[TestSuiteName]\docs. Il existe deux autres types de documents dans le même dossier :

  • Documents techniques. La documentation des spécifications ouvertes pour les protocoles, publiée par Microsoft. C'est la base du développement des suites de tests.
  • Spécifications de conception des tests. Elles fournissent des informations sur la portée des tests et la conception de la suite de tests.

Contribuer

Vous pouvez trouver le guide de contribution ici.

Licence

Les suites de tests de protocoles Windows sont sous licence MIT.

Contact

Les ressources suivantes concernent les actualités, les discussions et le support des suites de tests de protocoles Windows :

Code de conduite open source de Microsoft

Ce projet a adopté le Code de conduite open source de Microsoft. Pour plus d'informations, consultez la FAQ sur le code de conduite ou contactez [email protected] pour toute question ou commentaire supplémentaire.

Catégories