Project

General

Profile

Testování Warden serveru a klientů (2.0) po přechodu na Apache

1 Systémové a akceptační testy

1.1 Server

  1. Test dokumentace - Dokumentace musí být pochopitelná a musí dobře popisovat jednotlivé funkce serveru.
  2. Test cmd rozhraní Warden serveru - Rozhraní musí být uživatelsky použitelné. Musí korektně volat všechny funkce. Nesmí obsahovat chybu v přepínačích.
  3. Registrace vysílajícího klienta
    1. Test autorizace
      1. Uživatel nesmí zaregistrovat klienta, pokud k tomu není oprávněn.
      2. Uživatel musí zaregistrovat klienta, pokud k tomu je oprávněn.
    2. Test správnosti dat. Data v DB v tabulce klientů musí odpovídat datům zadaným uživatelem.
  4. Registrace přijímajícího klienta
    1. Test autorizace
      1. Uživatel nesmí zaregistrovat klienta, pokud k tomu není oprávněn.
      2. Uživatel musí zaregistrovat klienta, pokud k tomu je oprávněn.
    2. Test správnosti dat. Data v DB v tabulce klientů musí odpovídat datům zadaným uživatelem.
  5. Odebrání klienta
    1. Test autorizace
      1. Uživatel nesmí odebrat klienta, pokud k tomu není oprávněn.
      2. Uživatel musí odebrat klienta, pokud k tomu je oprávněn.
    2. Test dat - v případě odebrání klienta musí být všechna jeho data označena jako nepřístupná.
  6. Výpis stavu serveru
    1. Test autorizace
      1. Uživatel nesmí vypsat stav serveru, pokud k tomu není oprávněn.
      2. Uživatel musí vypsat stav serveru, pokud k tomu je oprávněn.
    2. Test správnosti dat. Data v DB musí odpovídat vypsaným datům
  7. Výpis klientů
    1. Test autorizace
      1. Uživatel nesmí vypsat klienty, pokud k tomu není oprávněn.
      2. Uživatel musí vypsat klienty, pokud k tomu je oprávněn.
    2. Test správnosti dat - data v DB musí odpovídat vypsaným datům.
Test # Popis testu Proběhl korektně? Ano/Ne Poznámky
1 Pročtení dokumentace k serveru Ano. Odhaleny pouze drobné chyby formalního rázu.
2 Test cmd rozhraní Warden serveru Ano.
3.1.1 Snaha zaregistrovat klienta bez oprávnění k práci se serverem Ano. Klienta se nepodařilo zaregistrovat.
3.1.2 Registrace klienta oprávněným uživatelem Ano.
3.2 Kontrola zda data v DB odpovídají zadaným datům při registraci Ano.
4.1.1 Registrace klienta bez oprávnění k práci se serverem Ano. Klienta se nepodařilo zaregistrovat.
4.1.2 Registrace klienta oprávněným uživatelem Ano.
4.2 Kontrola zda data v DB odpovídají zadaným datům při registraci Ano.
5.1.1 Smazání klienta bez oprávnění k práci se serverem Ano. Klienta se nepodařilo odstranit.
5.1.2 Smazání klienta oprávněným uživatelem Ano. Klient byl odstraněn a data byla zneplatněna.
5.2 Kontrola zda data v DB odpovídají zadaným datům při registraci Ano.

Doporučení pro úpravu dokumentace serveru

  • AUTHORS:
    • odstranit mix tabu a mezer, formátovat pouze mezerami
  • CHANGELOG:
    • OK
  • INSTALL:
    • zmínit se o FAQ v Redminu, který velmi dobře řeší instalaci serveru
    • odstranit mix tabu a mezer, formátovat pouze mezerami
  • LICENSE:
    • OK
  • README:
    • odstranit mix tabu a mezer, formátovat pouze mezerami
  • warden.mysql:
    • podrobněji neřešeno

1.2 Vysílající klient

  1. Test dokumentace. Dokumentace musí být pochopitelná a musí dobře popisovat jednotlivé funkce serveru.
  2. Interní test použitelnosti. Uživatel musí být schopen dle dokumentace a pokynů přiložených u knihovny úspěšně zapojit svůj nástroj do systému Warden jako vysílajícího klienta. Výstupem bude soupis doporučení k úpravě knihovny.
  3. Externí test použitelnosti. Uživatel nezapojený do vývoje systému musí být schopen dle dokumentace a pokynů přiložených u knihovny úspěšně zapojit svůj nástroj do systému Warden jako vysílajícího klienta. Výstupem bude vyplněný dotazník.
  4. Odeslání události
    1. Test autentizace
      1. Klient se musí přihlásit, pokud má správný certifikát a ostatní identifikační údaje.
      2. Klient se nesmí přihlásit, pokud má špatný certifikát nebo ostatní identifikační údaje.
    2. Test přenosu. Data odeslaná klientem musí být stejná v databázi i na straně klienta.
    3. Test potvrzení. Server musí klienta správně informovat o přijetí/nepřijetí dat.
