업데이트로 돌아가기
New releaseSep 4, 2026

WindowsProtocolTestSuites v4.26.9.0

⭐⭐ SNIA SDC의 SMB3 IO Lab(2026년 9월 28일 - 10월 1일)에 참여하여 다가오는 Interoperability Events를 확인하세요.

공유

Windows 프로토콜 테스트 스위트

Windows 프로토콜 테스트 스위트는 파일 서비스, ID 관리, 원격 데스크톱 등을 포함한 Windows 오픈 사양의 구현에 대한 상호 운용성 테스트를 제공합니다.

원래 Microsoft 오픈 사양의 내부 테스트용으로 개발된 Microsoft 프로토콜 테스트 스위트는 Plugfest 및 상호 운용성 랩에서 파트너 구현을 테스트하는 데 광범위하게 사용되어 왔습니다. 테스트 스위트는 프로토콜 또는 프로토콜 제품군 구현이 특정 상호 운용성 요구 사항을 충족하는지 여부를 평가합니다. 테스트 스위트는 모든 프로토콜 요구 사항을 다루지 않으며, 모든 테스트가 통과하더라도 구현을 인증하지 않습니다. 그러나 각 테스트 스위트는 사용자에게 상호 운용성에 대한 유용한 지표를 제공합니다.

  • 파일 서버 제품군 테스트 스위트. [MS-SMB2], [MS-DFSC], [MS-SWN], [MS-FSRVP], [MS-FSA], [MS-FSCC], [MS-RSVD] 및 [MS-SQOS]를 포함한 파일 서버 프로토콜 제품군의 구현을 테스트하도록 설계되었습니다. 파일 서버 테스트 스위트를 시작하려면 파일 서버 테스트 스위트 사용자 가이드를 참조하십시오. 일회용 Azure 테스트 환경을 만들려면 파일 서버 Azure 자동 배포를 사용하십시오.
  • RDP 클라이언트 제품군 테스트 스위트. [MS-RDPBCGR], [MS-RDPEDISP], [MS-RDPEDYC], [MS-RDPEGFX], [MS-RDPEGT], [MS-RDPEI], [MS-RDPEMT], [MS-RDPEUDP], [MS-RDPEUSB], [MS-RDPEVOR] 및 [MS-RDPRFX]를 포함한 RDP 제품군 프로토콜의 클라이언트 구현에 대한 상호 운용성 테스트를 제공합니다. RDP 클라이언트 테스트 스위트를 시작하려면 RDP 클라이언트 테스트 스위트 사용자 가이드를 참조하십시오.
  • RDP 서버 제품군 테스트 스위트. [MS-RDPBCGR], [MS-RDPEDYC], [MS-RDPEMT] 및 [MS-RDPELE]를 포함한 RDP 제품군 프로토콜의 서버 구현에 대한 상호 운용성 테스트를 제공합니다. RDP 서버 테스트 스위트를 시작하려면 RDP 서버 테스트 스위트 사용자 가이드를 참조하십시오.
  • Kerberos 서버 테스트 스위트. [MS-KILE], [MS-KKDCP] 및 [MS-PAC]를 포함한 Kerberos 프로토콜의 서버 구현을 테스트하도록 설계되었습니다. Kerberos 서버 테스트 스위트를 시작하려면 Kerberos 서버 테스트 스위트 사용자 가이드를 참조하십시오.
  • SMBD 서버 테스트 스위트. [MS-SMBD] 및 [MS-SMB2]에 명시된 SMB2&3 다이렉트(RDMA) 프로토콜의 구현을 테스트하도록 설계되었습니다. SMBD 서버 테스트 스위트를 시작하려면 SMBD 서버 테스트 스위트 사용자 가이드를 참조하십시오.
  • Branch Cache 테스트 스위트. [MS-PCCRTP], [MS-PCCRR], [MS-PCHC] 및 [MS-PCCRC] 프로토콜의 구현을 테스트하도록 설계되었습니다. Branch Cache 테스트 스위트를 시작하려면 Branch Cache 테스트 스위트 사용자 가이드를 참조하십시오.
  • AZOD 테스트 스위트. [MS-AZOD] 프로토콜의 구현을 테스트하도록 설계되었습니다. AZOD 테스트 스위트를 시작하려면 AZOD 테스트 스위트 사용자 가이드를 참조하십시오.
  • ADFamily 테스트 스위트. [MS-ADA1], [MS-ADA2], [MS-ADA3], [MS-ADLS], [MS-ADSC], [MS-ADTS], [MS-APDS], [MS-DRSR], [MS-FRS2], [MS-LSAD], [MS-LSAT], [MS-SAMR] 및 [MS-NRPC]를 포함한 Active Directory 프로토콜의 구현을 테스트하도록 설계되었습니다. ADFamily 테스트 스위트를 시작하려면 ADFamily 테스트 스위트 사용자 가이드를 참조하십시오.
  • ADFSPIP 클라이언트 테스트 스위트. [MS-ADFSPIP]에 설명된 ADFS 프록시 및 웹 애플리케이션 프록시 통합의 구현을 테스트하도록 설계되었습니다. ADFSPIP 클라이언트 테스트 스위트를 시작하려면 ADFSPIP 클라이언트 테스트 스위트 사용자 가이드를 참조하십시오.
  • ADOD 테스트 스위트. [MS-ADOD] 프로토콜의 구현을 테스트하도록 설계되었습니다. ADOD 테스트 스위트를 시작하려면 ADOD 테스트 스위트 사용자 가이드를 참조하십시오.
  • XCA 테스트 스위트. [MS-XCA] 프로토콜의 구현을 테스트하도록 설계되었습니다. XCA 테스트 스위트를 시작하려면 XCA 테스트 스위트 사용자 가이드를 참조하십시오.
  • WSP 테스트 스위트. [MS-WSP] 프로토콜의 구현을 테스트하도록 설계되었습니다. WSP 테스트 스위트를 시작하려면 WSP 테스트 스위트 사용자 가이드를 참조하십시오.

