350 likes | 472 Views
Virtualizace testovac ích prostředí (aka Lab Management). Michael Juřek Software Architect Microsoft s.r.o. demo. Co bych později nestihnul…. 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í.
E N D
Virtualizace testovacích prostředí (aka Lab Management) Michael JuřekSoftware ArchitectMicrosoft s.r.o.
demo Co bych později nestihnul…
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
Jak by to bylo hezké, kdyby… • … neexistovaly nereprodukovatelné chyby • … nebyly bariéry mezi vývojáři a testery • … vytvoření realistického testovacího prostředí by místo týdnů trvalo minuty (např. jako součást buildu)
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í
Role v SCVMM • SCVMM 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
demo Představení SCVMM
Laboratorní 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í
demo Nastavení LM v TFSLaboratorní 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 • 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
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
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 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.16 172.22.48.15 Lab network Copy 2 10.10.1.5 10.10.1.6 IIS DB 172.22.48.18 172.22.48.17
demo Network Isolation
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
demo Workflow, Testing
Co VS 2010 také umí… … ale nebylo to obsahem dnešní prezentace • Definice testovacích případů s vazbou na požadavky • Vytváření testovacích plánů • Spouštění testů se sběrem dat o kontextu a s možností přehrání interakce při dalším spuštění („fast forward“) • Monitorování průběhu testování • Automatizované testování uživatelského rozhraní
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/ • Chcetepomoci při implementaci? • mjurek@microsoft.com