Virtualizace testovacích prostředí (aka Lab Management) Michael Juřek Software Architect Microsoft s.r.o.
Agenda Proč virtualizované testování? Architektura a základní pojmy Příprava, vybavení a vytvoření Základní operace s prostředím Služby prostředí
Některé bolesti testování Složitá konfigurace zahrnující více počítačů, vytvoření prostředí je nákladné Řada kombinací, kterou je třeba otestovat Operační systémy Jazykové verze Internetové prohlížeče Výrazné procento chyb nelze reprodukovat Agilní metodiky si žádají rychlé výsledky Nízký stupeň využití testovacího HW
Tradiční postup testování Build Nasazení aplikace Spuštění testů
Virtualizované testování Build Vytvoření VM Nasazení aplikace Snapshot VM Spuštění testů
Výhody virtualizovaného testování Sdílení kontextu chyby mezi vývojářem a testerem Pomocí snapshotu virtuálního stroje Výrazné snížení času a pracnosti přípravy testovacího prostředí Automatické klonování Samoobslužné vytváření bez nutnosti znalosti virtualizačních produktů Paralelní běh více instancí testovacího prostředí Možnost komplexních konfigurací Distribuované systémy Network Isolation – automatická izolace interních virtuálních sítí brání konfliktům IP adres
Agenda Proč virtualizované testování? Architektura a základní pojmy Příprava, vybavení a vytvoření Základní operace s prostředím Služby prostředí
Team Foundation Server (TFS) Test Manager Team Foundation Server (TFS) Lab Management Test Management Build management Work Item Tracking Source Control System Center Virtual Machine Manager (SCVMM) Hyper-V Hosts Virtual Machine1 Virtual Machine2 Virtual Machinen Library Shares Library Share1 Library Share2 Library Sharen
Role v SCVMM SCVMM server Library Server (knihovní server) Spravuje hostitele a knihovní servery Obsluhuje konfigurační databázi (MS SQL) Library Server (knihovní server) Uložené referenční virtuály, ISO image instalačních DVD apod. Pro většinu operací se z něj pouze čte Host (hostitel) Provozuje virtuály (HyperV) 1 nebo více hostitelů tvoří Host Group
Možnosti SCVMM Centrální správa hostitelů a virtuálů Všechny operace nabízené HyperV Nad rámec funkčnosti HyperV Přesun virtuálů mezi hostiteli Klonování virtuálů Uložení virtuálu do knihovny Vytvoření virtuálu z částí uložených v knihovně Monitorování HW prostředků hostitele
Typy testovacích prostředí Fyzické: Vzdálené OS, na kterých lze spouštět automatizované testy (žádné další funkce) Fyzické nebo virtuální (libovolný virtualizační produkt) Virtuální: Vzdálené virtuální OS na HyperV, spravované SCVMM, které nabízí kompletní sadu funkcí Porovnání: Kdykoliv je to možné, použijte virtuální prostředí http://msdn.microsoft.com/en-us/library/dd997438.aspx Dále se budeme věnovat pouze virtuálním prostředím
Virtuální testovací prostředí Skládá se ze skupiny virtuálních počítačů z nichž každý má nějakou roli (např. webový server, databázový server, klient apod.) V triviálním případě jediný virtuální počítač Skupina je spravována jako celek: Spuštění/zastavení Vytvoření/naklonování/vymazání Vytvoření/zrušení/aplikování snapshotu
Schopnosti prostředí (capabilities) Testing Spouštění testů UI během automatického buildu anebo manuálně z Test Manageru Workflow Spouštění skriptů uvnitř virtuálního prostředí během automatického buildu Network Isolation Nastavení síťových adaptérů a virtuálních sítí pro zamezení konfliktům jmen a IP adres
Šablony v Lab Managementu Šablona počítače Odkaz na virtuál uložený v knihovně SCVMM Možnosti nastavení: Množství operační paměti Role, kterou typicky zastává Profil OS, pokud je proveden SYSPREP (klíč, jméno, heslo apod.) Šablona prostředí Sada šablon počítačů s přidělenými rolemi Možnost přepsání parametrů počítačů Definice schopností virtuálního prostředí
Laboratorní prostředí Práce se šablonami demo Laboratorní prostředí Práce se šablonami
Agenda Proč virtualizované testování? Architektura a základní pojmy Příprava, vybavení a vytvoření Základní operace s prostředím Služby prostředí
Hardware Hostitel Library Server Síť RAM, CPU a disková propustnost (čtení i zápis) pro součet virtuálů a vlastní potřebu Příklad - můj demo stroj s 10 virtuály: 1 quad-core CPU, 16 GB RAM, 4x SATA disk (RAID 10) Cena v květnu 2009 cca 30.000 Kč Library Server Např. NAS s RAID5 (výrazná převaha čtení) Síť Mezi hostitelem a knihovnou by měla být 1 Gbps http://blogs.msdn.com/b/lab_management/archive/2010/05/13/planning-considerations-for-setting-up-a-lab-managed-by-visual-studio-lab-management-2010.aspx
Software virtuálů Operační systém a aktualizace Další potřebný software ve stavu před instalací aplikace (např. SQL server) Nainstalovaní, nenakonfigurovaní agenti Network Isolation – vyžaduje Lab Agent Workflow – vyžaduje Lab Agent a Build Service Test – vyžaduje Lab Agent a Test Agent Volitelně možno uvést do předinstalovaného stavu (SYSPREP)
Laboratorní prostředí a doména Možné varianty: Externí doména – není možné používat Network Isolation, nelze mít více instancí Interní doména – jeden z počítačů prostředí funguje jako Domain Controller Bez domény – režim „workgroup“ Servisní účet v externí doméně: Pro možnosti 2. a 3. je používán virtuály pro komunikaci s okolím Není nutné vytvářet duplikované lokální účty Nastavení na úrovni Team Project Collection
Způsoby vytvoření prostředí Z fyzických počítačů s Test Agenty (New physical environment) Omezené možnosti, pouze pro speciální případy (HW testování apod.) Z existujících virtuálů nasazených na hostiteli (Compose) Z definovaných šablon počítačů, jejich nastavením a naklonováním (New virtual environment) Naklonováním šablony prostředí (Deploy)
Úskalí virtuálů Vypršení hesla počítače v externí doméně Heslo je automaticky měněno, vrácením ke staršímu snapshotu dojde k jeho „zapomenutí“ Změnu hesla lze zakázat HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\DisablePasswordChange = 1 Nastavení lze též vynutit skupinovou politikou Aktualizace uložených (neběžících) virtuálů Lze použít Microsoft Offline Virtual Machine Servicing Tool Zahlcení virtuály Dobu života virtuálů lze kontrolovat sledováním data vytvoření, data modifikace a data posledního přístupu
Agenda Proč virtualizované testování? Architektura a základní pojmy Příprava, vybavení a vytvoření Základní operace s prostředím Služby prostředí
Operace nad seznamem prostředí Stejné jako při správě přes HyperV, ale pro celé prostředí (více počítačů) najednou: Spuštění (Start) Pozastavení (Pause) – zůstávají v paměti „Čisté“ zastavení (Shut down) „Násilné“ zastavení (Power off) Speciální operace pro Lab Management: Připojení se k prostředí nebo jednotlivým počítačům Oprava schopností prostředí Označení „In Use“ spojené s komentářem
Operace nad připojeným prostředím Všechny operace, které lze provést nad seznamem prostředí Interakce s prostředím Ctrl-Alt-Del, Full Screen Systémové informace o virtuálu Manipulace se snapshoty: Vytvoření (Create), obnovení (Restore), přejmenování (Rename), vymazání (Delete) Sdílení (Share) Vytvoří soubor .lvr s definicí prostředí a snapshotu Soubor lze sdílet, jeho otevřením se lze připojit k příslušnému prostředí a snapshotu
Základní operace s prostředím demo Základní operace s prostředím
Agenda Proč virtualizované testování? Architektura a základní pojmy Příprava, vybavení a vytvoření Základní operace s prostředím Služby prostředí
Network Isolation Interní virtuální síť pro každé prostředí Internal network Copy 1 Interní virtuální síť pro každé prostředí MAC adresa, IP adresa i jméno virtuálního počítače mohou být ve více kopiích stejné Virtuály jsou též připojeny na externí síť pomocí unikátní IP adresy a jména Jeden z počítačů může být domain controller Není třeba konfigurovat, vše nastaví Lab Agent 10.10.1.5 10.10.1.6 IIS DB 172.22.48.15 172.22.48.16 Lab network Copy 2 10.10.1.5 10.10.1.6 IIS DB 172.22.48.17 172.22.48.18
Workflow Umožňuje spouštět libovolný skript uvnitř virtuálu s právy služby Build Service Typicky užíváno k nasazení nové verze aplikace do virtuálního prostředí (fantazii se ale meze nekladou) Komponenty: Build Agent (uvnitř virtuálu) – provádí přidělené úlohy Lab Agent (uvnitř virtuálu) – konfiguruje Build Agenta Build Controller (vně virtuálu) – spouští workflow a úkoluje Build Agenty
Testing Umožňuje spouštět automatizované testy UI uvnitř virtuálu a shromažďovat jejich výsledky V rámci build workflow V rámci testování z Test Manageru Komponenty: Test Agent (uvnitř virtuálu) – spouští testy, sbírá výsledky a doprovodná data Lab Agent (uvnitř virtuálu) – konfiguruje Test Agenta Test Controller (vně virtuálu) – řídí a úkoluje Test Agenty
Network Isolation, Workflow, Testing demo Network Isolation, Workflow, Testing
4/8/2017 3:55 PM Závěrem Správa testovacích prostředí je výborně integrována do Visual Studia 2010 Virtualizace testovacího prostředí dramaticky snižuje pracnost přípravy prostředí a zlepšuje efektivitu využití HW prostředků. Snapshot virtuálního prostředí je nejvyšší známou formou dokumentace chyby. Základní zdroj informací: http://blogs.msdn.com/lab_management/ Chcete pomoci při implementaci? mjurek@microsoft.com © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.