runtest.sh 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. export LANG=zh_CN.utf8
  2. export LC_ALL=zh_CN.utf8
  3. #改变工作目录到当前脚本所在路径
  4. if [[ "$0" =~ / ]]; then cd "${0%/*}"; fi
  5. #通过env文件配置环境变量
  6. if [[ -f "./env" ]]; then
  7. . ./env
  8. fi
  9. if [[ "$ETCDPATH" = "" ]]; then
  10. export ETCDPATH=47.92.151.165:2379
  11. fi
  12. if [[ "$ETCDUSER" = "" ]]; then
  13. #// ETCDUSER=root
  14. export ETCDUSER=
  15. fi
  16. if [[ "$ETCDPASS" = "" ]]; then
  17. #// ETCDPASS=VXOrp3iEqNBlSTp8LR3nSg==
  18. export ETCDPASS=
  19. fi
  20. if [[ "$CASSANDRAPATH" = "" ]]; then
  21. export CASSANDRAPATH=47.92.151.165
  22. fi
  23. if [[ "$CASSANDRALOOKUP" = "" ]]; then
  24. #// 默认为false,跨域连接时需要置true
  25. export CASSANDRALOOKUP=true
  26. fi
  27. if [[ "$NATSPATH" = "" ]]; then
  28. export NATSPATH=nats://user:N5JbKeT1C3uOUh317OVXjg==@47.92.151.165:4222
  29. fi
  30. testunit=TestAll
  31. if [[ "$1" != "" ]]; then
  32. testunit="$1"
  33. fi
  34. export CASSANDRAKEYSPACE=
  35. if [[ "$2" != "" ]]; then
  36. export CASSANDRAKEYSPACE="$2"
  37. fi
  38. export shadow=1
  39. if [[ "$3" != "" ]]; then
  40. export shadow="$3"
  41. fi
  42. export Name="test"
  43. if [[ "$4" != "" ]]; then
  44. export Name="$4"
  45. fi
  46. if [[ "$DC" != "" ]]; then
  47. export DC="${Name}dc${shadow}"
  48. fi
  49. export LOG_LEVEL=WARN
  50. if [[ "$5" != "" ]]; then
  51. export LOG_LEVEL="$5"
  52. fi
  53. if [[ ${CASSANDRAKEYSPACE} == "" ]]; then
  54. echo "usage: "$0" <测试点,空表示所有> <Keyspace,必须> <集群节点数,默认 1> <节点名,默认test> <日志级别,默认 WARN>"
  55. exit 1
  56. fi
  57. if [[ "${TESTLOOPCOUNT}" == "" ]]; then
  58. export TESTLOOPCOUNT=1
  59. fi
  60. testrun() {
  61. starttime=`date +%s`
  62. loopcount=0
  63. while [[ $loopcount -lt ${TESTLOOPCOUNT} && $ret -eq 0 ]]; do
  64. loopcount=`expr $loopcount + 1`
  65. echo "测试次数: "${loopcount}" TESTLOOPCOUNT=${TESTLOOPCOUNT}"
  66. echo "测试时间: "`date "+%Y-%m-%d %H:%M:%S"`
  67. echo "测试点: "${testunit}
  68. echo "Keyspace: "${CASSANDRAKEYSPACE}
  69. echo "节点名: "${Name}
  70. echo "DC: "${DC}
  71. echo "集群节点数: "${shadow}
  72. echo "日志级别: "${LOG_LEVEL}
  73. echo "ETCDPATH: "$ETCDPATH
  74. echo "ETCDUSER: "$ETCDUSER
  75. echo "ETCDPASS: "$ETCDPASS
  76. echo "CASSANDRAPATH: "$CASSANDRAPATH
  77. echo "CASSANDRALOOKUP: "$CASSANDRALOOKUP
  78. echo "NATSPATH: "$NATSPATH
  79. ./odbtest -test.timeout 36000s -test.v -test.count=1 -test.run ^${testunit}$ test.shadow=${shadow} log.consolelevel=${LOG_LEVEL} keyspace=${CASSANDRAKEYSPACE} 2>&1
  80. ret=$?
  81. done
  82. endtime=`date +%s`
  83. echo "used time:"$((endtime-starttime))"s"
  84. tailpid=`ps -ef | grep "tail -f test_${CASSANDRAKEYSPACE}.log" | grep -v grep | awk '{print $2}'`
  85. if [[ "$tailpid" != "" ]]; then
  86. kill -9 $tailpid
  87. fi
  88. }
  89. stoptest() {
  90. testpid=`ps -ef | grep './odbtest' | grep "${testunit}" | grep "keyspace=${CASSANDRAKEYSPACE}" | awk '{print $2}'`
  91. if [[ "$testpid" != "" ]]; then
  92. kill -9 $testpid
  93. fi
  94. tailpid=`ps -ef | grep "tail -f test_${CASSANDRAKEYSPACE}.log" | grep -v grep | awk '{print $2}'`
  95. if [[ "$tailpid" != "" ]]; then
  96. kill -9 $tailpid
  97. fi
  98. }
  99. stoptest
  100. sleep 1
  101. trap "stoptest" INT
  102. echo "" > test_${CASSANDRAKEYSPACE}.log
  103. tail -f test_${CASSANDRAKEYSPACE}.log &
  104. testrun > test_${CASSANDRAKEYSPACE}.log