remotefx protocol test suitedownload.microsoft.com/download/c/6/0/c60e2bd0-8a7c... · ms-rdpei...

Post on 04-Jul-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Christine Huang (陳淑英), Principal Test Manager

Feng Han (韓楓), Protocol Test Suite Developer

RemoteFX Protocol Test Suite

• Protocol Test Suite – Why ,What, How

• RemoteFX Test Suite Introduction

• How to use RemoteFX Test Suite

Let this video tell you…

Goals:

• Ensure quality of MS protocol documentation(Open Specification)

o Accuracy and usability

• Help to Identify your implementation issues

o Make debugging easier

Message sequence

Encrypted messages logging

o Handle negative test cases

• Source code in test suite can be your reference in dev phase

Open

Specification

Windows Client

(desktop , slate etc)Windows Server

Partner Client (thin

client, slate, phone)

Protocol

Test Suite

2. Develop protocol test suite

(synthetic server) according to Open

Specification

3. Run against Windows to verify

Open Specification

4. Run against partner’s Client

Implementation to help identify &

debug issues

Client/Server Side Partner Implementation

Message Over the Wire

Synthetic Server

1. Open Specification defines

messages, sequence, behavior

4

5

5. Interop between partner’s Client

and Windows Server

1

2 3

New Protocol Test Suites Features

• Protocol Test Manager

• Protocol-based SUT Control Adapter

• Super Log Viewer

New Protocols/Features Coverage

• Protocol Test Suite – Why ,What, How

• RemoteFX Test Suite Introduction

• How to use RemoteFX Test Suite

• The test target is RDP Client

• The test suite is Synthetic RDP Server

• Aligned with Windows 8.1 document

• More than 200 test cases, including positive and negative

• Test Code (C#) can be your reference, such as codecs

• Test most of features in covered protocols

• Highlighted tested features since Windows 8

MS-RDPBCGR• Network Auto-Detection (Win8)

• Connection heath monitoring

(Win8.1)

MS-RDPEDISP (Win8.1)• Change display configuration

Multiple transportsMS-RDPEUDP (Win8)• Reliable/Lossy connection

• Retransmit

• Congestion control

MS-RDPEMT (Win8)• Build secure channel

• Network Auto-Detection

• Exchange DVC data

MS-RDPEGFX (Win8)• Surface & Cache

• RemoteFX codec

• Progressive codec

• Clear codec

• RDP8.0 compression

MS-RDPEI (Win8)• Touch input

• Touch control

System Under Test

(SUT)

RDP Client

TCP/UDP

RDP Synthetic Server

(Test Suite)

TCP/UDP

SUT Control

AdapterTest Cases

Protocol Specification:

If RDP server sends message A to RDP client, RDP client should respond with message B.

If A is invalid, client should return error message C.

Test Case 1:

1. Establish RDP connection;

2. Server.Send(msgA);

3. Expect client respond msgB, and

• Assert (msgB.Field1 == valid1)

• Assert (msgB.Field2 == valid2)

• …

• Assert (msgB.FieldN == validN)

Test Case 2:

1. Establish RDP connection;

2. Server.Send(Invalid msgA);

3. Expect client respond msgC, and

• Assert (msgC.Satus == ERROR)

System Under Test

Test Suite Host

Subnet Mask 255.255.0.0

IP Address 172.16.18.1

Name RDP-Client

Subnet Mask 255.255.0.0

IP Address 172.16.18.2

Name RDP-TestServer

Machine role Software/service

System Under Test (SUT) RDP Client from Microsoft or Partners

Test Suite Host Microsoft® Visual Studio® 2012 Ultimate

Protocol Test Framework

RemoteFX Interop Test Suite

Common Deployment Steps:

• Install RDP client on SUT

• Install Test Suite on Test Suite Host

• Configure Test Suite

• Protocol Test Suite – Why ,What, How

• RemoteFX Test Suite Introduction

• How to use RemoteFX Test Suite

• Purpose:• The interface defines methods for changing or

querying SUT states dynamically at runtime.

• Types: Protocol-based

PowerShell script

Interactive

Test Suite Host System Under TestSUT Remote Control

Protocol

Test SuiteRDP

Client

SUT

control

adapter

Transport for RDP protocols

Agent

• Self-defined a simple protocol to transfer control commands and result.

• User needs to implement a simple program as an Agent to control SUT (System Under Test)

SUT Control Request Message

SUT Control Response Message

Operate

• Build automatic test environment on any system

• User doesn’t need to do any work on test suite

• User need to develop an Agent program on SUT The Agent program can be powerful and flexible

The workload of development is low

The protocol we defined is very simple

The Agent program is on SUT, same environment as your RDP client product

• Maps interface methods to PowerShell scripts.

• The implementation will run the corresponding script file when one of the adapter's methods is called.

Interface Script files

When a method is called:

• Control the SUT manually

• Is used when other automatic control method is not supported

A dialog is popped up

User controls SUT manually

User clicks the “Continue” button

• Protocol Test Manager (PTM) is a unified UI for protocol test suites.

• Besides running test cases, PTM also includes: Test suite introduction

Auto-Detect Supported features

Automatic configure test suite

Classify and filter test cases

View test result

Will show you more details in Demo Session

• To investigate test case failure, you always need run-time information like:• Test case log - From log file

• Network traffic - Captured by MessageAnalyzer/Netmon

• Encrypted or compressed message – From Visual Studio

• Using MessageAnalyzer to combine all these information• See all valuable information from one window.

Network Traffic

Test Log

Encrypted MessageMMA

Will show you more details in Demo Session

26

Q & A

top related