3)单元测试2:对于单个功能脚本sh -x XXX.sh 跟踪脚本执行情况
4)集成测试1:对于所有脚本使用sh -x XXX.sh 跟踪脚本执行情况
5)集成测试2:模拟脚本生产环境,周期性连续多次执行全部功能脚本,监控脚本性能以及日志、临时文件等状态。
6、脚本测试中遇到的问题和解决方案
1)判断一个数组是否为空:
【脚本内容】:
if [ -z ${pg_readyDatalist[@]} ]
then
…………
fi
【问题】:不可如此判断,超过一个元素时,语法错误
【sh -x 执行】:
+ ‘[' -z model gtrindex ']‘
retrbs_restart.sh: line 366: [: model: binary operator expected
【原因】:
-z 只能判断一个变量是否为空
判断一个list是否为空,应该:
【解决】判断list元素个数是否为0
例如: if [ ${#ps_retrbs[@]} -eq 0 ]
2)If语句判断
【脚本内容】:
if [ -f ./$i]
then
echo “test”
fi
【问题】: .$i] 的“]”前面没有空格,造成语法错误
【sh -x 执行】:./test.sh: line 3: [: missing `]
【原因】: If语句的条件判断“[ ]”,“[”之后和“]”之前必须有空格
【解决】加上空格
3)字符串判断
【脚本内容】:
if [ "$1" = "continue" ] then
echo “succ”
fi
【问题】:$1为空,打印“succ”
【sh -x 执行】:succ
【原因】: $1为空会造成语法错误,返回0,继续执行if代码块中的逻辑,导致判断错误
【解决】修改成 if [ "a$1" = "acontinue" ]