TSL脚本编写规范
导言
我们在Mercury Interactive Systems(WinRunner)中创建的脚本是由TSL(Test scrīpt Language)写成的。TSL是一种强化了的类C的编程语言。它是专门设计来用于测试的。在Meercury Interactive的集成测试环境的核心中,TSL是比较高层次的,而且也比较容易使用的。它既有传统编程语言的灵活与强大,也结合了许多Mercury Interactive专门开发来用于测试的功能。
为了使自己和他人能够比较容易的阅读和理解源程序,本文对今后TSL的编写制订了一个规范。
一、排版
1.1 程序块采用缩进风格编写
说明:缩进的空格数为4个,不能使用Tab键。不同的编辑环境导致不同的结果。
错误的示范:
for(counter = count - 24; counter < count - 1; counter++)
{
list_get_item("ListBox",counter,item);
str = str & item & "\r\n";
}
正确的示范一:
for(counter = count - 24; counter < count - 1; counter++)
{
list_get_item("ListBox",counter,item);
str = str & item & "\r\n";
}
正确的示范二:
for(counter = count - 24; counter < count - 1; counter++){
list_get_item("ListBox",counter,item);
str = str & item & "\r\n";
1.2相对独立的程序块之间、变量说明之后必须加空行
说明:便于清晰的显示程序的结构。
错误的示范:
row1=0;
row2=0;
##open two tables
rc = ddt_open(tableFirst, DDT_MODE_READ);
if (rc!= E_OK && rc != E_FILE_OPEN)
pause("Cannot open table");
ddt_get_row_count(tableFirst,RowCount1);
正确的示范:
row1=0;
row2=0;
##open two tables
rc = ddt_open(tableFirst, DDT_MODE_READ);
if (rc!= E_OK && rc != E_FILE_OPEN)
pause("Cannot open table");
ddt_get_row_count(tableFirst,RowCount1);
1.3较长的语句要分成多行书写
说明:对大于80个字符的语句,要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读
1.4循环、判断中有较长的语句需要划分成多行
说明:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
1.5若函数中的参数较长,则要进行适当的划分
说明:便于清晰的阅读函数
错误的示范:
tl_step("2:对比两张表",FAIL,"表"&tableFirst&"的第"&col1&"列第"&table_Row1&"行的值为:"&val1&");
正确的示范:
tl_step("2:对比两张表",FAIL,
"表"&tableFirst&"的第"&col1&"列第"&table_Row1&"行的值为:"&val1&");
1.6不允许把多个短语句写在一行中
说明:即一行只写一条语句
错误的示范:
auto a;auto b;
正确的示范:
auto a;
auto b;
1.7 条件、循环语句需要对语句块进行控制
说明:if 、for 、do 、while 、case 、switch 、default 等语句自占一行,且if 、for 、do 、while 等语句的执行语句部分无论多少都要加括号{}
错误的示范:
if (rc!= E_OK && rc != E_FILE_OPEN) pause("Cannot open table");
正确的示范:
if (rc!= E_OK && rc != E_FILE_OPEN){
pause("Cannot open table");
}
1.8操作符前后需要加空格
说明:在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格。采用这种松散方式编写代码的目的是使代码更加清晰。由于留空格所产生的清晰性是相对的,所以,在已经非常清晰的语句中没有必要再留空格,如果语句已足够清晰则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格。在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部不加空格。给操作符留空格时不要连续留两个以上空格。
正确的示范一:逗号、分号在后面加空格
static a, b, c;
正确的示范二:比较操作符、赋值操作符、逻辑操作符等双目操作符的前后加空格
if (current_time >= MAX_TIME_VALUE && current_date<=DATE){
a = b + c;
}
正确的示范三:单目操作符的前后不加空格
if (current_time!=MAX_TIME_VALUE){
a++;
}
1.9 if、for、while、switch等与后面的括号间应加空格
说明:使关键字更加突出、明显。
错误的示范:
if(a > 0){
b=1;
}
正确的示范:
if (a > 0){
b=1;
}
二、注释
2.1有效注释量必须适中
说明:一般情况下,源程序的有效注释量必须在20%以上。注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。
2.2脚本程序的头部注释
说明:脚本程序头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等
正确的示范:
###########################################################
# Copyright (C), 1988-1999, HSIT. Co., Ltd.