Test # Popis testu Proběhl korektně? Ano/Ne Poznámky
1 Test dokumentace Ano. Doporučení pro změny níže.
2 Test instalace Ano. Pomocí instal.sh a případně pokynů v FAQ lze klienta bez problémů nainstalovat.
3 Test použitelnosti Ano. Podrobnosti jsou dostupné níže.
4.1.1 Test autentizace - nezaregistrován Ano. Klient je informován o zamítnutí přístupu.
4.1.2 Test autentizace - zaregistrován Ano.
4.2 Test přenosu dat Ano. Data v DB se shodují s odeslanými.
4.3 Test potvrzení Ano. 1 = korektně přijato; 0 = chyba

1.3 Přijímající klient

  1. Test dokumentace. Dokumentace musí být pochopitelná a musí dobře popisovat jednotlivé funkce serveru.
  2. Interní test použitelnosti. Uživatel musí být schopen dle dokumentace a pokynů přiložených u knihovny úspěšně zapojit svůj nástroj do systému Warden jako přijímajícího klienta. Výstupem bude soupis doporučení k úpravě knihovny.
  3. Externí test použitelnosti. Uživatel nezapojený do vývoje systému musí být schopen dle dokumentace a pokynů přiložených u knihovny úspěšně zapojit svůj nástroj do systému Warden jako přijímajícího klienta. Výstupem bude vyplněný dotazník.
  4. Stáhnutí události
    1. Test autentizace
      1. Klient se musí přihlásit, pokud má správný certifikát a ostatní identifikační údaje.
      2. Klient se nesmí přihlásit, pokud má špatný certifikát nebo ostatní identifikační údaje.
    2. Test přenosu - Data přijatá klientem musí být stejná v databázi i na straně klienta.
    3. Test událostí
      1. Klient musí obdržet pouze data zaregistrované události
      2. Klient nesmí obdržet žádná data z nezaregistrované události
    4. Test vlastnictví
      1. Klient musí obdržet pouze cizí události, pokud má nastaven příjem pouze cizích událostí.
      2. Klient musí obdržet cizí i vlastní události, pokud má nastaven příjem všech událostí.
Test # Popis testu Proběhl korektně? Ano/Ne Poznámky
1 Test dokumentace Ano. Doporučení pro změny níže.
2 Test instalace Ano. Pomocí instal.sh a případně pokynů v FAQ lze klienta bez problémů nainstalovat.
3 Test použitelnosti Ano. Podrobnosti jsou dostupné níže
4.1.1 Test autentizace - nezaregistrován Ano. Klient je informován o zamítnutí přístupu.
4.1.2 Test autentizace - zaregistrován Ano.
4.2 Test přenosu dat Ano. Data se shodují.
4.3.1 Test zaregistrované události Ano.
4.3.2 Test neregistrované události Ano.
4.4.1 Test cizích událostí Ano. Server nepřijal žádnou z vlastních událostí.
4.4.2 Test vlastních událostí

Doporučení pro úpravu dokumentace klienta

  • AUTHORS:
    • odstranit mix tabu a mezer, formátovat pouze mezerami
  • CHANGELOG:
    • OK
  • INSTALL:
    • OK
  • LICENSE:
    • OK
  • README:
    • přesunout kapitolu C. Registration až za kapitolu G. Configuration
    • odstranit mix tabu a mezer, formátovat pouze mezerami
  • README.cesnet:
    • opravení verze klienta (připadná bližší revize souboru)
    • zahrnout poznámku o události test i do D. Types of events

2 Výkonové testy

2.1 Test za pomoci metacentra

Test č. 1 z května 2012

Poslední provedené výkonové testy realizoval Michal Kostěnec s pomocí metacentra na začátku května 2012 s následujícími výsledky:

maximum průměr
Počet přenesených událostí: cca 20M
Počet událostí/min.: 442546 37760
Počet událostí/sec.: 737 629
Počet klientů: 85 45
Referenční rychlost: (MACH): 2,5 2,10

Další podrobnosti k testu od M. Kostěnce:

Server stabilne prijima udalosti bez rychlostnich vykyvu. Zatizeni serveru
do 50 klientu je zanedbatelne, pres 50 uz zacina mit kour. Musim se podivat,
zda by jeste neslo neco potunit.

...

Co se tyce testovani posilajiciho klienta, tak je vse v poradku a rozhodne neni 
treba opakovat minuly distribuovany test s 10 stroji. Muzeme maximalne otestovat
jak chodi stahovani udalosti - nejlepe opet pres META.

Test č. 2 ze srpna 2012

V rámci testu byly provedeny dva subtesty. Prvním bylo odeslání 10M událostí, které proběhlo bez komplikací. Druhým bylo odeslání 2,7M událostí za 1:46 hodiny logovaných pomocí nástroje popisujícího chování serveru v průběhu odesílání zpráv. Nástroj je dostupný Gitu v adresáři /src/meta/other/meta_check.sh. Do 100 souběžně posílajících klientů je zátěž serveru přijatelná. Po překročení této hodnoty začíná zátěž stroje znatelně stoupat. Původní zpráva přiložena níže.

Podrobné informace o druhém subtestu jsou dostupné v přiloženém souboru.

> ...

