利用linux shell script来测试linux c程序------脚本自动化测试用例代替手动测试用例
我们来看一个简单的C程序:
- #include<stdio.h>
- #include<string.h>
- intisGoodString(constchar*p)
- {
- if(strstr(p,"Good"))
- {
- return0;
- }
- return-1;
- }
- intmain(intargc,char*argv[])
- {
- if(2!=argc)
- {
- printf("paraerror\n");
- return-1;
- }
- if(0==isGoodString(argv[1]))
- {
- printf("yes\n");
- return0;
- }
- printf("no\n");
- return1;
- }
- [taoge@localhostlearn_c]$gcctest.c
- [taoge@localhostlearn_c]$./a.out
- paraerror
- [taoge@localhostlearn_c]$./a.out12
- no
- [taoge@localhostlearn_c]$./a.outgood
- no
- [taoge@localhostlearn_c]$./a.outGood123
- yes
- [taoge@localhostlearn_c]$./a.outGood
- yes
- [taoge@localhostlearn_c]$
我们可以看到, 这些测试用例是手动的。 手动测试用例的缺点是:
1. 手动测试用例不便于保存(假设一个月后, 要再测一遍, 还得再敲一次。 当然, 你可能说, 你会保存这些文本, 但那样也需要复制命令到shell中重新运行)
2. 手动测试用例很麻烦, 稍微不注意就会出错,没有一气呵成的感觉, 不利于自动化测试。
对了, 前面不是一直在说脚本脚本么, 现在用脚本来搞一下自动化测试用例:
- #!/bin/sh
- $1
- echo""
- x=good
- echo"$x"
- $1"$x"
- x=goodbye
- echo"$x"
- $1"$x"
- x=Good
- echo"$x"
- $1"$x"
- x=Goodbye
- echo"$x"
- $1"$x"
- x="Goodbye"
- echo"$x"
- $1"$x"
结果为:
- [taoge@localhostlearn_c]$ls
- a.outtest.ctest.sh
- [taoge@localhostlearn_c]$./test.sh./a.out
- paraerror
- good
- no
- goodbye
- no
- Good
- yes
- Goodbye
- yes
- Goodbye
- yes
- [taoge@localhostlearn_c]$