[c5c522c] | 1 | #!/bin/bash |
---|
| 2 | # (C)2009 DatuX - Released under GPL |
---|
| 3 | |
---|
| 4 | # Testlibrary voor webpaginas, gebruikt webinject.pl hiervoor. |
---|
| 5 | # Zie testscripts voor voorbeelden |
---|
| 6 | |
---|
| 7 | export PERL_LWP_SSL_VERIFY_HOSTNAME=0 |
---|
| 8 | WEBINJECTDIR="webinject" |
---|
| 9 | WEB_TESTFILE="$WEBINJECTDIR/webtest_tmp.xml" |
---|
| 10 | WEB_TESTID=0; |
---|
| 11 | |
---|
| 12 | |
---|
| 13 | #Roep eerst web_new aan om een nieuwe test te beginnen |
---|
| 14 | #Variabellen voor web_add: |
---|
| 15 | # URL=Op de vragen url. |
---|
| 16 | # DESCRIPTION1= omschrijving |
---|
| 17 | # METHOD= get (standaard) of post |
---|
| 18 | # POSTBODY= post-data |
---|
| 19 | # VERIFYPOSITIVE= tekst voor goed resultaat |
---|
| 20 | # VERIFYNEGATIVE= tekst voor negatief resultaat |
---|
| 21 | # VERIFYRESPONSECODE= http reponsecode moet hier aan voldoen |
---|
| 22 | #Roep hierna scc_run aan om te tests uit te voeren. |
---|
| 23 | |
---|
| 24 | #voeg losse test toe |
---|
| 25 | web_add() |
---|
| 26 | { |
---|
| 27 | (( WEB_TESTID++ )) |
---|
| 28 | echo "<case " >> $WEB_TESTFILE |
---|
| 29 | |
---|
| 30 | echo "id='$WEB_TESTID'" >> $WEB_TESTFILE |
---|
| 31 | |
---|
| 32 | if [ "$DESCRIPTION1" ]; then |
---|
| 33 | #echo -e "description1='\e[1;32m### scctest: $DESCRIPTION1\e[0m'" >> $WEB_TESTFILE |
---|
| 34 | echo -e "description1='### webtest: $DESCRIPTION1 (op $URL)'" >> $WEB_TESTFILE |
---|
| 35 | DESCRIPTION1= |
---|
| 36 | fi |
---|
| 37 | |
---|
| 38 | if [ "$METHOD" ]; then |
---|
| 39 | echo "method='$METHOD'" >> $WEB_TESTFILE |
---|
| 40 | METHOD= |
---|
| 41 | fi |
---|
| 42 | |
---|
| 43 | echo "url='$URL'" >> $WEB_TESTFILE |
---|
| 44 | URL= |
---|
| 45 | |
---|
| 46 | if [ "$VERIFYPOSITIVE" ]; then |
---|
| 47 | echo "verifypositive='$VERIFYPOSITIVE'" >> $WEB_TESTFILE |
---|
| 48 | VERIFYPOSITIVE= |
---|
| 49 | fi |
---|
| 50 | |
---|
| 51 | if [ "$VERIFYPOSITIVE2" ]; then |
---|
| 52 | echo "verifypositive2='$VERIFYPOSITIVE2'" >> $WEB_TESTFILE |
---|
| 53 | VERIFYPOSITIVE2= |
---|
| 54 | fi |
---|
| 55 | |
---|
| 56 | if [ "$VERIFYNEGATIVE" ]; then |
---|
| 57 | echo "verifynegative='$VERIFYNEGATIVE'" >> $WEB_TESTFILE |
---|
| 58 | VERIFYNEGATIVE= |
---|
| 59 | fi |
---|
| 60 | |
---|
| 61 | if [ "$VERIFYNEGATIVE2" ]; then |
---|
| 62 | echo "verifynegative2='$VERIFYNEGATIVE2'" >> $WEB_TESTFILE |
---|
| 63 | VERIFYNEGATIVE2= |
---|
| 64 | fi |
---|
| 65 | |
---|
| 66 | if [ "$VERIFYRESPONSECODE" ]; then |
---|
| 67 | echo "verifyresponsecode='$VERIFYRESPONSECODE'" >> $WEB_TESTFILE |
---|
| 68 | VERIFYRESPONSECODE= |
---|
| 69 | fi |
---|
| 70 | |
---|
| 71 | if [ "$PARSERESPONSE" ]; then |
---|
| 72 | echo "parseresponse='$PARSERESPONSE'" >> $WEB_TESTFILE |
---|
| 73 | PARSERESPONSE= |
---|
| 74 | fi |
---|
| 75 | |
---|
| 76 | if [ "$POSTBODY" ]; then |
---|
| 77 | if [ "$POSTTYPE" == "text/xml" ]; then |
---|
| 78 | #store xml request in seperate xml file: |
---|
| 79 | echo "$POSTBODY" > $WEBINJECTDIR/post$WEB_TESTID.xml |
---|
| 80 | echo "postbody='file=>post$WEB_TESTID.xml'" >> $WEB_TESTFILE |
---|
| 81 | else |
---|
| 82 | echo "postbody='$POSTBODY'" >> $WEB_TESTFILE |
---|
| 83 | fi |
---|
| 84 | POSTBODY= |
---|
| 85 | fi |
---|
| 86 | |
---|
| 87 | if [ "$POSTTYPE" ]; then |
---|
| 88 | echo "posttype='$POSTTYPE'" >> $WEB_TESTFILE |
---|
| 89 | POSTTYPE= |
---|
| 90 | fi |
---|
| 91 | |
---|
| 92 | echo "/>" >> $WEB_TESTFILE |
---|
| 93 | |
---|
| 94 | } |
---|
| 95 | |
---|
| 96 | #maak nieuwe testreeks aan. |
---|
| 97 | #nieuwe tests moe tje toevoegen met web_add |
---|
| 98 | web_new() |
---|
| 99 | { |
---|
| 100 | echo "<testcases repeat='1'>" > $WEB_TESTFILE |
---|
| 101 | WEB_TESTID=0 |
---|
| 102 | |
---|
| 103 | } |
---|
| 104 | |
---|
| 105 | #voert de huidge testreeks uit. returned 1 bij failed tests |
---|
| 106 | web_test() |
---|
| 107 | { |
---|
| 108 | #beeindig testset eerst: |
---|
| 109 | echo "</testcases>" >> $WEB_TESTFILE |
---|
| 110 | |
---|
| 111 | if ! [ "$TIMEOUT" ]; then |
---|
| 112 | TIMEOUT=3600 |
---|
| 113 | fi |
---|
| 114 | |
---|
| 115 | cd $WEBINJECTDIR || return 1 |
---|
| 116 | |
---|
| 117 | #maak config |
---|
| 118 | echo "<globalhttplog>yes</globalhttplog>" > config.tmp.xml |
---|
| 119 | echo "<timeout>$TIMEOUT</timeout>" >> config.tmp.xml |
---|
| 120 | |
---|
| 121 | |
---|
| 122 | #voer test uit: |
---|
| 123 | echo "Running webinject tests:" |
---|
| 124 | RET=0 |
---|
| 125 | if ! ./webinject.pl -c config.tmp.xml webtest_tmp.xml; then |
---|
| 126 | echo "tip: controleer laatste logregels met:" |
---|
| 127 | echo "cat webinject/http.log |egrep -v '^ $'|less" |
---|
| 128 | RET=1 |
---|
| 129 | fi |
---|
| 130 | cd .. |
---|
| 131 | if grep FAILED $WEBINJECTDIR/results.xml &>/dev/null; then |
---|
| 132 | echo "There where failed tests!"; |
---|
| 133 | RET=1 |
---|
| 134 | fi |
---|
| 135 | |
---|
| 136 | TIMEOUT= |
---|
| 137 | |
---|
| 138 | #deze is klaar, begin een nieuwe test |
---|
| 139 | web_new |
---|
| 140 | return $RET |
---|
| 141 | } |
---|
| 142 | |
---|
| 143 | |
---|
| 144 | web_new |
---|
| 145 | |
---|
| 146 | #Voorbeeld: |
---|
| 147 | # DESCRIPTION1="" |
---|
| 148 | # URL="" |
---|
| 149 | # VERIFYNEGATIVE="" |
---|
| 150 | # VERIFYPOSITIVE="" |
---|
| 151 | # METHOD="post" |
---|
| 152 | # POSTBODY="" |
---|
| 153 | # web_add |
---|