구성 요소

Windows 프로토콜 테스트 스위트는 아래 구성 요소를 포함합니다:

  • CommonScripts. 각 테스트 스위트에서 사용하는 공통 스크립트입니다. 일반적으로 환경을 배포하는 데 사용됩니다.
  • ProtoSDK. 각 테스트 스위트에서 사용하는 프로토콜 라이브러리입니다. 프로토콜 메시지의 데이터 구조, 메시지를 인코딩 및 디코딩하는 메서드, 메시지를 보내고 받는 메서드 등을 제공합니다.
  • TestSuites. 모든 테스트 스위트 코드와 문서가 여기에 저장되며 각 테스트 스위트를 나타내는 폴더로 분류됩니다.
  • ProtocolTestManager. 테스트 스위트를 구성하고 실행하는 데 도움이 되는 도구입니다.

필수 구성 요소

Windows 프로토콜 테스트 스위트는 .NET을 기반으로 하므로 다양한 플랫폼에서 개발하고 실행할 수 있습니다. 테스트 목적에 따라 아래 나열된 소프트웨어와 해당 소프트웨어의 종속성을 설치해야 합니다.

  1. .NET 및 관련 구성 요소

    a. Windows, Linux 및 macOS의 경우 테스트 스위트를 빌드하거나 실행하려면 .NET 8.0 SDK를 설치하십시오.

    b. Windows에서 작업하고 IDE를 선호하는 경우 Visual Studio 2022 이상(Visual Studio 2022 Community 권장)을 설치하고, 설치 관리자에서 다음 개별 구성 요소를 함께 설치하십시오:

    섹션Visual Studio 2022의 개별 구성 요소Windows 프로토콜 테스트 스위트 실행소스 코드에서 Windows 프로토콜 테스트 스위트 빌드
    .NET.NET SDK필수필수
    Compilers, build tools, and runtimeC# and Visual Basic Roslyn compilers필수
    Compilers, build tools, and runtimeMSVC v143 - VS 2022 C++ x64/x86 build tools (Latest)필수1
    Compilers, build tools, and runtimeC++/CLI support for v143 build tools (Latest)필수1
    Compilers, build tools, and runtimeC++ 2022 Redistributable Update필수1필수1
    Development ActivitiesC++ core features필수1
    SDKs, libraries, and frameworksWindows 10 SDK (10.0.19041.0)필수1

    참고:

