
WindowsProtocolTestSuites v4.26.9.0
⭐⭐ Unisciti a noi alla SNIA SDC per l'SMB3 IO Lab (28 settembre - 1 ottobre 2026), scopri i prossimi Interoperability Events
Windows Protocol Test Suites
Windows Protocol Test Suites forniscono test di interoperabilità rispetto all'implementazione delle specifiche aperte di Windows, tra cui File Services, Identity Management, Remote Desktop e altre.
Sviluppate originariamente per i test interni delle Microsoft Open Specifications, le Microsoft Protocol Test Suites sono state ampiamente utilizzate durante i Plugfest e i laboratori di interoperabilità per testare le implementazioni dei partner. Una Test Suite valuta se l'implementazione di un protocollo o di una famiglia di protocolli soddisfa determinati requisiti di interoperabilità. Le Test Suite non coprono ogni requisito del protocollo e non certificano in alcun modo un'implementazione, anche se tutti i test vengono superati. Tuttavia, ogni test suite fornisce agli utenti un'utile indicazione sull'interoperabilità.
- File Server Family Test Suite. È progettata per testare le implementazioni della famiglia di protocolli file server, tra cui [MS-SMB2], [MS-DFSC], [MS-SWN], [MS-FSRVP], [MS-FSA], [MS-FSCC], [MS-RSVD] e [MS-SQOS]. Per iniziare con la test suite File Server, puoi fare riferimento alla File Server Test Suite User Guide. Per creare un ambiente di test Azure usa e getta, utilizza la File Server Azure automated deployment.
- RDP Client Family Test Suite. Fornisce test di interoperabilità per l'implementazione client dei protocolli della famiglia RDP, tra cui [MS-RDPBCGR], [MS-RDPEDISP], [MS-RDPEDYC], [MS-RDPEGFX], [MS-RDPEGT], [MS-RDPEI], [MS-RDPEMT], [MS-RDPEUDP], [MS-RDPEUSB], [MS-RDPEVOR] e [MS-RDPRFX]. Per iniziare con la test suite RDP Client, puoi fare riferimento alla RDP Client Test Suite User Guide
- RDP Server Family Test Suite. Fornisce test di interoperabilità per l'implementazione server dei protocolli della famiglia RDP, tra cui [MS-RDPBCGR], [MS-RDPEDYC], [MS-RDPEMT] e [MS-RDPELE]. Per iniziare con la test suite RDP Server, puoi fare riferimento alla RDP Server Test Suite User Guide
- Kerberos Server Test Suite. È progettata per testare le implementazioni server dei protocolli Kerberos, tra cui [MS-KILE], [MS-KKDCP] e [MS-PAC]. Per iniziare con la test suite Kerberos Server, puoi fare riferimento alla Kerberos Server Test Suite User Guide
- SMBD Server Test Suite. È progettata per testare le implementazioni del protocollo SMB2&3 direct (RDMA), come specificato in [MS-SMBD] e [MS-SMB2]. Per iniziare con la test suite SMBD Server, puoi fare riferimento alla SMBD Server Test Suite User Guide
- Branch Cache Test Suite. È progettata per testare le implementazioni dei protocolli [MS-PCCRTP], [MS-PCCRR], [MS-PCHC] e [MS-PCCRC]. Per iniziare con la test suite Branch Cache, puoi fare riferimento alla Branch Cache Test Suite User Guide
- AZOD Test Suite. È progettata per testare le implementazioni del protocollo [MS-AZOD]. Per iniziare con la test suite AZOD, puoi fare riferimento alla AZOD Test Suite User Guide
- ADFamily Test Suite. È progettata per testare le implementazioni dei protocolli Active Directory, tra cui [MS-ADA1], [MS-ADA2], [MS-ADA3], [MS-ADLS], [MS-ADSC], [MS-ADTS], [MS-APDS], [MS-DRSR], [MS-FRS2], [MS-LSAD], [MS-LSAT], [MS-SAMR] e [MS-NRPC]. Per iniziare con la test suite ADFamily, puoi fare riferimento alla ADFamily Test Suite User Guide
- ADFSPIP Client Test Suite. È progettata per testare le implementazioni dell'integrazione tra ADFS Proxy e Web Application Proxy, come descritto in [MS-ADFSPIP]. Per iniziare con la test suite ADFSPIP Client, puoi fare riferimento alla ADFSPIP Client Test Suite User Guide
- ADOD Test Suite. È progettata per testare le implementazioni del protocollo [MS-ADOD]. Per iniziare con la test suite ADOD, puoi fare riferimento alla ADOD Test Suite User Guide
- XCA Test Suite. È progettata per testare le implementazioni del protocollo [MS-XCA]. Per iniziare con la test suite XCA, puoi fare riferimento alla XCA Test Suite User Guide
- WSP Test Suite. È progettata per testare le implementazioni del protocollo [MS-WSP]. Per iniziare con la test suite WSP, puoi fare riferimento alla WSP Test Suite User Guide
Componenti
Windows Protocol Test Suites contengono i seguenti componenti:
- CommonScripts. Script comuni utilizzati da ciascuna test suite. Normalmente vengono usati per distribuire l'ambiente.
- ProtoSDK. La libreria di protocolli utilizzata da ciascuna test suite. Fornisce le strutture dati dei messaggi di protocollo, i metodi per codificare e decodificare i messaggi, i metodi per inviare e ricevere messaggi e altro ancora.
- TestSuites. Tutto il codice e i documenti delle Test Suite sono salvati qui e categorizzati per cartella che rappresenta ciascuna test suite.
- ProtocolTestManager. Uno strumento per aiutarti a configurare ed eseguire le test suite.
Prerequisiti
Le Windows Protocol Test Suites si basano su .NET e possono quindi essere sviluppate ed eseguite su piattaforme diverse. Dovresti installare il software elencato di seguito in base al tuo scopo di test, incluse le relative dipendenze.
-
.NET e componenti correlati
a. Per Windows, Linux e macOS, installa .NET 8.0 SDK per compilare o eseguire le test suite.
b. Per coloro che lavorano su Windows e preferiscono un IDE, installa Visual Studio 2022 o versione superiore (Visual Studio 2022 Community consigliata), insieme a questi singoli componenti dal programma di installazione:
Sezione Componente individuale in Visual Studio 2022 Esegui Windows Protocol Test Suites Compila Windows Protocol Test Suites dal codice sorgente .NET .NET SDK Richiesto Richiesto Compilatori, strumenti di compilazione e runtime Compilatori C# e Visual Basic Roslyn Richiesto Compilatori, strumenti di compilazione e runtime MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest) Richiesto1 Compilatori, strumenti di compilazione e runtime Supporto C++/CLI per v143 build tools (Latest) Richiesto1 Compilatori, strumenti di compilazione e runtime C++ 2022 Redistributable Update Richiesto1 Richiesto1 Attività di sviluppo Funzionalità di base C++ Richiesto1 SDK, librerie e framework Windows 10 SDK (10.0.19041.0) Richiesto1 Nota:
[1]: Questo componente individuale è richiesto da ADFamily e MS-SMBD, che hanno codice C++.
-
Protocol Test Framework v2.6 (build 2.6.1)
Protocol Test Framework è referenziato dai progetti di ProtoSDK e TestSuites come pacchetti NuGet.
-
Da
NetworkDirect_DDK.zipestraindspi.hendstatus.hnel percorso del progettoProtoSDK\RDMA\include. Questo serve per compilare la test suite SMBD. -
Questo è richiesto solo quando l'utente desidera utilizzare PowerShell Core Remoting over SSH.
-
Questo è richiesto solo quando l'utente desidera utilizzare PowerShell Core Remoting over SSH per la piattaforma Windows.
-
Questo è richiesto solo quando l'utente desidera utilizzare l'implementazione PowerShell su Windows Server 2012R2 per ISutCommonControlAdapter in CommonTestSuite.ptfconfig.
a. Se scegli l'implementazione PowerShell per ISutCommonControlAdapter in un ambiente di dominio in cui il DC esegue Windows Server 2012R2, per ottenere il SID dal DC, devi installare WMF 5.1 sul DC; per altre versioni di Windows Server più recenti di Windows Server 2012R2, non è necessario installare WMF 5.1 sul DC.
b. Se scegli l'implementazione PowerShell per ISutCommonControlAdapter su piattaforme Windows (incluse Windows Server 2012R2 e versioni più recenti) in un ambiente workgroup, non è necessario installare WMF 5.1 sul SUT.
c. Se scegli l'implementazione managed per ISutCommonControlAdapter su piattaforme Windows (incluse Windows Server 2012R2 e versioni più recenti), utilizzerà query LDAP per ottenere il SID e supporta solo ambienti di dominio.
Se lavori su Windows, puoi utilizzare lo script nella cartella InstallPrerequisites per scaricare e installare automaticamente questo software.
Suggerimenti per l'utilizzo dello script nella cartella InstallPrerequisites:
-
Lo script richiede la connettività Internet per scaricare alcune dipendenze.
-
Il parametro Category viene utilizzato per specificare quale set di strumenti deve essere scaricato e installato, in base ai diversi nomi delle test suite, come
FileServer,Kerberos,SMBD,RDP,BranchCache,ADFamily,AZOD,ADFSPIPeADOD. Le categorie sono definite in PrerequisitesConfig.xml e puoi aggiornare questo file di configurazione per soddisfare le tue esigenze. -
Il parametro ConfigPath viene utilizzato per specificare il percorso del file di configurazione dei prerequisiti; il valore predefinito è ".\PrerequisitesConfig.xml".
-
Per eseguire lo script per la test suite FileServer, ad esempio, apri Windows PowerShell ed esegui i comandi seguenti nella PowerShell Window:
cd WindowsProtocolTestSuites\InstallPrerequisites
.\InstallPrerequisites.ps1 -Category FileServer -ConfigPath ".\PrerequisitesConfig.xml"
- Se incontri errori relativi a Execution Policy, assicurati di eseguire Windows PowerShell come Administrator e digita quanto segue e premi invio:
Set-ExecutionPolicy RemoteSigned
Puoi eseguire il comando seguente per verificare se la Execution Policy è impostata correttamente:
Get-ExecutionPolicy
Poi riesegui lo script.
Compilazione
Dopo aver clonato una copia di questo repository, puoi eseguire build.ps1 in PowerShell o build.sh in shell per ciascuna test suite separatamente, dopo aver installato tutto il software richiesto per la compilazione elencato in Prerequisiti.
Ad esempio, se vuoi compilare la test suite FileServer:
cd WindowsProtocolTestSuites\TestSuites\FileServer\src
build.ps1
Dopo che la compilazione è riuscita, la struttura di cartelle comune dovrebbe essere generata nella cartella WindowsProtocolTestSuite\drop\TestSuites\[TestSuiteName]\.
Bin: tutti i binari compilati, inclusi ProtoSDK, gli adapter e le test suite.Batch: file batch (.ps1, .sh) che possono essere utilizzati per avviare i test.Scripts: script che possono essere utilizzati per configurare l'ambiente di test.Utils: alcune utilità che possono essere utilizzate nei test.
In alternativa, puoi scaricare l'archivio precompilato della test suite da Releases.
Esecuzione
Prima di eseguire una test suite, devi fare una delle seguenti cose:
- Scaricare l'archivio della test suite che vuoi eseguire da Releases ed estrarlo in un percorso a cui hai accesso.
- Compilare la test suite secondo Compilare una test suite.
Su macOS, la test suite FileServer utilizza le classi AesCcm e AesGcm che richiedono OpenSSL, quindi se non è presente OpenSSL 1.1 sul tuo macOS, installa OpenSSL 1.1 e imposta la variabile d'ambiente come segue prima di eseguire la test suite FileServer su macOS,
brew install [email protected]
export DYLD_LIBRARY_PATH="/usr/local/opt/[email protected]/lib:$DYLD_LIBRARY_PATH"
Nota:
- Se
brewnon è installato sul tuo macOS, puoi installarlo seguendo brew. - Se ricevi l'errore "algorithm 'aesgcm' is not supported on this platform", significa che dotnet non riesce a caricare la classe AesGcm da libcrypto.1.1.dylib sul tuo macOS; devi quindi verificare se la sua posizione è presente o meno nella variabile d'ambiente
DYLD_LIBRARY_PATH. Una volta installato OpenSSL 1.1 sul tuo macOS, la posizione della libreria crypto è/usr/local/Cellar/[email protected]/1.1.1m/lib/libcrypto.1.1.dylibe/usr/local/opt/opensslpunta per impostazione predefinita alla directory/usr/local/Cellar/[email protected]/1.1.1m.
Eseguire la test suite tramite batch
Nella cartella Batch sotto il percorso radice della test suite, ci sono diversi script che puoi utilizzare per avviare i test.
-
Eseguire tutti i casi di test
Esegui
RunAllTestCases.ps1in PowerShell, oppureRunAllTestCases.shin shell direttamente. -
Eseguire i casi di test tramite filtri
Esegui
RunTestCasesByFilter.ps1 -Filter [la tua espressione di filtro]in PowerShell, oppureRunTestCasesByFilter.sh [la tua espressione di filtro]in shell direttamente.Ad esempio, puoi eseguire il comando seguente se vuoi eseguire i casi di test con categoria di test
BVTeSMB311:RunTestCasesByFilter.sh "TestCategory=BVT&TestCategory=SMB311"Per maggiori informazioni su come costruire l'espressione di filtro, puoi fare riferimento a Filter option details.
-
Dry run
Se vuoi elencare i casi di test prima di eseguirli effettivamente, puoi aggiungere l'opzione
-DryRunagli script.ps1oppure passare una stringa non vuota come ultimo argomento agli script.sh.Ad esempio, puoi eseguire il comando seguente se vuoi elencare i casi di test con categoria di test
BVTeSMB311:RunTestCasesByFilter.sh "TestCategory=BVT&TestCategory=SMB311" "list"
Configurare ed eseguire la test suite tramite Protocol Test Manager Service
Protocol Test Manager Service (PTMService) è uno strumento applicativo a pagina web singola che ti aiuta a configurare ed eseguire i casi di test nelle Test Suites. PTMService supporta più piattaforme, tra cui Windows, Linux e macOS. Per iniziare con PTMService, puoi fare riferimento alla PTMService Wiki.
Per le configurazioni di FileServer, l'impostazione dell'interfaccia PTM Enable Parallel Test Execution corrisponde alla proprietà .ptfconfig completamente qualificata Common.PTF.LogProfileParserPatch.Enabled. Impostala su true per abilitare l'esecuzione parallela a stadi all'interno di un'esecuzione di test FileServer.
Documenti
Puoi configurare l'ambiente di test e la test suite in base alla sua User Guide.
Ogni test suite ha la propria User Guide nella cartella WindowsProtocolTestSuites\TestSuites\[TestSuiteName]\docs.
Ci sono altri due tipi di documenti nella stessa cartella:
- Technical Documents. La documentazione delle Open Specifications per i protocolli, pubblicata da Microsoft. È la base per lo sviluppo delle Test Suites.
- Test Design Specs. Fornisce informazioni sull'ambito dei test e sulla progettazione della test suite.
Contribuire
Puoi trovare la guida per contribuire qui.
Licenza
Windows Protocol Test Suites sono distribuite sotto la licenza MIT.
Contatti
Le seguenti risorse sono dedicate a notizie, discussioni e supporto sulle Windows protocol test suite:
- Visualizza gli annunci di notizie nel Open Specification Windows Protocols Forum.
- Discuti i problemi delle test suite qui su GitHub.
- Per il supporto su Open Specifications Protocols, contatta [email protected].
Microsoft Open Source Code of Conduct
Questo progetto ha adottato il Microsoft Open Source Code of Conduct. Per maggiori informazioni consulta le Code of Conduct FAQ o contatta [email protected] per ulteriori domande o commenti.