Changes between Initial Version and Version 1 of SynTest


Ignore:
Timestamp:
08/08/08 00:10:41 (16 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SynTest

    v1 v1  
     1= Syn-3 automatische regressie tests =
     2
     3In source:trunk/test vind je het automatische testsysteem voor Syn3. Deze tests kunnen een groot deel van de syn3 functionaliteit automatisch testen. Hierdoor kun je fouten na een update of wijziging gemakkelijk vinden.
     4
     5Er zijn verschillende manieren om tests uit te voeren. We beginnen zo simpel mogelijk, en zoomen steeds verder uit naar een 'ubertest' die alles test.
     6
     7== Benodidigdheden ==
     8
     9Je hebt een aantal perlmodules nodig voor webinject.pl. Onder gentoo moest ik het volgende emergen:
     10 * libwww-perl
     11 * (perl) XML-Simple
     12 * (perl) Error
     13 
     14
     15== 1 test uitvoeren op geinstalleerde machine ==
     16
     17De standaard instellingen qua IP en password van de SCC staan in default.conf. Controleer deze file en kijk of er aanpassingen nodig zijn voor bijvoorbeeld de SMB of VPN settings. '''Pas de file zelf niet aan! '''. In plaats hiervan maak je een local.conf, met daarin de settings die je wilt 'overschrijven'.
     18
     19Hierna voer je de gewenste test uit:
     20{{{
     21psy /home/psy/syn3release/tests # ./00100_syn3
     22Running webinject tests:
     23
     24Starting WebInject Engine...
     25
     26-------------------------------------------------------
     27Test:  scctest_tmp.xml - 1
     28### scctest: Inloggen op https://10.73.57.2:10000 met password syn3...
     29Verify : "redirect=.https"
     30Verify Negative: "error"
     31Passed Positive Verification
     32Failed Negative Verification
     33Passed HTTP Response Code Verification (not in error range)
     34....etc...
     35}}}
     36
     37Een test begint met een nummer gevolgd door een naam. Ieder onderdeel van de SCC heeft een eigen testfile. Deze files zijn simpelle shellscripts, kijk in deze files om te leren hoe je zelf een test voor iets schrijft.
     38
     39Als de test succesvol is word dit aangegeven. Bij fouten stopt de test en kun je in de output op het scherm vaak zien wat er mis is.
     40
     41== Alle tests uitvoeren op geinstalleerde machine ==
     42
     43Om alle tests in 1x uit te voeren run je het ''./runtests'' script.
     44
     45Deze voert alle tests op volgorde uit en stopt bij problemen. Gebruik het resume parameter om een test te hervatten, nadat je een fout opgelost hebt.
     46
     47
     48= Alle producten automatisch installeren en testen =
     49
     50De regressie test is ook in staat om ALLE producten te installeren en testen.
     51
     52Om dit te doen moet je eerst een speciale CD maken met de 'regres' optie. Deze cd start automatisch door de grub heen, en wijst zichzelf het opgegeven IP toe. (dit moet 10.73.57.2 zijn)
     53
     54== Voorwaarden automatische regressie test  ==
     55
     56 * De default gw van het testnetwerk mot 10.73.57.1 zijn en internet toegang verschaffen.
     57 * Je eigen machine moet ook een alias hebben in deze range.
     58 * eth0 is geconfigureerd en internet werkt en gaat ook via eth0. De gateway moet 10.73.57.1 zijn, de machine krijgt 10.73.57.2. (leetspeak voor 'test'). Gebruik bridged mode.
     59 * eth1 hangt aan een netwerk met dhcp, gebruik NAT mode.
     60 * De bios moet eerst van disk proberen te booten en pas DAN van CDROM of usbstick.
     61
     62Ik test altijd met vmware, maar je moet ook kunnen testen met een echte machine waar een regressie install cdrom of stick in zit.
     63
     64== Maken van een regressie test installatie cd ==
     65
     66Hier een voorbeeld van een regressie iso:
     67{{{
     68psy /home/psy/syn3/bootcd # IP=10.73.57.2 ./mkcd 4.1rc3 regres
     69......
     70}}}
     71
     72Of als je lokale pakketjes hebt die je wilt regressie testen:
     73{{{
     74psy /home/psy/syn3/bootcd # cat localkernel.list
     75linux
     76initrd
     77psy /home/psy/syn3/bootcd # IP=10.73.57.2 ./mkcd 4.1rc3 regres localkernel.list
     78......
     79}}}
     80
     81Hierna ben je een geconfigureerde vmware of server nodig, de voorwaarden van deze machine staan hieronder.
     82
     83Als de machine voorbereid is run je ''./autoinstall''. Dit zal de install CD (of usbstick) steeds weer opnieuw booten, installeren en testen, voor iedere product key die in autoinstall staat:
     84{{{
     85psy /home/psy/syn3/tests # ./autoinstall
     86
     87        Dit script voert alle tests inclusief installatie uit voor een aantal verschillende producten.
     88        Zorg dat je vmware zo geconfigureerd is dat hij je installatie iso file cd als bootcd gebruikt. (meestal latest.iso)
     89        Deze CD moet gemaakt zijn met de regres optie.
     90        De bootpriority moet staan op 1. harddisk 2. cdrom.
     91        Hierna moet je 1x vanaf CD booten en zal de rest vanzelf moeten gaan.
     92
     93        DE SERVER OP 10.73.57.2 GAAT DUS GESLOOPT WORDEN NU!!
     94
     95        LETOP: Vmware moet je echt stoppen/starten bij een nieuwe cd image.
     96
     97        Druk op ENTER om door te gaan
     98
     99
     100### Testcase: Advanced business server compleet met alle opties, normale installatie.
     101Testcase ID: 1
     102Key        : QVKHT-G0DP0-BN3SV
     103Installmode: advanced_noraid_gpt.xns
     104
     105### sshtest: Server onbootable maken en rebooten. LETOP: Vmware moet je echt stoppen/starten bij een nieuwe cd image!
     106.....
     107}}}
     108
     109
     110De eerste keer moet je de machine waarschijnlijk handmatig van CD laten starten, met ESC in de bios. (of de disks even zero-en)
     111
     112Hierna de rest vanzelf gaan. Het rebooten om opnieuw te installeren gaat doordat de machine zn disk automatisch leegmaakt, waarna de bios vanaf cd of usbstick boot.
     113
     114
     115== Wijzigen installatie modus ==
     116
     117Wijzigignen maak je in je local.conf (deze bestaat standaard niet):
     118{{{
     119psy /home/psy/syn3/tests # cat local.conf
     120INSTALL_MODE="advanced_noraid_gpt.xns"
     121}}}
     122
     123Op deze manier word de server geinstalled met de advanced mode, zonder software raid en met GPT partities.
     124
     125
     126
     127
     128= Installer handeling 'opnemen' =
     129
     130De muis en keyboard bewegingen worden opgenomen en afgespeeld met Xnee.
     131
     132Er is een handig script in de tests directory om nieuwe opnamen te maken:
     133{{{
     134psy /home/psy/syn3/tests # ./Xrecord advanced_noraid.xns
     135Recording....press ctrl-C to end
     136@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
     137@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
     138@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
     139IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
     140Someone could be eavesdropping on you right now (man-in-the-middle attack)!
     141It is also possible that the RSA host key has just been changed.
     142The fingerprint for the RSA key sent by the remote host is
     1436f:eb:59:87:a6:34:db:8b:21:92:a3:4c:5d:f0:b0:62.
     144Please contact your system administrator.
     145Add correct host key in /root/.ssh/known_hosts to get rid of this message.
     146Offending key in /root/.ssh/known_hosts:1
     147Password authentication is disabled to avoid man-in-the-middle attacks.
     148Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.
     149 ---> xnee_find_option_entry_impl
     150....
     151}}}
     152
     153Er word naar de reeds actieve regressie installer geconnect en vanaf dit moment worden de handelingen opgenomen, todat je ctrl-c doet in deze terminal.
     154
     155
     156= Update pad testen =
     157
     158Als je wil weten of een bepaalde serie updates goed werken ben je een server nodig die reeds geinstalleerd is. Deze machine moet de standaard test instellingen hebben. (zie hierboven)
     159
     160Hierna voer je handmatig alle updates uit en start je ./runtests om te kijken of alles (nog) goed werkt.
     161
     162= Testen maken of wijzigen =
     163
     164Let op de volgende dingen:
     165
     166 * Test altijd beide situaties. (voorbeeld: is het WEL schrijfbaar...verander settings...is het NIET schrijfbaar)
     167 * Verify altijd zo veel mogelijk teksten. (errors, ok meldingen etc)
     168 * Zorg dat je test backwards compatible blijft als je hem wijzigd. Dit is bijvoorbeeld bij de smb tests het geval. (word op zowel de oude als nieuwe tekst gecontroleerd)
     169 * Zorg dat de test iederkeer opnieuw uitgevoerd kan worden. Hiervoor is het soms nodig om zooi te verwijderen of opnieuw ./_maketestusers te runnen.
     170
     171