[c5c522c] | 1 | #!/bin/bash |
---|
| 2 | # (C)2009 DatuX - Released under GPL |
---|
| 3 | |
---|
| 4 | # Testlibrary voor SCC, gebruikt webinject.pl hiervoor. |
---|
| 5 | # Zie testscripts voor voorbeelden |
---|
| 6 | |
---|
| 7 | WEBINJECTDIR="webinject" |
---|
| 8 | TESTFILE="$WEBINJECTDIR/scctest_tmp.xml" |
---|
| 9 | TESTID=0; |
---|
| 10 | |
---|
| 11 | |
---|
| 12 | #Roep eerst scc_new aan om een nieuwe test te beginnen |
---|
| 13 | #Variabellen voor scc_add: |
---|
| 14 | # IP=IP adress |
---|
| 15 | # PAGE=op te vragen SCC pagina. |
---|
| 16 | # DESCRIPTION1= omschrijving |
---|
| 17 | # METHOD= get (standaard) of post |
---|
| 18 | # POSTBODY= post-data |
---|
| 19 | # IGNOREERROR=1 negeer fouten van de SCC (fatal errors oningevulde velden) |
---|
| 20 | # VERIFYPOSITIVE= tekst voor goed resultaat |
---|
| 21 | # VERIFYNEGATIVE= tekst voor negatief resultaat |
---|
| 22 | # VERIFYRESPONSECODE= http reponsecode moet hier aan voldoen |
---|
| 23 | #Roep hierna scc_run aan om te tests uit te voeren. |
---|
| 24 | |
---|
| 25 | #voeg losse test toe |
---|
| 26 | scc_add() |
---|
| 27 | { |
---|
| 28 | (( TESTID++ )) |
---|
| 29 | echo "<case " >> $TESTFILE |
---|
| 30 | |
---|
| 31 | echo "id='$TESTID'" >> $TESTFILE |
---|
| 32 | |
---|
| 33 | if [ "$METHOD" == "post" ]; then |
---|
| 34 | echo -e "description1='### scctest: $DESCRIPTION1 ( POST $POSTBODY naar $SCC/$PAGE )'" >> $TESTFILE |
---|
| 35 | else |
---|
| 36 | echo -e "description1='### scctest: $DESCRIPTION1 ( GET $SCC/$PAGE )'" >> $TESTFILE |
---|
| 37 | fi |
---|
| 38 | DESCRIPTION1= |
---|
| 39 | |
---|
| 40 | if [ "$METHOD" ]; then |
---|
| 41 | echo "method='$METHOD'" >> $TESTFILE |
---|
| 42 | METHOD= |
---|
| 43 | fi |
---|
| 44 | |
---|
| 45 | echo "url='$SCC/$PAGE'" >> $TESTFILE |
---|
| 46 | |
---|
| 47 | #deze aanpassen als error-handling in de scc anders word: |
---|
| 48 | if [ "$IGNOREERROR" != "1" ]; then |
---|
| 49 | echo "verifynegative3='error'" >> $TESTFILE |
---|
| 50 | fi |
---|
| 51 | IGNOREERROR= |
---|
| 52 | |
---|
| 53 | if [ "$VERIFYPOSITIVE" ]; then |
---|
| 54 | echo "verifypositive='$VERIFYPOSITIVE'" >> $TESTFILE |
---|
| 55 | VERIFYPOSITIVE= |
---|
| 56 | fi |
---|
| 57 | |
---|
| 58 | if [ "$VERIFYPOSITIVE2" ]; then |
---|
| 59 | echo "verifypositive2='$VERIFYPOSITIVE2'" >> $TESTFILE |
---|
| 60 | VERIFYPOSITIVE2= |
---|
| 61 | fi |
---|
| 62 | |
---|
| 63 | if [ "$VERIFYNEGATIVE" ]; then |
---|
| 64 | echo "verifynegative='$VERIFYNEGATIVE'" >> $TESTFILE |
---|
| 65 | VERIFYNEGATIVE= |
---|
| 66 | fi |
---|
| 67 | |
---|
| 68 | if [ "$VERIFYRESPONSECODE" ]; then |
---|
| 69 | echo "verifyresponsecode='$VERIFYRESPONSECODE'" >> $TESTFILE |
---|
| 70 | VERIFYRESPONSECODE= |
---|
| 71 | fi |
---|
| 72 | |
---|
| 73 | if [ "$POSTBODY" ]; then |
---|
| 74 | echo "postbody='$POSTBODY'" >> $TESTFILE |
---|
| 75 | POSTBODY= |
---|
| 76 | fi |
---|
| 77 | |
---|
| 78 | if [ "$PARSERESPONSE" ]; then |
---|
| 79 | echo "parseresponse='$PARSERESPONSE'" >> $TESTFILE |
---|
| 80 | PARSERESPONSE= |
---|
| 81 | fi |
---|
| 82 | |
---|
| 83 | echo "/>" >> $TESTFILE |
---|
| 84 | |
---|
| 85 | } |
---|
| 86 | |
---|
| 87 | #maak nieuwe testreeks aan. |
---|
| 88 | #nieuwe tests moe tje toevoegen met scc_add |
---|
| 89 | scc_new() |
---|
| 90 | { |
---|
| 91 | echo "<testcases repeat='1'>" > $TESTFILE |
---|
| 92 | TESTID=0 |
---|
| 93 | |
---|
| 94 | |
---|
| 95 | |
---|
| 96 | # DESCRIPTION1="Afbreken eventueel vorige taken..." |
---|
| 97 | # IGNOREERROR=1 |
---|
| 98 | # PAGE="login/login.php?lock_abort=1"; |
---|
| 99 | # scc_add |
---|
| 100 | |
---|
| 101 | DESCRIPTION1="Inloggen op $SCC met password $SCCPASSWD..." |
---|
| 102 | VERIFYPOSITIVE="redirect=.https" |
---|
| 103 | #IGNOREERROR=1 |
---|
| 104 | METHOD="post" |
---|
| 105 | PAGE="login/login.php"; |
---|
| 106 | POSTBODY="new_name=root&new_passwd=$SCCPASSWD" |
---|
| 107 | scc_add |
---|
| 108 | } |
---|
| 109 | |
---|
| 110 | #voert de huidge testreeks uit. returned 1 bij failed tests |
---|
| 111 | scc_test() |
---|
| 112 | { |
---|
| 113 | |
---|
| 114 | |
---|
| 115 | #beeindig testset eerst: |
---|
| 116 | echo "</testcases>" >> $TESTFILE |
---|
| 117 | |
---|
| 118 | |
---|
| 119 | if ! [ "$TIMEOUT" ]; then |
---|
| 120 | TIMEOUT=3600 |
---|
| 121 | fi |
---|
| 122 | |
---|
| 123 | cd $WEBINJECTDIR || return 1 |
---|
| 124 | |
---|
| 125 | #maak config |
---|
| 126 | echo "<globalhttplog>yes</globalhttplog>" > config.tmp.xml |
---|
| 127 | echo "<timeout>$TIMEOUT</timeout>" >> config.tmp.xml |
---|
| 128 | |
---|
| 129 | |
---|
| 130 | |
---|
| 131 | #voer test uit: |
---|
| 132 | echo "Running webinject tests:" |
---|
| 133 | RET=0 |
---|
| 134 | if ! ./webinject.pl -c config.tmp.xml scctest_tmp.xml; then |
---|
| 135 | echo "tip: controleer laatste logregels met:" |
---|
| 136 | echo "cat webinject/http.log |egrep -v '^ $'|less" |
---|
| 137 | RET=1 |
---|
| 138 | fi |
---|
| 139 | cd .. |
---|
| 140 | if grep FAILED $WEBINJECTDIR/results.xml &>/dev/null; then |
---|
| 141 | echo "There where failed tests!"; |
---|
| 142 | RET=1 |
---|
| 143 | fi |
---|
| 144 | |
---|
| 145 | TIMEOUT= |
---|
| 146 | |
---|
| 147 | #deze is klaar, begin een nieuwe test |
---|
| 148 | scc_new |
---|
| 149 | return $RET |
---|
| 150 | } |
---|
| 151 | |
---|
| 152 | |
---|
| 153 | scc_new |
---|
| 154 | |
---|
| 155 | #Voorbeeld: |
---|
| 156 | # DESCRIPTION1="" |
---|
| 157 | # PAGE="" |
---|
| 158 | # VERIFYNEGATIVE="" |
---|
| 159 | # VERIFYPOSITIVE="" |
---|
| 160 | # METHOD="post" |
---|
| 161 | # POSTBODY="" |
---|
| 162 | # scc_add |
---|