No nevim jestli to nazvat bug, ale pro nase testovani se jedna o neprijemnou
vlastnost.  Ta se projevuje tak, ze na strojich s Debian Lenny se spojeni
zaviraji az po konci skriptu. Takze pokud pustim:

./performance-sender.pm test 1000

Bude najednou otevreno 1000 spojeni, ktere se korektne uzavrou az
se posle tisic zprav. Takze je jasne, co se stane se serverem, ktery
ma takove mnozstvi spojeni otevreno treva s 50 klienty.

Proto pro potreby testovani v META (kde je velke mnozsvi Lenny stroju)
pouzivame obezlicku napr.:

for i in `seq 1 100`; do
./performance-sender.pm test 10
done

...

*Vysledky testu:*
Poslal jsem cca 10M zprav bez jakychkoliv problemu a pro dalsi cca 3M jsem si 
napsal logovatko (/src/meta/other/meta_check.sh),
abych mohl zobrazit funkcnost grafem. Graf vlastne popisuje chovani serveru i 
pro predeslych 10M zprav,
protoze server se chova naprosto konzistentne.

Vysledek v kostce je takovy, ze bylo preneseno 2,7M zprav za 1:46hod a zatez 
serveru do 100 soubeznych
klientu byla prijatelna. Pres 100 soubezne posilajicich klientu uz server nestihal.

Podrobne v prilozenych souborech, pro ty, ktere zajimaji jen obrazky posilam 
grafik zvlast;-)

2.2 Distribuovaný test

2.2.1 Cíl testu

Cílem testu je porovnání výsledků s předchozími naměřenými hodnotami distribuovaného testu dřívější implementace serveru nepoužívající Apache.

2.2.2 Popis testu

2.2.3 Stručný přehled testu

Počet klientů na stroji Počet strojů Počet událostí/klient Doba běhu Využití swap RAM po dobu běhu testu CPU po dobu běhu testu Doba běhu klientů na strojích
2 100 000

2.2.4 Stroje zapojené do testu

Do tabulky jsou zahrnuty stroje, které odeslaly na server v průběhu testu alespoň jednu událost.

Stroj
Distribuce
Jádro
CPU
RAM

2.2.5 Počet odeslaných událostí za sekundu u každého klienta

2.2.6 Počet odeslaných událostí za sekundu celkem

2.2.7 Databáze

2.2.8 Závěr

3 Odpovědi na dotazník k instalaci klientů

1) Byl instalován odesílající nebo přijímající klient? 2) Jak dlouho zhruba instalace trvala (v minutách)? 3) Bylo potřeba provést významnější úkony nepopsané v pokynech k instalaci? Jaké? 4) Proběhla instalace bez komplikací? Pokud ne, co se zkomplikovalo? 5) Proběhla integrace klienta v pořádku? Pokud ne, co se zkomplikovalo? 6) Bylo třeba vyhledat pomoc někoho z vývojového týmu? 7) V případě že jste si dělal poznámky v průběhu instalace a integrace, budete ochotný je poskytnout pro sdílení postupu s ostatními? 8) Jak hodnotíte dostupnou dokumentaci (README, INSTALL, README.cesnet, ...)? 9) Pokud je možné usnadnit Vám proces instalace, co by nejvíce pomohlo?
1 Odesilajici. Jednotky minut. Instalace LWP SSL knihovny, ale nyni to jiz je popsano. Pokud pominu komplikaci v predchozim bode, pak to bylo bez komplikaci. V poradku. Ano, viz bod 3. Mel jsem jeste zmatek v registracich. Tomas vse vyresil. Rozhodne ano. Kompletni copy&paste HOWTO. DEB balik.
2 2 * odesílající (au1.cesnet.cz, au2.cesnet.cz). au1 - asi 5 minut a au2 - asi 2 minuty. Před instalací jsem pro jistotu zkopíroval /opt/warden-client do /opt/warden-client.sav, ale nebylo to nutné. Na au1.cesnet.cz i au2.cesnet.cz proběhla instalace v pořádku, Po spuštění testovacího klienta na au1 se objevilo hlášení: Can't locate object method "ssl_opts" via package "SOAP::Transport::HTTP::Client" at /opt/warden-client/lib/WardenClientSend.pm line 47, které je popsáno v FAQ, takže stačilo instalovat LWP::Protocol::https Teď všechno funguje a žádné chyby mně to nehlásí. Bez problémů. Ne. Poznámky jsem si nedělal. Dobrá. Myslím, že takhle to je velmi dobré.
3 oba asi hodinu, instalace byla provadena na lenny a meli jsme problem
s verzema perlovskych knihoven
pro lenny jsme museli natahnout netrivialni mnozstvi knihoven, hlavne
kvuli lwp ssl_opts. postupem casu se ale ukazalo ze spravne reseni
je natahnout lwp z cpanu (coz sme tenkrat netusili)
nic celkem jo ano poznamky nemam prilis rozsahla. skutecne potrebne veci jsou obalene tunou
byrokratickeho balastu
prijde mi ze by mi stacil tar bez instalatoru. ostatne ten instalator
nedela nic nez zalozi uzivatele s cosi kamsi nakopiruje