github.com/kubeshop/testkube@v1.17.23/test/run.sh (about) 1 #!/bin/zsh 2 set -e 3 4 TESTKUBE=${TESTKUBE:-$(which kubectl-testkube)} 5 6 test_execution_id() { 7 $TESTKUBE get executions | grep $1 | head -n 1 | tr -s ' ' | cut -d" " -f 2 8 } 9 10 testsuite_execution_id() { 11 $TESTKUBE get tse | grep $1 | head -n 1 | tr -s ' ' | cut -d" " -f 2 12 } 13 14 15 test_tests_delete() { 16 echo "Tests delete test" 17 $TESTKUBE delete test kubeshop-site1 > /dev/null || true 18 $TESTKUBE delete test kubeshop-site2 > /dev/null || true 19 $TESTKUBE delete test kubeshop-site3 > /dev/null || true 20 $TESTKUBE delete test kubeshop-site4 > /dev/null || true 21 $TESTKUBE delete test kubeshop-site5 > /dev/null || true 22 23 kubectl delete secrets kubeshop-site1-secrets > /dev/null || true 24 kubectl delete secrets kubeshop-site2-secrets > /dev/null || true 25 kubectl delete secrets kubeshop-site3-secrets > /dev/null || true 26 kubectl delete secrets kubeshop-site4-secrets > /dev/null || true 27 kubectl delete secrets kubeshop-site5-secrets > /dev/null || true 28 29 $TESTKUBE create test --file test/postman/Kubeshop.postman_collection.json --name kubeshop-site1 30 $TESTKUBE create test --file test/postman/Kubeshop.postman_collection.json --name kubeshop-site2 31 $TESTKUBE create test --file test/postman/Kubeshop.postman_collection.json --name kubeshop-site3 32 $TESTKUBE create test --file test/postman/Kubeshop.postman_collection.json --name kubeshop-site4 33 $TESTKUBE create test --file test/postman/Kubeshop.postman_collection.json --name kubeshop-site5 34 $TESTKUBE get tests 35 $TESTKUBE delete test kubeshop-site1 36 kubectl delete secrets kubeshop-site1-secrets > /dev/null || true 37 $TESTKUBE get tests 38 $TESTKUBE delete test kubeshop-site2 39 kubectl delete secrets kubeshop-site2-secrets > /dev/null || true 40 $TESTKUBE get tests 41 $TESTKUBE delete test kubeshop-site3 42 kubectl delete secrets kubeshop-site3-secrets > /dev/null || true 43 $TESTKUBE get tests 44 $TESTKUBE delete test kubeshop-site4 45 kubectl delete secrets kubeshop-site4-secrets > /dev/null || true 46 $TESTKUBE get tests 47 $TESTKUBE delete test kubeshop-site5 48 kubectl delete secrets kubeshop-site5-secrets > /dev/null || true 49 $TESTKUBE get tests 50 } 51 52 test_tests_delete_all() { 53 echo "Tests delete all test" 54 $TESTKUBE tests 55 $TESTKUBE delete tests --all 56 57 # delete secrets (for now manually) 58 # TODO change it after deletion of secrets will arrive to delete test 59 kubectl delete secrets kubeshop-site1-secrets > /dev/null || true 60 kubectl delete secrets kubeshop-site2-secrets > /dev/null || true 61 kubectl delete secrets kubeshop-site3-secrets > /dev/null || true 62 kubectl delete secrets kubeshop-site4-secrets > /dev/null || true 63 kubectl delete secrets kubeshop-site5-secrets > /dev/null || true 64 65 $TESTKUBE create test --file test/postman/Kubeshop.postman_collection.json --name kubeshop-site1 66 $TESTKUBE create test --file test/postman/Kubeshop.postman_collection.json --name kubeshop-site2 67 $TESTKUBE create test --file test/postman/Kubeshop.postman_collection.json --name kubeshop-site3 68 $TESTKUBE create test --file test/postman/Kubeshop.postman_collection.json --name kubeshop-site4 69 $TESTKUBE create test --file test/postman/Kubeshop.postman_collection.json --name kubeshop-site5 70 $TESTKUBE get tests 71 $TESTKUBE delete test kubeshop-site1 72 $TESTKUBE get tests 73 $TESTKUBE delete tests --all 74 $TESTKUBE get tests 75 } 76 77 test_tests_create() { 78 echo "Tests create test" 79 $TESTKUBE delete test kubeshop-site > /dev/null || true 80 kubectl delete secrets kubeshop-site-secrets > /dev/null || true 81 $TESTKUBE create test --file test/postman/Kubeshop.postman_collection.json --name kubeshop-site 82 $TESTKUBE delete test testkube-todo-api > /dev/null || true 83 kubectl delete secrets kubeshop-todo-api-secrets > /dev/null || true 84 $TESTKUBE create test --file test/postman/TODO.postman_collection.json --name testkube-todo-api 85 $TESTKUBE delete test testkube-todo-frontend > /dev/null || true 86 kubectl delete secrets kubeshop-todo-frontend-secrets > /dev/null || true 87 $TESTKUBE create test --git-branch main --git-uri https://github.com/kubeshop/testkube-example-cypress-project.git --git-path "cypress" --name testkube-todo-frontend --type cypress/project 88 $TESTKUBE delete test testkube-dashboard > /dev/null || true 89 kubectl delete secrets kubeshop-dashboard-secrets > /dev/null || true 90 $TESTKUBE create test --git-uri https://github.com/kubeshop/testkube-dashboard.git --git-path test --git-branch main --name testkube-dashboard --type cypress/project 91 $TESTKUBE delete test curl-test > /dev/null || true 92 kubectl delete secrets curl-test-secrets > /dev/null || true 93 cat test/curl/curl.json | $TESTKUBE create test --name curl-test 94 } 95 96 test_tests_run() { 97 $TESTKUBE run test kubeshop-site -f # postman 98 $TESTKUBE get execution $(test_execution_id kubeshop-site) 99 $TESTKUBE run test testkube-dashboard -f # cypress 100 $TESTKUBE get execution $(test_execution_id testkube-dashboard) 101 102 # curl issue #821 - need to be without -f 103 $TESTKUBE run test curl-test # curl 104 sleep 5 105 $TESTKUBE get execution $(test_execution_id curl-test) 106 } 107 108 109 test_tests_delete_all() { 110 echo "Tests delete all test" 111 $TESTKUBE delete testsuites --all 112 cat test/suites/testsuite-example-1.json | $TESTKUBE create testsuite --name todo-app1 113 cat test/suites/testsuite-example-1.json | $TESTKUBE create testsuite --name todo-app2 114 cat test/suites/testsuite-example-1.json | $TESTKUBE create testsuite --name todo-app3 115 cat test/suites/testsuite-example-1.json | $TESTKUBE create testsuite --name todo-app4 116 cat test/suites/testsuite-example-1.json | $TESTKUBE create testsuite --name todo-app5 117 118 $TESTKUBE delete testsuites todo-app1 119 $TESTKUBE get testsuites 120 121 $TESTKUBE delete testsuites --all 122 $TESTKUBE get testsuites 123 } 124 125 test_testsuites_delete() { 126 echo "Tests delete test" 127 $TESTKUBE delete testsuites todo-app1 > /dev/null || true 128 $TESTKUBE delete testsuites todo-app2 > /dev/null || true 129 $TESTKUBE delete testsuites todo-app3 > /dev/null || true 130 $TESTKUBE delete testsuites todo-app4 > /dev/null || true 131 $TESTKUBE delete testsuites todo-app5 > /dev/null || true 132 133 cat test/suites/testsuite-example-1.json | $TESTKUBE create testsuite --name todo-app1 134 cat test/suites/testsuite-example-1.json | $TESTKUBE create testsuite --name todo-app2 135 cat test/suites/testsuite-example-1.json | $TESTKUBE create testsuite --name todo-app3 136 cat test/suites/testsuite-example-1.json | $TESTKUBE create testsuite --name todo-app4 137 cat test/suites/testsuite-example-1.json | $TESTKUBE create testsuite --name todo-app5 138 139 $TESTKUBE delete testsuites todo-app1 140 $TESTKUBE get testsuites 141 $TESTKUBE delete testsuites todo-app2 142 $TESTKUBE get testsuites 143 $TESTKUBE delete testsuites todo-app3 144 $TESTKUBE get testsuites 145 $TESTKUBE delete testsuites todo-app4 146 $TESTKUBE get testsuites 147 $TESTKUBE delete testsuites todo-app5 148 $TESTKUBE get testsuites 149 } 150 151 test_testsuites_create() { 152 echo "create tests" 153 $TESTKUBE delete testsuites todo-app > /dev/null || true 154 cat test/suites/testsuite-example-1.json | $TESTKUBE create testsuite --name todo-app 155 $TESTKUBE delete testsuites kubeshop > /dev/null || true 156 cat test/suites/testsuite-example-2.json | $TESTKUBE create testsuite --name kubeshop 157 } 158 159 test_testsuites_run() { 160 echo "run tests" 161 $TESTKUBE run testsuite todo-app -f 162 $TESTKUBE testsuites execution $(testsuite_execution_id todo-app) 163 $TESTKUBE run testsuite kubeshop -f 164 $TESTKUBE testsuites execution $(testsuite_execution_id kubeshop) 165 } 166 167 while test $# != 0 168 do 169 case "$1" in 170 --delete-all-test) 171 test_tests_delete_all 172 test_tests_delete_all 173 ;; 174 esac 175 shift 176 done 177 178 test_tests_delete 179 test_tests_create 180 test_tests_run 181 182 test_testsuites_delete 183 test_testsuites_create 184 test_testsuites_run