Download - RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

Transcript
Page 1: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

RDP Test Suite Cross Platform

Vivian TianSenior Software Engineer

Windows Protocol Test Suite Team

Zhenhua HuSoftware Engineer II

Windows Protocol Test Suite Team

Page 2: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

Agenda

Cross Platform Background

RDP Test Suite Cross Platform Status

How to Use?

Demo

Q&A

Page 3: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

Release 4.21.1.0

• Migrated to .NET 5.0

• Support cross platform

• Add new MS-RDPELE test cases

Test suite 4.21.1.0 GitHub

Page 4: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

• PTF v2.1.0 on NuGet

• Test Suite Release v4.21.1.0 on GitHub

• RDP Client Test Suite

• Test suite

• Sut control agent

• Codec tool (web service)

• RDP Server Test Suite

• PTM GUI v4.21.1.0

• PTM Cli v4.21.1.0

• Docker Images on Docker Hub

RDP Cross

Platform

RDPClient

Test Suite

RDPServer

Test Suite

Codec

Web

Service

SUT

Control

Agent

PTM

GUI/Cli

Docker

Images

RDP Test Suites Release

Page 5: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

GitHub Activities

Interoperability Testing

Protocol Implementations

Automation Testing

Page 6: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

Test Suite Infrastructure: .NET Framework

.NET Framework

Protocol Test Framework

FileServer

Test Suite

RDP Test

Suite……

Windows

Proto SDK

PTM GUI/CLI

Prerequisites

• Visual Studio 2017 or higher version

• .NET Framework 3.5.1

• Spec Explorer

• Protocol Test Framework (PTF)

• Wix Toolset

• Wix Toolset Visual Studio Extension

.NET Framework is a Windows-only version of

.NET for building any type of app that runs on

Windows.

Page 7: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

Test Suite Infrastructure: .NET.NET is a single unified platform to build desktop, web, cloud, mobile, gaming, IoT, and AI apps.

Page 8: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

Test Suite Infrastructure: .NET

Windows Linux MacOS

.NET SDK

Proto SDK

FileServer

Test SuiteRDP Test Suite ……

Protocol Test

Framework

PTM CLI

WindowsProtocolTestSuites 4.21.1.0

aka.ms/wpts

Page 9: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

Protocol Test FrameworkFeatures .NET Framework

Version Features

.NET

Version Features

Release GitHub MSI NuGet Package

Install Explicitly install MSI Side-by-side with test suites

WiX Dependency Yes No

Spec Explorer Yes No

Test Environment ✓ ✓

Configuration (ptfconfig) ✓ ✓

Checking ✓ ✓

Power Shell Adapter ✓ ✓

Managed Adapter ✓ ✓

Shell Adapter ✓ ✓

Interactive Adapter ✓ ✓

File Logging ✓ ✓

Console Logging ✓ ✓

Beacon Logging ✓

ETW logging ✓

Automatic Network Capturing ✓

Page 10: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

Protocol SDK

Protocol SDK

Remove

Spec Explorer

dependency

Rewrite SSP & SSPI with C#

• NTLM

• Kerberos

• Negotiate

Fix .NET

Incompatible APIs

Page 11: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

Protocol Test Suites

RDP Client, RDP Server Test Suites

Migrated to .NET 5

Removed Spec Explorer dependency

Removed WiX dependency

Enabled all cases on multiple platforms

Support Docker image

Codec service, SUT control agent

Migrated to .NET 5 and ASP.NET Core

Enable to run on multiple platforms

RDP Codec service: http://192.168.142.72

Page 12: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

PTM GUI / PTMCli

.NET Framework Test Suite .NET Test Suite

Similar Experience as Before:

GUI, Auto Detect, Run case, Profile, etc.

PTM GUI

Windows

Windows Linux macOS

Run case with profile, Multiple Instance

PTMCli

Page 13: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

Open source to GitHub

Linux Integration Solution

.NET Core 3

.NET 5

ASP .NET Core

Test Suite Cross Platform StatusSep 2020

Test Suite 4.20.9.0

PTF 2.0.0

Docker Image fileserver

Jan 2021

Test Suite 4.21.1.0

