#!/bin/bash # (C)2009 DatuX - Released under GPL # Testlibrary voor webpaginas, gebruikt webinject.pl hiervoor. # Zie testscripts voor voorbeelden export PERL_LWP_SSL_VERIFY_HOSTNAME=0 WEBINJECTDIR="webinject" WEB_TESTFILE="$WEBINJECTDIR/webtest_tmp.xml" WEB_TESTID=0; #Roep eerst web_new aan om een nieuwe test te beginnen #Variabellen voor web_add: # URL=Op de vragen url. # DESCRIPTION1= omschrijving # METHOD= get (standaard) of post # POSTBODY= post-data # 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 web_add() { (( WEB_TESTID++ )) echo "> $WEB_TESTFILE echo "id='$WEB_TESTID'" >> $WEB_TESTFILE if [ "$DESCRIPTION1" ]; then #echo -e "description1='\e[1;32m### scctest: $DESCRIPTION1\e[0m'" >> $WEB_TESTFILE echo -e "description1='### webtest: $DESCRIPTION1 (op $URL)'" >> $WEB_TESTFILE DESCRIPTION1= fi if [ "$METHOD" ]; then echo "method='$METHOD'" >> $WEB_TESTFILE METHOD= fi echo "url='$URL'" >> $WEB_TESTFILE URL= if [ "$VERIFYPOSITIVE" ]; then echo "verifypositive='$VERIFYPOSITIVE'" >> $WEB_TESTFILE VERIFYPOSITIVE= fi if [ "$VERIFYPOSITIVE2" ]; then echo "verifypositive2='$VERIFYPOSITIVE2'" >> $WEB_TESTFILE VERIFYPOSITIVE2= fi if [ "$VERIFYNEGATIVE" ]; then echo "verifynegative='$VERIFYNEGATIVE'" >> $WEB_TESTFILE VERIFYNEGATIVE= fi if [ "$VERIFYNEGATIVE2" ]; then echo "verifynegative2='$VERIFYNEGATIVE2'" >> $WEB_TESTFILE VERIFYNEGATIVE2= fi if [ "$VERIFYRESPONSECODE" ]; then echo "verifyresponsecode='$VERIFYRESPONSECODE'" >> $WEB_TESTFILE VERIFYRESPONSECODE= fi if [ "$PARSERESPONSE" ]; then echo "parseresponse='$PARSERESPONSE'" >> $WEB_TESTFILE PARSERESPONSE= fi if [ "$POSTBODY" ]; then if [ "$POSTTYPE" == "text/xml" ]; then #store xml request in seperate xml file: echo "$POSTBODY" > $WEBINJECTDIR/post$WEB_TESTID.xml echo "postbody='file=>post$WEB_TESTID.xml'" >> $WEB_TESTFILE else echo "postbody='$POSTBODY'" >> $WEB_TESTFILE fi POSTBODY= fi if [ "$POSTTYPE" ]; then echo "posttype='$POSTTYPE'" >> $WEB_TESTFILE POSTTYPE= fi echo "/>" >> $WEB_TESTFILE } #maak nieuwe testreeks aan. #nieuwe tests moe tje toevoegen met web_add web_new() { echo "" > $WEB_TESTFILE WEB_TESTID=0 } #voert de huidge testreeks uit. returned 1 bij failed tests web_test() { #beeindig testset eerst: echo "" >> $WEB_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 webtest_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 web_new return $RET } web_new #Voorbeeld: # DESCRIPTION1="" # URL="" # VERIFYNEGATIVE="" # VERIFYPOSITIVE="" # METHOD="post" # POSTBODY="" # web_add