remotefx protocol test suitedownload.microsoft.com/download/c/6/0/c60e2bd0-8a7c... · ms-rdpei...
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
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