
WindowsProtocolTestSuites v4.26.9.0
> ⭐⭐ Besuchen Sie uns bei der SNIA SDC im SMB3 IO Lab (28. September – 1. Oktober 2026) und sehen Sie sich die kommenden Interoperability-Events an.
Windows Protocol Test Suites
Windows Protocol Test Suites bieten Interoperabilitätstests gegen die Implementierung von Windows Open Specifications, einschließlich File Services, Identity Management, Remote Desktop und weiteren.
Ursprünglich für interne Tests der Microsoft Open Specifications entwickelt, wurden die Microsoft Protocol Test Suites umfangreich während Plugfests und Interoperabilitätslabors eingesetzt, um gegen Partnerimplementierungen zu testen. Eine Test Suite bewertet, ob eine Protokoll- oder Protokollfamilienimplementierung bestimmte Interoperabilitätsanforderungen erfüllt. Test Suites decken nicht jede Protokollanforderung ab und zertifizieren in keiner Weise eine Implementierung, selbst wenn alle Tests bestanden werden. Jedoch bietet jede Test Suite den Benutzern einen nützlichen Hinweis auf die Interoperabilität.
- File Server Family Test Suite. Sie ist darauf ausgelegt, Implementierungen der Dateiserver-Protokollfamilie zu testen, einschließlich [MS-SMB2], [MS-DFSC], [MS-SWN], [MS-FSRVP], [MS-FSA], [MS-FSCC], [MS-RSVD] und [MS-SQOS]. Um mit der File Server Test Suite zu beginnen, können Sie den File Server Test Suite User Guide heranziehen. Um eine wegwerfbare Azure-Testumgebung zu erstellen, verwenden Sie die File Server Azure automated deployment.
- RDP Client Family Test Suite. Sie bietet Interoperabilitätstests für die Client-Implementierung der RDP-Familienprotokolle, einschließlich [MS-RDPBCGR], [MS-RDPEDISP], [MS-RDPEDYC], [MS-RDPEGFX], [MS-RDPEGT], [MS-RDPEI], [MS-RDPEMT], [MS-RDPEUDP], [MS-RDPEUSB], [MS-RDPEVOR] und [MS-RDPRFX]. Um mit der RDP Client Test Suite zu beginnen, können Sie den RDP Client Test Suite User Guide heranziehen.
- RDP Server Family Test Suite. Sie bietet Interoperabilitätstests für die Server-Implementierung der RDP-Familienprotokolle, einschließlich [MS-RDPBCGR], [MS-RDPEDYC], [MS-RDPEMT] und [MS-RDPELE]. Um mit der RDP Server Test Suite zu beginnen, können Sie den RDP Server Test Suite User Guide heranziehen.
- Kerberos Server Test Suite. Sie ist darauf ausgelegt, Server-Implementierungen der Kerberos-Protokolle zu testen, einschließlich [MS-KILE], [MS-KKDCP] und [MS-PAC]. Um mit der Kerberos Server Test Suite zu beginnen, können Sie den Kerberos Server Test Suite User Guide heranziehen.
- SMBD Server Test Suite. Sie ist darauf ausgelegt, die Implementierungen des SMB2&3 Direct (RDMA)-Protokolls zu testen, wie in [MS-SMBD] und [MS-SMB2] spezifiziert. Um mit der SMBD Server Test Suite zu beginnen, können Sie den SMBD Server Test Suite User Guide heranziehen.
- Branch Cache Test Suite. Sie ist darauf ausgelegt, die Implementierungen der Protokolle [MS-PCCRTP], [MS-PCCRR], [MS-PCHC] und [MS-PCCRC] zu testen. Um mit der Branch Cache Test Suite zu beginnen, können Sie den Branch Cache Test Suite User Guide heranziehen.
- AZOD Test Suite. Sie ist darauf ausgelegt, die Implementierungen des Protokolls [MS-AZOD] zu testen. Um mit der AZOD Test Suite zu beginnen, können Sie den AZOD Test Suite User Guide heranziehen.
- ADFamily Test Suite. Sie ist darauf ausgelegt, die Implementierungen der Active Directory-Protokolle zu testen, einschließlich [MS-ADA1], [MS-ADA2], [MS-ADA3], [MS-ADLS], [MS-ADSC], [MS-ADTS], [MS-APDS], [MS-DRSR], [MS-FRS2], [MS-LSAD], [MS-LSAT], [MS-SAMR] und [MS-NRPC]. Um mit der ADFamily Test Suite zu beginnen, können Sie den ADFamily Test Suite User Guide heranziehen.
- ADFSPIP Client Test Suite. Sie ist darauf ausgelegt, die Implementierungen der Integration von ADFS Proxy und Web Application Proxy zu testen, wie in [MS-ADFSPIP] beschrieben. Um mit der ADFSPIP Client Test Suite zu beginnen, können Sie den ADFSPIP Client Test Suite User Guide heranziehen.
- ADOD Test Suite. Sie ist darauf ausgelegt, die Implementierungen des Protokolls [MS-ADOD] zu testen. Um mit der ADOD Test Suite zu beginnen, können Sie den ADOD Test Suite User Guide heranziehen.
- XCA Test Suite. Sie ist darauf ausgelegt, die Implementierungen des Protokolls [MS-XCA] zu testen. Um mit der XCA Test Suite zu beginnen, können Sie den XCA Test Suite User Guide heranziehen.
- WSP Test Suite. Sie ist darauf ausgelegt, die Implementierungen des Protokolls [MS-WSP] zu testen. Um mit der WSP Test Suite zu beginnen, können Sie den WSP Test Suite User Guide heranziehen.
Komponenten
Windows Protocol Test Suites enthalten die folgenden Komponenten:
- CommonScripts. Gemeinsame Skripte, die von jeder Test Suite verwendet werden. Normalerweise werden sie zum Bereitstellen der Umgebung verwendet.
- ProtoSDK. Die Protokollbibliothek, die von jeder Test Suite verwendet wird. Sie stellt die Datenstrukturen der Protokollnachrichten, die Methoden zum Kodieren und Dekodieren der Nachrichten, die Methoden zum Senden und Empfangen von Nachrichten und weiteres bereit.
- TestSuites. Der gesamte Code und die Dokumente aller Test Suites werden hier gespeichert und nach Ordnern kategorisiert, die jede Test Suite repräsentieren.
- ProtocolTestManager. Ein Tool, das Ihnen hilft, Test Suites zu konfigurieren und auszuführen.
Voraussetzungen
Windows Protocol Test Suites basieren auf .NET und können daher auf verschiedenen Plattformen entwickelt und ausgeführt werden. Sie sollten die unten aufgeführte Software entsprechend Ihrem Testzweck installieren, einschließlich ihrer eigenen Abhängigkeiten.
-
.NET und zugehörige Komponenten
a. Für Windows, Linux und macOS installieren Sie das .NET 8.0 SDK, um Test Suites zu erstellen oder auszuführen.
b. Für diejenigen, die unter Windows arbeiten und eine IDE bevorzugen, installieren Sie Visual Studio 2022 oder höher (empfohlen wird Visual Studio 2022 Community), zusammen mit diesen einzelnen Komponenten aus dem Installer:
Abschnitt Einzelne Komponente in Visual Studio 2022 Windows Protocol Test Suites ausführen Windows Protocol Test Suites aus dem Quellcode erstellen .NET .NET SDK Erforderlich Erforderlich Compiler, Build-Tools und Runtime C# and Visual Basic Roslyn compilers Erforderlich Compiler, Build-Tools und Runtime MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest) Erforderlich1 Compiler, Build-Tools und Runtime C++/CLI support for v143 build tools (Latest) Erforderlich1 Compiler, Build-Tools und Runtime C++ 2022 Redistributable Update Erforderlich1 Erforderlich1 Development Activities C++ core features Erforderlich1 SDKs, libraries, and frameworks Windows 10 SDK (10.0.19041.0) Erforderlich1 Hinweis:
[1]: Diese einzelne Komponente wird von ADFamily und MS-SMBD benötigt, die C++-Code enthalten.
-
Protocol Test Framework v2.6 (build 2.6.1)
Das Protocol Test Framework wird von Projekten von ProtoSDK und TestSuites als NuGet-Pakete referenziert.
-
Extrahieren Sie aus
NetworkDirect_DDK.zipdie Dateienndspi.hundndstatus.hin den ProjektpfadProtoSDK\RDMA\include. Dies dient zum Erstellen der SMBD Test Suite. -
Dies ist nur erforderlich, wenn der Benutzer PowerShell Core Remoting over SSH verwenden möchte.
-
Dies ist nur erforderlich, wenn der Benutzer PowerShell Core Remoting over SSH für die Windows-Plattform verwenden möchte.
-
Dies ist nur erforderlich, wenn der Benutzer die PowerShell-Implementierung unter Windows Server 2012R2 für ISutCommonControlAdapter in CommonTestSuite.ptfconfig verwenden möchte.
a. Wenn Sie die PowerShell-Implementierung für ISutCommonControlAdapter in einer Domänenumgebung wählen, in der der DC unter Windows Server 2012R2 läuft, müssen Sie WMF 5.1 auf dem DC installieren, um die SID vom DC abzurufen. Für andere Windows Server-Versionen, die neuer als Windows Server 2012R2 sind, müssen Sie WMF 5.1 nicht auf dem DC installieren.
b. Wenn Sie die PowerShell-Implementierung für ISutCommonControlAdapter auf Windows-Plattformen (einschließlich Windows Server 2012R2 und neueren Versionen) in einer Arbeitsgruppenumgebung wählen, müssen Sie WMF 5.1 nicht auf dem SUT installieren.
c. Wenn Sie die verwaltete Implementierung für ISutCommonControlAdapter auf Windows-Plattformen (einschließlich Windows Server 2012R2 und neueren Versionen) wählen, werden LDAP-Abfragen verwendet, um die SID abzurufen, und es wird nur die Domänenumgebung unterstützt.
Wenn Sie unter Windows arbeiten, können Sie das Skript im Ordner InstallPrerequisites verwenden, um diese Software automatisch herunterzuladen und zu installieren.
Tipps zur Verwendung des Skripts im Ordner InstallPrerequisites:
-
Das Skript erfordert Internetkonnektivität, um einige Abhängigkeiten herunterzuladen.
-
Der Parameter Category wird verwendet, um anzugeben, welcher Satz von Tools heruntergeladen und installiert werden soll, basierend auf den verschiedenen Test Suite-Namen wie
FileServer,Kerberos,SMBD,RDP,BranchCache,ADFamily,AZOD,ADFSPIPundADOD. Die Kategorien sind in PrerequisitesConfig.xml definiert, und Sie können diese Konfigurationsdatei aktualisieren, um Ihre gewünschten Anforderungen zu erreichen. -
Der Parameter ConfigPath wird verwendet, um den Pfad der Voraussetzungen-Konfigurationsdatei anzugeben; der Standardwert ist ".\PrerequisitesConfig.xml".
-
Um das Skript beispielsweise für die FileServer Test Suite auszuführen, öffnen Sie Windows PowerShell und führen Sie die folgenden Befehle im PowerShell Window aus:
cd WindowsProtocolTestSuites\InstallPrerequisites
.\InstallPrerequisites.ps1 -Category FileServer -ConfigPath ".\PrerequisitesConfig.xml"
- Wenn Fehler bezüglich der Execution Policy auftreten, stellen Sie sicher, dass Sie Windows PowerShell als Administrator ausführen, und geben Sie Folgendes ein und drücken Sie die Eingabetaste:
Set-ExecutionPolicy RemoteSigned
Sie können den folgenden Befehl ausführen, um zu überprüfen, ob die Execution Policy korrekt festgelegt ist:
Get-ExecutionPolicy
Führen Sie dann das Skript erneut aus.
Build
Nachdem Sie eine Kopie geklont dieses Repos haben, können Sie build.ps1 in PowerShell oder build.sh in der Shell für jede Test Suite separat ausführen, nachdem Sie alle für den Build erforderlichen Softwarekomponenten installiert haben, die unter Voraussetzungen aufgeführt sind.
Wenn Sie beispielsweise die FileServer Test Suite erstellen möchten:
cd WindowsProtocolTestSuites\TestSuites\FileServer\src
build.ps1
Nachdem der Build erfolgreich war, sollte die gemeinsame Ordnerstruktur im Ordner WindowsProtocolTestSuite\drop\TestSuites\[TestSuiteName]\ generiert werden.
Bin: alle erstellten Binärdateien, einschließlich ProtoSDK, Adapter und Test Suites.Batch: Batch-Dateien (.ps1, .sh), die zum Starten von Tests verwendet werden können.Scripts: Skripte, die zum Konfigurieren der Testumgebung verwendet werden können.Utils: einige Dienstprogramme, die in Tests verwendet werden können.
Alternativ können Sie das vorgefertigte Test Suite-Archiv von Releases herunterladen.
Ausführen
Bevor Sie eine Test Suite ausführen, müssen Sie eines der folgenden Dinge tun:
- Laden Sie das Test Suite-Archiv, das Sie ausführen möchten, von Releases herunter und extrahieren Sie es in einen Pfad, auf den Sie Zugriff haben.
- Erstellen Sie die Test Suite gemäß Build a test suite.
Unter macOS verwendet die FileServer Test Suite die AesCcm- und AesGcm-Klassen, die OpenSSL erfordern. Wenn auf Ihrem macOS kein OpenSSL 1.1 vorhanden ist, installieren Sie bitte OpenSSL 1.1 und legen Sie die Umgebungsvariable wie folgt fest, bevor Sie die FileServer Test Suite unter macOS ausführen:
brew install [email protected]
export DYLD_LIBRARY_PATH="/usr/local/opt/[email protected]/lib:$DYLD_LIBRARY_PATH"
Hinweis:
- Wenn
brewauf Ihrem macOS nicht installiert ist, können Sie es gemäß brew installieren. - Wenn Sie den Fehler "algorithm 'aesgcm' is not supported on this platform" erhalten, bedeutet dies, dass dotnet die AesGcm-Klasse nicht aus libcrypto.1.1.dylib auf Ihrem macOS laden kann. Dann müssen Sie überprüfen, ob ihr Speicherort in Ihrer Umgebungsvariable
DYLD_LIBRARY_PATHenthalten ist oder nicht. Sobald Sie OpenSSL 1.1 auf Ihrem macOS installieren, befindet sich die Krypto-Bibliothek unter/usr/local/Cellar/[email protected]/1.1.1m/lib/libcrypto.1.1.dylib, und/usr/local/opt/opensslverlinkt standardmäßig auf das Verzeichnis/usr/local/Cellar/[email protected]/1.1.1m.
Test Suite per Batch ausführen
Im Ordner Batch unter dem Stammpfad der Test Suite befinden sich mehrere Skripte, mit denen Sie Tests starten können.
-
Alle Testfälle ausführen
Führen Sie
RunAllTestCases.ps1in PowerShell oderRunAllTestCases.shin der Shell direkt aus. -
Testfälle nach Filtern ausführen
Führen Sie
RunTestCasesByFilter.ps1 -Filter [your filter expression]in PowerShell oderRunTestCasesByFilter.sh [your filter expression]in der Shell direkt aus.Wenn Sie beispielsweise Testfälle mit der Testkategorie
BVTundSMB311ausführen möchten, können Sie den folgenden Befehl ausführen:RunTestCasesByFilter.sh "TestCategory=BVT&TestCategory=SMB311"Weitere Informationen zum Erstellen des Filterausdrucks finden Sie unter Filter option details.
-
Dry Run
Wenn Sie die Testfälle auflisten möchten, bevor Sie sie tatsächlich ausführen, können Sie den Schalter
-DryRunzu.ps1-Skripten hinzufügen oder eine nicht leere Zeichenfolge als letztes Argument an.sh-Skripte übergeben.Wenn Sie beispielsweise Testfälle mit der Testkategorie
BVTundSMB311auflisten möchten, können Sie den folgenden Befehl ausführen:RunTestCasesByFilter.sh "TestCategory=BVT&TestCategory=SMB311" "list"
Test Suite mit dem Protocol Test Manager Service konfigurieren und ausführen
Protocol Test Manager Service (PTMService) ist ein Single-Web-Page-Anwendungstool, das Ihnen hilft, Testfälle in den Test Suites zu konfigurieren und auszuführen. PTMService unterstützt mehrere Plattformen, einschließlich Windows, Linux und macOS. Um mit PTMService zu beginnen, können Sie das PTMService Wiki heranziehen.
Für FileServer-Konfigurationen entspricht die PTM-UI-Einstellung Enable Parallel Test Execution der vollqualifizierten .ptfconfig-Eigenschaft Common.PTF.LogProfileParserPatch.Enabled. Setzen Sie sie auf true, um die gestaffelte parallele Ausführung innerhalb eines FileServer-Testlaufs zu aktivieren.
Dokumente
Sie können die Testumgebung gemäß dem User Guide der jeweiligen Test Suite einrichten und die Test Suite konfigurieren.
Jede Test Suite hat ihren eigenen User Guide im Ordner WindowsProtocolTestSuites\TestSuites\[TestSuiteName]\docs.
Im selben Ordner gibt es zwei weitere Arten von Dokumenten:
- Technical Documents. Die von Microsoft veröffentlichte Open Specifications-Dokumentation für Protokolle. Sie ist die Grundlage für die Entwicklung der Test Suites.
- Test Design Specs. Sie bietet Informationen über den Testumfang und das Design der Test Suite.
Mitwirken
Den Leitfaden für Mitwirkende finden Sie hier.
Lizenz
Windows Protocol Test Suites stehen unter der MIT-Lizenz.
Kontakt
Die folgenden Ressourcen dienen Neuigkeiten, Diskussionen und Support zu Windows Protocol Test Suites:
- Sehen Sie sich Neuigkeiten und Ankündigungen im Open Specification Windows Protocols Forum an.
- Diskutieren Sie Probleme mit den Test Suites hier auf GitHub.
- Für Support zu Open Specifications Protocols kontaktieren Sie [email protected].
Microsoft Open Source Code of Conduct
Dieses Projekt hat den Microsoft Open Source Code of Conduct übernommen. Weitere Informationen finden Sie in den Code of Conduct FAQ oder kontaktieren Sie [email protected] bei weiteren Fragen oder Kommentaren.