#!/bin/bash # (C)2009 DatuX - Released under GPL # Testlibrary voor SCC, gebruikt webinject.pl hiervoor. # Zie testscripts voor voorbeelden WEBINJECTDIR="webinject" TESTFILE="$WEBINJECTDIR/scctest_tmp.xml" TESTID=0; #Roep eerst scc_new aan om een nieuwe test te beginnen #Variabellen voor scc_add: # IP=IP adress # PAGE=op te vragen SCC pagina. # DESCRIPTION1= omschrijving # METHOD= get (standaard) of post # POSTBODY= post-data # IGNOREERROR=1 negeer fouten van de SCC (fatal errors oningevulde velden) # VERIFYPOSITIVE= tekst voor goed resultaat # VERIFYNEGATIVE= tekst voor negatief resultaat # VERIFYRESPONSECODE= http reponsecode moet hier aan voldoen #Roep hierna scc_run aan om te tests uit te voeren. #voeg losse test toe scc_add() { (( TESTID++ )) echo "> $TESTFILE echo "id='$TESTID'" >> $TESTFILE if [ "$METHOD" == "post" ]; then echo -e "description1='### scctest: $DESCRIPTION1 ( POST $POSTBODY naar $SCC/$PAGE )'" >> $TESTFILE else echo -e "description1='### scctest: $DESCRIPTION1 ( GET $SCC/$PAGE )'" >> $TESTFILE fi DESCRIPTION1= if [ "$METHOD" ]; then echo "method='$METHOD'" >> $TESTFILE METHOD= fi echo "url='$SCC/$PAGE'" >> $TESTFILE #deze aanpassen als error-handling in de scc anders word: if [ "$IGNOREERROR" != "1" ]; then echo "verifynegative3='error'" >> $TESTFILE fi IGNOREERROR= if [ "$VERIFYPOSITIVE" ]; then echo "verifypositive='$VERIFYPOSITIVE'" >> $TESTFILE VERIFYPOSITIVE= fi if [ "$VERIFYPOSITIVE2" ]; then echo "verifypositive2='$VERIFYPOSITIVE2'" >> $TESTFILE VERIFYPOSITIVE2= fi if [ "$VERIFYNEGATIVE" ]; then echo "verifynegative='$VERIFYNEGATIVE'" >> $TESTFILE VERIFYNEGATIVE= fi if [ "$VERIFYRESPONSECODE" ]; then echo "verifyresponsecode='$VERIFYRESPONSECODE'" >> $TESTFILE VERIFYRESPONSECODE= fi if [ "$POSTBODY" ]; then echo "postbody='$POSTBODY'" >> $TESTFILE POSTBODY= fi if [ "$PARSERESPONSE" ]; then echo "parseresponse='$PARSERESPONSE'" >> $TESTFILE PARSERESPONSE= fi echo "/>" >> $TESTFILE } #maak nieuwe testreeks aan. #nieuwe tests moe tje toevoegen met scc_add scc_new() { echo "" > $TESTFILE TESTID=0 # DESCRIPTION1="Afbreken eventueel vorige taken..." # IGNOREERROR=1 # PAGE="login/login.php?lock_abort=1"; # scc_add DESCRIPTION1="Inloggen op $SCC met password $SCCPASSWD..." VERIFYPOSITIVE="redirect=.https" #IGNOREERROR=1 METHOD="post" PAGE="login/login.php"; POSTBODY="new_name=root&new_passwd=$SCCPASSWD" scc_add } #voert de huidge testreeks uit. returned 1 bij failed tests scc_test() { #beeindig testset eerst: echo "" >> $TESTFILE if ! [ "$TIMEOUT" ]; then TIMEOUT=3600 fi cd $WEBINJECTDIR || return 1 #maak config echo "yes" > config.tmp.xml echo "$TIMEOUT" >> config.tmp.xml #voer test uit: echo "Running webinject tests:" RET=0 if ! ./webinject.pl -c config.tmp.xml scctest_tmp.xml; then echo "tip: controleer laatste logregels met:" echo "cat webinject/http.log |egrep -v '^ $'|less" RET=1 fi cd .. if grep FAILED $WEBINJECTDIR/results.xml &>/dev/null; then echo "There where failed tests!"; RET=1 fi TIMEOUT= #deze is klaar, begin een nieuwe test scc_new return $RET } scc_new #Voorbeeld: # DESCRIPTION1="" # PAGE="" # VERIFYNEGATIVE="" # VERIFYPOSITIVE="" # METHOD="post" # POSTBODY="" # scc_add