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