FWScript 条件判断
条件判断结构俗称“if语句”,使用一个条件表达式,然后跟着条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可以不指定的),if语句可以嵌套使用,也就是说if语句后面可以再跟if语句。
- if 语句
- if…else 语句
- if…elseif…else 语句
- switch…case 语句
if 语句
一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。
if 布尔表达式
(如果布尔表达式为真将执行的语句)
endif
实例
$a=2
if $a>0
show 变量大于0
endif
if…else 语句
一个 if 语句后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。
if 布尔表达式
/* 如果布尔表达式为真将执行的语句 */
else
/* 如果布尔表达式为假将执行的语句 */
endif
实例
$a=0
if $a>0
show 变量大于0
else
show 变量小于等于0
endif
if…elseif…else 语句
一个 if 语句后可跟一个可选的 elseif 语句,elseif 语句由一个布尔表达式2后跟一个或多个语句组成,后面可跟一个可选的 else 语句,else 语句在布尔表达式2为假时执行。
if 布尔表达式1
/* 如果布尔表达式1为真将执行的语句 */
elseif 布尔表达式2
/* 如果布尔表达式2为真将执行的语句 */
else
/* 如果布尔表达式2为假将执行的语句 */
endif
实例
$a=-2
if $a>0
show 变量大于0
elseif $a==0
show 变量等于0
else
show 变量小于0
endif
switch…case 语句
FwScript中的switch语句专门为了编写自动化测试脚本的方便而设计,switch 语句中的单个case允许设置成一个变量值,也可以设置成一个区间。
switch 表达式
case 简单表达式
/* 如果表达式计算结果与简单表达式匹配将执行的语句 */
break
case 区间值
/* 如果表达式计算结果在区间值范围内将执行的语句 */
break
.
.
default
/* 如果表达式计算结果与case中的表达式都不匹配将执行的语句 */
endswitch
简单表达式可以为一个整数,一个浮点数,一个字符串,或者一个数字变量,数字变量的值可以为数据源。如果是个数据源,则只要前面switch定义的值在数据源第一列中,则为匹配;如果不是数据源,则完全相等则为匹配。
区间值为使用破折号(‘-’)隔开的两个简单表达式,表示如果switch中的表达式的值落在这个区间内,则执行后面的语句。
注意:switch的定义类似于C语言,所有的case是顺序执行的,直至遇到了Break,不像C#在每个case的执行体后必须强制有Break。像大多数语言一样,case可以连着放在一起。为了便于测试用例的自动化脚本的编写,FWCripts在case语句中加入了区间的概念,也加入了数据集合的概念(使用数据源变量)。
实例
$a=4
$b=11
$datasrc=^(10,20,30)
switch $a
case 1
show 变量等于整数1
break
case 1.23
show 变量等于浮点数1.23
break
case $b
show 变量等于数字变量的值
break
case $datasrc
show 变量存在于数据源的第一列
break
case 3-5
show 变量介于3到5之间
break
case "hello"
show 变量等于字符串hello
break
default
show 变量不等于以上任何情况
endswitch
注意,FWScript中的switch语言完全针对每个case语句按照if--else的方式执行,因此可以使用变量及区间值。 大多数语言对switch语句有很严格的限制,如不允许使用区间,有的要求必须有Break(如C#),原因是可以在进行代码优化的时候变换成效率非常高的执行代码,也就是说在编译过程中具有很大的代码优化余地。 FWScript则没有这些限制,但代价是没有代码优化的余地,最终执行的效率较低(好在测试脚本的设计执行效率往往是次要的😊)。
| << FWScript 数据源 | FWScript 循环 >> |