Testování Warden serveru a klientů (2.0) po přechodu na Apache¶
- Table of contents
- Testování Warden serveru a klientů (2.0) po přechodu na Apache
1 Systémové a akceptační testy¶
1.1 Server¶
- Test dokumentace - Dokumentace musí být pochopitelná a musí dobře popisovat jednotlivé funkce serveru.
- 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.
- Registrace vysílajícího klienta
- Test autorizace
- Uživatel nesmí zaregistrovat klienta, pokud k tomu není oprávněn.
- Uživatel musí zaregistrovat klienta, pokud k tomu je oprávněn.
- Test správnosti dat. Data v DB v tabulce klientů musí odpovídat datům zadaným uživatelem.
- Test autorizace
- Registrace přijímajícího klienta
- Test autorizace
- Uživatel nesmí zaregistrovat klienta, pokud k tomu není oprávněn.
- Uživatel musí zaregistrovat klienta, pokud k tomu je oprávněn.
- Test správnosti dat. Data v DB v tabulce klientů musí odpovídat datům zadaným uživatelem.
- Test autorizace
- Odebrání klienta
- Test autorizace
- Uživatel nesmí odebrat klienta, pokud k tomu není oprávněn.
- Uživatel musí odebrat klienta, pokud k tomu je oprávněn.
- Test dat - v případě odebrání klienta musí být všechna jeho data označena jako nepřístupná.
- Test autorizace
- Výpis stavu serveru
- Test autorizace
- Uživatel nesmí vypsat stav serveru, pokud k tomu není oprávněn.
- Uživatel musí vypsat stav serveru, pokud k tomu je oprávněn.
- Test správnosti dat. Data v DB musí odpovídat vypsaným datům
- Test autorizace
- Výpis klientů
- Test autorizace
- Uživatel nesmí vypsat klienty, pokud k tomu není oprávněn.
- Uživatel musí vypsat klienty, pokud k tomu je oprávněn.
- Test správnosti dat - data v DB musí odpovídat vypsaným datům.
- Test autorizace
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¶
- Test dokumentace. Dokumentace musí být pochopitelná a musí dobře popisovat jednotlivé funkce serveru.
- 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.
- 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.
- Odeslání události
- Test autentizace
- Klient se musí přihlásit, pokud má správný certifikát a ostatní identifikační údaje.
- Klient se nesmí přihlásit, pokud má špatný certifikát nebo ostatní identifikační údaje.
- Test přenosu. Data odeslaná klientem musí být stejná v databázi i na straně klienta.
- Test potvrzení. Server musí klienta správně informovat o přijetí/nepřijetí dat.
- Test autentizace
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¶
- Test dokumentace. Dokumentace musí být pochopitelná a musí dobře popisovat jednotlivé funkce serveru.
- 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.
- 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.
- Stáhnutí události
- Test autentizace
- Klient se musí přihlásit, pokud má správný certifikát a ostatní identifikační údaje.
- Klient se nesmí přihlásit, pokud má špatný certifikát nebo ostatní identifikační údaje.
- Test přenosu - Data přijatá klientem musí být stejná v databázi i na straně klienta.
- Test událostí
- Klient musí obdržet pouze data zaregistrované události
- Klient nesmí obdržet žádná data z nezaregistrované události
- Test vlastnictví
- Klient musí obdržet pouze cizí události, pokud má nastaven příjem pouze cizích událostí.
- Klient musí obdržet cizí i vlastní události, pokud má nastaven příjem všech událostí.
- Test autentizace
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 |