⭐⭐ 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 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à.
Windows Protocol Test Suites contengono i seguenti componenti:
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.zip estrai ndspi.h e ndstatus.h nel percorso del progetto ProtoSDK\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, ADFSPIP e ADOD. 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"
Set-ExecutionPolicy RemoteSigned
Puoi eseguire il comando seguente per verificare se la Execution Policy è impostata correttamente:
Get-ExecutionPolicy
Poi riesegui lo script.
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.
Prima di eseguire una test suite, devi fare una delle seguenti cose:
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:
brew non è installato sul tuo macOS, puoi installarlo seguendo brew.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.dylib e /usr/local/opt/openssl punta per impostazione predefinita alla directory /usr/local/Cellar/[email protected]/1.1.1m.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.ps1 in PowerShell, oppure RunAllTestCases.sh in shell direttamente.
Eseguire i casi di test tramite filtri
Esegui RunTestCasesByFilter.ps1 -Filter [la tua espressione di filtro] in PowerShell, oppure RunTestCasesByFilter.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 BVT e SMB311:
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 -DryRun agli script .ps1 oppure 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 BVT e SMB311:
RunTestCasesByFilter.sh "TestCategory=BVT&TestCategory=SMB311" "list"
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.
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:
Puoi trovare la guida per contribuire qui.
Windows Protocol Test Suites sono distribuite sotto la licenza MIT.
Le seguenti risorse sono dedicate a notizie, discussioni e supporto sulle Windows protocol test suite:
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.