如何使用
你只需要根据规定的文件格式组织SQL命令和预期结果,通过php AutoSQL.php command.sql expect.result就可以自动化执行SQL命令,并与预期结果校验。
命令格式
通过php AutoSQL.php -h 可以获知AutoSQL工具可以支持的命令列表,如下:
php AutoSQL.php [command]
command:
-h print this usage
query_file expect_file
query_file store sql command, file pattern: case_name##sql command##
expect_file store expected result of query, file pattern: case_name##query fail or not##[NOCHECK##]effect rows[##ORDER(result order)]##false(insert,update,delete,replace) or result num(select)##row1##row2##…##
-r [-d pathname]: run cases in the path, default is current directory.
-c [-d logpath]: check run result from log files, default is log directory in current directory
如上所述,具体说明如下:
1. 执行单个文件:php AutoSQL.php query_file expect_file,文件格式见下文
2. 执行某个文件夹下的所有command文件:php AutoSQL.php -r -d pathname,支持绝对路径和相对路径,默认为当前路径
3. 批量查看case是否执行成功:php AutoSQL.php -c -d logpath,指定logs目录,自动化工具会列出所有fail的test suite和case,并展示在前台,默认为当前路径下的log目录
文件格式
query_file
query_file的格式如下:
case_name##sql command##
各个参数说明如下:
case_name: case名
sql command:sql命令,sql command的命令格式与mysql官方规定的一致。
例子:
case0##delete from singleC;##
case1##insert singleC (cID) values (30000), (30001);##
case2##select * from singleC;##
首先case0清空singleC表,然后case1插入两条记录,然后case2查询表singleC,确认记录是否插入成功
expect_file
expect_file的格式如下:
case_name##query fail or not##[NOCHECK##]effect rows[##ORDER(result order)]##false(insert, update,delete,replace) or result num(select)##row1##row2##…##
各个参数说明如下:
case_name:case名,与query_file中的case_name一一对应
query fail or not:命令预期执行失败与否
NOCHECK:该选项指明只需判断query是否正常,不判断结果
effect rows:insert、delete、update、replace操作时受影响的行数,select操作时effect rows为-1
ORDER(result order):该选项只适合于select操作,配置为ORDER时,select结果要求与预期的结果完全一致,包括顺序。不指定ORDER时,select结果与预期结果内容一致即可,顺序不考虑。
false(insert,update,delete,replace) or result num(select):select操作时为返回的结果行数,insert、update、delete、replace时为false
row1##row2##…##:每行的预期内容,一行中每个字段以逗号(,)分隔。
例子:
case0##true##NOCHECK##
case1##true##2##false##
case2##true##-1##2##30000,,,vincent,100##30001,,,vincent,100##
case0带NOCHECK,仅判断query是否成功,case1插入两条记录的作用是effected rows为2,case2查询出2两条记录,为case1插入的记录
帮助
mail:qablog@baidu.com