Docker Image rdpclient/rdpserver

Sep 2016

Test Suite 1.0

PTF 1.0.5000.0

Sep 2019

Test Suite 3.19.9.0

SUT Control Agent

Remotely Trigger

PTF 1.0.7000.0

Page 14: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

How to use ? - Build and Run from Scratch

Install

Clone

Config

Build

Run

•Install .NET 5

•Clone source code from GitHub repo: aka.ms/wpts

•Modify ptfconfig file

•Run with Scripts, PTMCli or PTM (Windows)• ./RunTestCasesByFilter.sh "TestCategory=BVT&FullyQualifiedName~BVT_ConnectionTest"

• .\RunTestCasesByFilter.ps1 -Filter "TestCategory=BVT&FullyQualifiedName~BVT_ConnectionTest"

• PtmCli.exe <-p|--profile profileName> [-s|--selected] [--categories categories] [-r|--report reportFile]

•Build test suite •Build.ps1, Build.sh

Page 15: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

•Install .NET 5

•Download and extract the latest test suite package

Install

•Modify ptfconfig fileConfig

Run

How to use ? - Run with Released Binaries

•Run with Scripts, PTMCli or PTM (Windows)• ./RunTestCasesByFilter.sh "TestCategory=BVT&FullyQualifiedName~BVT_ConnectionTest"

• .\RunTestCasesByFilter.ps1 -Filter "TestCategory=BVT&FullyQualifiedName~BVT_ConnectionTest"

• PtmCli.exe <-p|--profile profileName> [-s|--selected] [--categories categories] [-r|--report reportFile]

Page 16: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

How to use ? – Run with Docker

Host

Host\VM OS files & libs

Container

(test suite

instance1)

Container

(test suite

instance 2)

Container

(test suite

instance 3)

Unassigned

•Install Docker Desktop

•Modify ptfconfig file

•Run Test Cases•Docker run

•Pull image from Docker Hub & Config Network•docker pull testsuiteimage.azurecr.io/windowsprotocoltestsuites:rdpclient

•docker pull testsuiteimage.azurecr.io/windowsprotocoltestsuites:rdpserver

•Start Container•Docker container create

•Docker container start

Install

Pull

Config

Start

Run

Page 17: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

WindowsProtocolTestSuites GitHub

aka.ms/wpts

Page 18: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

IO Lab Environment Topology

RDP Client Testing Environments

RDP Client Test Suite Driver RDP Client Test Suite SUT

RDP Client Meetup Environments

RDP Client Test SuiteMeetup Driver Computer

RDP Client Test SuiteMeetup SUT

Protocol Testing Environments on Azure

VPN

VPN connection

VPN connection

RDP Server Test Suite Environments

RDP Server Test Suite Driver RDP Server Test Suite SUT

Router

RDP implementation

RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389

RDP port: 4488 RDP port:3389

Page 19: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

Reserve Meetup Environment

Page 20: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

Domain Controller

SUT 2 Driver 2

SUT 1 Driver 1

Meetup Environment

Demo SUT Demo Driver

Protocol Testing Environments on Azure

VPN Gateway

Connect to Meetup Environment

1. Dial In Azure Test Environment via VPN

2. Remote to Driver Computer

3. Run Cases on Driver Computer against SUT

Run Test

Run Test

Page 21: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

DEMO

Zhenhua HuSoftware Engineer IIWindows Protocol Test Suite Team

Run RDPClient Test Suite with

PTMCli

on Linux Driver

Run RDPClient Test Suite with

Docker Image

on Linux Driver

Page 22: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

What’s Next?

•WSP Test Suite

• …

Support More Test Suites

•More Features

PTF

•GUI

• Cli

PTM Cross Platform Enhancement

Page 23: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

Build an Active Community

Report Issues Pull Requests

Feature

Requests

Cases

Requests

Page 24: RDP Test Suite Cross Platform · 2021. 1. 12. · RDP port: 4488 RDP port: 3389 RDP port: 3389 RDP port: 3389 RDP port: 4488 RDP port:3389. Reserve Meetup Environment. Domain Controller

© Copyright Microsoft Corporation. All rights reserved.

Q&A