[1]: 이 개별 구성 요소는 C++ 코드가 있는 ADFamily 및 MS-SMBD에 필요합니다.

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

    Protocol Test Framework는 ProtoSDK 및 TestSuites의 프로젝트에서 NuGet 패키지로 참조됩니다.

  2. Network Direct DDK

    NetworkDirect_DDK.zip에서 ndspi.h 및 ndstatus.h를 프로젝트 경로 ProtoSDK\RDMA\include로 추출하십시오. 이는 SMBD 테스트 스위트를 빌드하기 위한 것입니다.

  3. PowerShell Core

    이는 사용자가 SSH를 통한 PowerShell Core 원격을 사용하려는 경우에만 필요합니다.

  4. Win32-OpenSSH

    이는 사용자가 Windows 플랫폼에서 SSH를 통한 PowerShell Core 원격을 사용하려는 경우에만 필요합니다.

  5. WMF 5.1

    이는 사용자가 CommonTestSuite.ptfconfig의 ISutCommonControlAdapter에 대해 Windows Server 2012R2에서 PowerShell 구현을 사용하려는 경우에만 필요합니다.

    a. DC가 Windows Server 2012R2를 실행하는 도메인 환경에서 ISutCommonControlAdapter에 대해 PowerShell 구현을 선택하는 경우, DC에서 SID를 가져오려면 DC에 WMF 5.1을 설치해야 합니다. Windows Server 2012R2보다 최신인 다른 Windows Server 버전의 경우 DC에 WMF 5.1을 설치할 필요가 없습니다.

    b. 작업 그룹 환경에서 Windows 플랫폼(Windows Server 2012R2 및 최신 버전 포함)의 ISutCommonControlAdapter에 대해 PowerShell 구현을 선택하는 경우 SUT에 WMF 5.1을 설치할 필요가 없습니다.

    c. Windows 플랫폼(Windows Server 2012R2 및 최신 버전 포함)의 ISutCommonControlAdapter에 대해 관리형 구현을 선택하는 경우 LDAP 쿼리를 사용하여 SID를 가져오며 도메인 환경만 지원합니다.

Windows에서 작업하는 경우 InstallPrerequisites 폴더의 스크립트를 사용하여 이러한 소프트웨어를 자동으로 다운로드하고 설치할 수 있습니다.

InstallPrerequisites 폴더의 스크립트 사용 시 팁:

  • 스크립트는 일부 종속성을 다운로드하기 위해 인터넷 연결이 필요합니다.

  • Category 매개 변수는 FileServer, Kerberos, SMBD, RDP, BranchCache, ADFamily, AZOD, ADFSPIP 및 ADOD와 같은 다양한 테스트 스위트 이름에 따라 다운로드하고 설치해야 하는 도구 집합을 지정하는 데 사용됩니다. 범주는 PrerequisitesConfig.xml에 정의되어 있으며, 이 구성 파일을 업데이트하여 원하는 요구 사항을 달성할 수 있습니다.

  • ConfigPath 매개 변수는 필수 구성 요소 구성 파일 경로를 지정하는 데 사용되며, 기본값은 ".\PrerequisitesConfig.xml"입니다.

  • 예를 들어 FileServer 테스트 스위트에 대한 스크립트를 실행하려면 Windows PowerShell을 열고 PowerShell 창에서 아래 명령을 실행하십시오:

cd WindowsProtocolTestSuites\InstallPrerequisites
.\InstallPrerequisites.ps1 -Category FileServer -ConfigPath ".\PrerequisitesConfig.xml"
  • 실행 정책에 관한 오류가 발생하면 Windows PowerShell을 관리자로 실행하고 있는지 확인하고 다음을 입력한 후 Enter를 누르십시오:
Set-ExecutionPolicy RemoteSigned

아래 명령을 실행하여 실행 정책이 올바르게 설정되었는지 확인할 수 있습니다:

Get-ExecutionPolicy

그런 다음 스크립트를 다시 실행하십시오.

빌드

이 리포지토리의 복사본을 복제한 후, 필수 구성 요소에 나열된 빌드에 필요한 모든 소프트웨어를 설치했다면 PowerShell에서 build.ps1을 실행하거나 셸에서 build.sh를 각 테스트 스위트별로 실행할 수 있습니다.

예를 들어 FileServer 테스트 스위트를 빌드하려면:

cd WindowsProtocolTestSuites\TestSuites\FileServer\src
build.ps1

빌드가 성공하면 WindowsProtocolTestSuite\drop\TestSuites\[TestSuiteName]\ 폴더에 공통 폴더 구조가 생성됩니다.

  • Bin: ProtoSDK, 어댑터 및 테스트 스위트를 포함한 모든 빌드된 이진 파일.
  • Batch: 테스트를 시작하는 데 사용할 수 있는 배치 파일(.ps1, .sh).
  • Scripts: 테스트 환경을 구성하는 데 사용할 수 있는 스크립트.
  • Utils: 테스트에서 사용할 수 있는 일부 유틸리티.

또는 Releases에서 미리 빌드된 테스트 스위트 아카이브를 다운로드할 수 있습니다.

실행

테스트 스위트를 실행하기 전에 아래 중 하나를 수행해야 합니다:

  • Releases에서 실행하려는 테스트 스위트 아카이브를 다운로드하고 액세스할 수 있는 경로에 압축을 풉니다.
  • 테스트 스위트 빌드에 따라 테스트 스위트를 빌드합니다.

