WinRunner测试设计(5)
用TSL编程
1、用编程来增强你的测试脚本
WinRunner测试脚本由一些TSL语句代码组成。(TSL,Mercury Interactive's Test Script Language)
在TSL中,每一语句有一个分号结尾,一般一个语句占一行,也有占多行的情况,如:
if(button_check_state("Underline",OFF)==E_OK)
report_msg("Underline check box is unavailable.");
TSL有点像C语言格式,它易于使用,且无需编译。你只需录制或键入测试脚本,就可以立即执行测试。
TSL包括4种类型的函数:
1)Context Sensitive functions(上下文敏感函数)用于执行GUI对象的特定任务,如:点击按钮或从列表中选择某项。
2)Analog functions(模拟函数)描述鼠标点击,键盘输入,以及鼠标确切的坐标。
3)Standard functions(标准函数)通常用于编程任务,如发送消息到报告中或执行一个计算。
4)Customization functions(定制函数)允许你定制WinRunner来满足你的测试环境。
WinRunner包含了一个可视化编程工具,它可以辅助你快速和简单地增加TSL函数到测试脚本中。
2、使用描述语言
当你增加了一个对象到GUI Map中,WinRunner会给它赋予一个逻辑名。一旦这个对象存在于GUI Map中,你就可以增加测试语句并对对象执行功能。要增加这些语句,你通常键入对象的逻辑名来描述对象。
例如:在下面的语句中,“航班预订”(Flight Reservation)是一个窗口的逻辑名,File和Open Order是菜单的逻辑名。
set_window("Flight Reservation",5);
menu_select_item("File;Open Order...");
在GUI Map中,每个对象都有一个独特的逻辑名来标识。这样,WinRunner就可以在GUI Map中用逻辑名查找对象,并用对象的属性值进行操作。
你还可以不通过GUI Map来添加对象的脚本语句,要这么做的话,你需要更多的描述信息以致于能够让WinRunner在测试运行期间能识别对象。
例如:在航班预订应用程序中,假定你要录制一个订购命令,那么,在你创建测试后,你想增加一个对单选按钮的操作,该单选按钮是用于订购航班用的,此时,与其你通过GUI Map增加一个对象来录制,不如你直接增加一个对你要选择的单选按钮的脚本语句,并设置该单选按钮的状态为on。
通过定义对象类来描述对象,MSW_class类,并增加许多附加的属性:值对。
语法如下:
funcation_name("{class:class_value,MSW_class:MSW_value,property3:value,...,propertyX:value}",other_function_parameters);
-----------------------
说明如下:
function_name:你要执行对象的函数名;
property:value:对象的属性和它的值。
other_function_parameters:当为对象使用逻辑名时,你键入所需的或可选的函数参数到语句中。
-----------------------
实例:对刚才订购航班的操作
set_window("Flight Reservation",3);
button_set("{class:radio_button,MSW_class:Button,label:Business}",ON);
-----------------------
如果你不能确定待识别对象的属性和值时,你可以使用GUI Spy来浏览当前对象的属性和值。
3、增加注释(Comments)和空白(White Space)
为了让测试脚本更易读和理解,你可以对脚本增加注释和空白。
3.1、使用注释
注释通常为一行或一行的部分,它以 # 开头。在运行测试时,TSL解释器不处理注释。
例如:
-----------------------
#Open the Open Order window in Flight Reservation application
set_window("Flight Reservation","10);
menu_select_item("File;Open Order...");
#Select the reservation for James Brown
set_window("Open Order_1");
button_set("Customer Name",ON);
edit_set("Value","James Brown");#Type James Brown
button_press("OK");
-----------------------
3.2、插入空白
在测试脚本中,空白指的是spaces按键输入,tabs按键输入,以及空行。
TSL解释器对空白不敏感。
使用空白可以让测试脚本的逻辑更清晰。