步骤与模块的定义

在测试用例自动化脚本中,程序的行为以步骤为单位,一步一步执行,因此在FWScript中专门设立步骤的概念。
在编写测试用例的时候,往往有一些小的测试步骤需要多次重复,因此需要针对这些小的测试步骤形成一个独立的模块,每次重复的时候只需调用这些独立的模块,FWScript也为此专门设立了模块的概念。
在调用模块的时候,往往需要有些不同的设置,这些设置可以放在调用之前进行,然而,有时大部分的调用使用的是缺省的设置,因此在模块定义的地方,特别设定了缺省设置部分,这样若使用缺省的设置,则在调用的时候告诉FWScript执行的时候直接使用缺省的设置,如果不是缺省的设置,则在调用前先设置好,然后告诉FWScript在执行调用的时候跳过缺省的设置。

步骤定义

代码描述
[n]表示进入了测试步骤第n步,后面跟随的脚本都属于第n步的代码,知道碰到下一个[m];当执行到这一步时,如果在测试用例的说明文件中要求显示,则显示这一步的相关信息。(如果BizAT使用的是DASHBOARD模式,则可以同时在SUT与Server端显示)
/d:xxxxxx简称为"文档代码",d为一个数字,代表伪代码类型,xxxxx为任意字符串,系统将按照设置显示这些字符串,可以同时在SUT与Server端显示。注意这个代码是企顺公司的工具BizTC通过智能识别测试用例文档自动生成的代码
|] stepreturn退出本步执行,执行到这个代码时,将直接跳到下一个步骤接着执行
[2] @ filename filename 指定一个文件名,后面的内容直接从这个文件中获取
stepreturn 可用 modulereturn、stepbreak、modulebreak、breakstep 代替

实例

[1]
/1:测试第一步
show 显示消息,等待确认

[2]
/1:测试第二步
notify 显示消息,等待2秒后自动关闭
|]


[3]
notify5 显示消息,等待5秒后自动关闭

内部模块(步骤内模块)

内部模块指的是一个独立的代码块,就像一个函数体一样,这个独立的代码块必须位于某个步骤内部,不得跨多个步骤。 一个模块代表着需要再次执行的测试某个整体特性的命令行集合,这些命令行分为两个部分:为执行这个模块特性要进行的准备工作,以及这个模块的执行体。

[moduleName] 	:模块的定义,后面定义的一段程序体可以作为一个模块进行调用
[ 		:模块执行的开始,左方括号跟一个空格或换行符,空格之后的所有字符都会被忽略
[/xxxxx 	:模块的注释,对当前模块定义的注释
|] 		:退出模块的执行,执行到这条语句时,将直接退出本模块的执行
] 		:模块执行的结束,右方括号跟一个空格或换行符,空格之后的所有字符都会被忽略

针对模块特性要执行的准备工作

在模块定义开始与左方括号之间的代码,为这个模块的准备代码或缺省设置代码。
在代码执行过程中,如果在按照顺序往下执行过程中,碰到了一个模块的定义,则直接执行后面的模块执行的准备代码以及在 [ 与 ] 之间的执行体。
但是,如果是从某个地方调用这个模块,可以先自己准备好设置的代码,然后以特殊的方式调用这个模块,让模块在执行时不执行缺省准备的代码,只运行模块的执行体。
在调用的时候,也可以直接利用缺省设置,这样无需自己准备设置的代码,只是告诉模块在执行的时候,先执行缺省代码设置部分(或者叫准备代码),再执行‘[’与‘]’之间的模块执行体。
(这种设计的出发点在于,有很多初始的准备动作很复杂,无法用参数去表达)

注意:内部重复模块的所有代码必须位于一个步骤的内部。

实例


[module_internal]
// 此处执行的是准备代码,即缺省的设置
@:这是一个内部模块
@ 请准备好环境

[
// 在 [ 之后的代码为模块的执行体
	[/这是模块的注释语句
	@="执行内部模块的语句"
	show
]

外部模块(步骤外模块)

外部模块是步骤重复的一个补充形式,但它借用了模块中的准备代码的概念,可以允许在调用的时候指定是执行缺省的设置还是跳过缺省的设置(意思是指自己设置好后再调用)
外部模块的执行体为“第几步到第几步”,在步骤定义之前的代码为缺省设置的代码,顺序执行的时候,先执行缺省设置的代码,然后一步一步往下执行,注意设置的代码不得有报测试错误的语句。
注意:针对外部模块的重复其实就是步骤的重复,只是执行的起始代码不一样,在BizRunner的实现中,跟步骤重复的实现使用了同一套代码。

[*moduleName begin-end]  在[之后跟一个星号*,表示的就是外部模块的定义。

表示将第begin步到end步作为一个可重复执行的整体,紧随在后面的代码为这个外部模块的“模块执行的准备工作”(也就是缺省状况下的设置),直到下一个步骤的开始;而外部模块的执行体使用步骤进行表示,从begin步骤到end步骤。外部重复模块用于调用者进行重复执行的时候,跟内部模块一样,可以选择使用缺省的设置,也可以选择使用准备的数据设置。

实例

[*module_external 2-3]
@:这是一个外部模块
[2]
/d:测试第2步
[3]
/d:测试第3步
<< 测试自动化脚本调用重复执行 >>