macOS에서 FileServer 테스트 스위트는 OpenSSL이 필요한 AesCcm 및 AesGcm 클래스를 사용하므로, macOS에 OpenSSL 1.1이 없으면 macOS에서 FileServer 테스트 스위트를 실행하기 전에 OpenSSL 1.1을 설치하고 다음과 같이 환경 변수를 설정하십시오,

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

참고:

  1. macOS에 brew가 설치되어 있지 않으면 brew에 따라 설치할 수 있습니다.
  2. "algorithm 'aesgcm' is not supported on this platform" 오류가 발생하면 macOS의 libcrypto.1.1.dylib에서 dotnet이 AesGcm 클래스를 로드할 수 없다는 의미이므로, 해당 위치가 DYLD_LIBRARY_PATH 환경 변수에 있는지 확인해야 합니다. macOS에 OpenSSL 1.1을 설치하면 암호화 라이브러리 위치는 /usr/local/Cellar/[email protected]/1.1.1m/lib/libcrypto.1.1.dylib이며 /usr/local/opt/openssl은 기본적으로 /usr/local/Cellar/[email protected]/1.1.1m 디렉터리를 링크합니다.

배치로 테스트 스위트 실행

테스트 스위트의 루트 경로 아래 Batch 폴더에는 테스트를 시작하는 데 사용할 수 있는 여러 스크립트가 있습니다.

  1. 모든 테스트 사례 실행

    PowerShell에서 RunAllTestCases.ps1을 실행하거나 셸에서 RunAllTestCases.sh를 직접 실행하십시오.

  2. 필터로 테스트 사례 실행

    PowerShell에서 RunTestCasesByFilter.ps1 -Filter [your filter expression]을 실행하거나 셸에서 RunTestCasesByFilter.sh [your filter expression]을 직접 실행하십시오.

    예를 들어 테스트 범주 BVT 및 SMB311이 있는 테스트 사례를 실행하려면 아래 명령을 실행할 수 있습니다:

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

    필터 식을 구성하는 방법에 대한 자세한 내용은 필터 옵션 세부 정보를 참조하십시오.

  3. 드라이 런

    실제로 실행하기 전에 테스트 사례를 나열하려면 .ps1 스크립트에 -DryRun 스위치를 추가하거나 .sh 스크립트의 마지막 인수로 비어 있지 않은 문자열을 전달할 수 있습니다.

    예를 들어 테스트 범주 BVT 및 SMB311이 있는 테스트 사례를 나열하려면 아래 명령을 실행할 수 있습니다:

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

Protocol Test Manager Service로 테스트 스위트 구성 및 실행

**Protocol Test Manager Service (PTMService)**는 테스트 스위트의 테스트 사례를 구성하고 실행하는 데 도움이 되는 단일 웹 페이지 애플리케이션 도구입니다. PTMService는 Windows, Linux 및 macOS를 포함한 여러 플랫폼을 지원합니다. PTMService를 시작하려면 PTMService Wiki를 참조하십시오.

FileServer 구성의 경우 PTM UI 설정 Enable Parallel Test Execution은 정규화된 .ptfconfig 속성 Common.PTF.LogProfileParserPatch.Enabled에 매핑됩니다. FileServer 테스트 실행 내에서 단계적 병렬 실행을 활성화하려면 true로 설정하십시오.

문서

해당 사용자 가이드에 따라 테스트 환경을 설정하고 테스트 스위트를 구성할 수 있습니다. 각 테스트 스위트에는 WindowsProtocolTestSuites\TestSuites\[TestSuiteName]\docs 폴더에 자체 사용자 가이드가 있습니다. 같은 폴더에 두 가지 종류의 문서가 더 있습니다:

  • 기술 문서. Microsoft에서 게시한 프로토콜에 대한 오픈 사양 문서입니다. 테스트 스위트 개발의 기초입니다.
  • 테스트 설계 사양. 테스트 범위 및 테스트 스위트 설계에 대한 정보를 제공합니다.

기여

기여 가이드는 여기에서 찾을 수 있습니다.

라이선스

Windows 프로토콜 테스트 스위트는 MIT 라이선스에 따릅니다.

연락처

다음 리소스는 Windows 프로토콜 테스트 스위트 뉴스, 토론 및 지원을 위한 것입니다:

Microsoft 오픈 소스 행동 강령

이 프로젝트는 Microsoft 오픈 소스 행동 강령을 채택했습니다. 자세한 내용은 행동 강령 FAQ를 참조하거나 추가 질문이나 의견이 있으면 [email protected]으로 문의하십시오.

카테고리