Author:陈培雷; Mail:AncenChen@gmail.com
毕业设计终于做完了,感觉还不错。对WR的使用也更加熟练了,现在才明白很多问题只要集中精力去做也不会很难。由于作者水平有限,所有还有很多错误之处,如果有那请多多指教,感激不尽!在网上能找到WR的资料无非就这结果资料(WinRunner 7.6 Tutorial、WinRunner(CHI)、WinRunner使用说明书、使用WinRunner的几点建议、WinRunner使用说明第二版、WinRunner_脚本标准格式),但是对于更详尽的资料就更少了,所以下定决心学了WR之后一定要写个东西让新手学习起来更简单。我会持续修改,直到自己觉得还看的过去为止。
还有就是建议初学者最好看看Oldsidney学习笔记,也就是WinRunner 7.6 Tutorial,看了之后收益匪浅。
WR是做功能测试,而很多人都说功能测试我照样做!亲身体验之后才觉得功能测试自动化也是必不可少,比如说严整Windows_XP计算器9*9乘法口诀表手否正确,如果人工去按1*1=1,1*2=2 …… 9*9=81,你认为手工去执行这个 过程你用多少时间能执行完呢?30分钟?1小时?如果比这更大,数据驱动比这更多呢?时间是无穷近吧!但是使用WR做这个功能测试,首先,录制个脚本,建立数据驱动,修改脚本,回放脚本,验证结果。熟手做这个不会超过30分钟吧!而且TestWare(测试件)你也可以复用。那以下就说下学习的过程吧!
如何说起呢?首先说下WR执行测试过程:1.创建GUI map2.创建测试3.调试测试4.执行测试5.查看测试结果6.报告发现错误。
那就先说下GUI map,录制map 也有2种模式GUI map file per test和Global GUI map file。Global GUI map file是默认录制模式,而且可以多个脚本同时利用GUI map file per test模式的GUI map。GUI map file per test则不能让多个脚本共享。我的建议是从开始用WR的时候就要习惯使用Global GUI map file,而且GUI map最好要合并。
现在TSL的录制吧!TSL脚本的录制也有两种模式Context Sensitive和Analog。WR默认是Context Sensitive模式。两种模式主要不同就是Analog 会录制鼠标轨迹,如果你是测试绘图软件之类的那就的选择Analog,其他的就选择Context Sensitive。建议脚本要分开,如果有错误,便于发现脚本错误;反之如果脚本合并之后错误很不好找,而且很费时间,对于这点感触颇多呀。
对于同步点,和检查点、数据驱动的建立 参照Oldsidney学习笔记,上面很详细,按照上面写的做一次之后记忆应该很深刻了。
脚本的三种运行模式: update(用于更新),verify(正式运行,执行测试),debug(调试模式)
这些WR基本的功能点虽然很简单,但尽量多做,使自己多熟悉,方便以后的使用。
TSL脚本的使用,TSL是一个使用起来很简单的脚本,语法类似C,对于TSL的使用我也没很多的去研究,只是在遇到问题的时候查找tsl online help。
这里附加一个TSL例子_计算器乘法功能测试(乘法表)//过程是论文指导老师王老师编写的
过程如下:
1.
录制两个数相乘的基本脚本;
2.
使用数据驱动wizard助手建立数据驱动的数据录入,数据表中只有三列数据,第一列为乘数,第二列为被乘数,第三列为前两列相乘的积;
3.
用数据表中的数替换乘数和被乘数进行累乘;
4.
取结果框中的值,与数据表中的结果相比,看是否正确;
脚本如下
table =
"Cal_Pra8..xls"
; //数据驱动里面是乘法口诀表里输入及预期输出
rc =
ddt_open
(table, DDT_MODE_READ);
if
(rc!= E_OK && rc != E_FILE_OPEN)
pause
(
"Cannot open table."
);
ddt_get_row_count
(table,table_RowCount);
for
(table_Row =
1
; table_Row <= table_RowCount; table_Row ++)
{
ddt_set_row
(table,table_Row);
# Shell_TrayWnd
set_window
(
"Shell_TrayWnd"
,
1
);
toolbar_button_press
(
"ToolbarWindow32_1"
,
"‹¡ {— Vh "
);
# Button Number 4;
# ‹¡ {— Vh
set_window
(
"‹¡ {— Vh "
,
2
);
button_press
(
ddt_val
(table,
"x"
));
button_press
(
"*"
);
button_press
(
ddt_val
(table,
"x"
));
button_press
(
"="
);
edit_get_text
(
"Edit"
,res);
if
(res==z)
tl_step
(
"res = "
&res,
1
,
"right"
);
else
tl_step
(
"res= "
&res,
0
,
"wrong"
);
button_press
(
"C"
);
}
ddt_close
(table);
*脚本仅供参考*
附1 从http://www.51testing.com/找来的TSL函数详解
对于WR使用当初想法很多,现在却忘记了很多。等想起的时候在慢慢详尽,今天还有事情,先走了。
未完待详……
现在看来我当初写这个东西的目标是没达到的,对此深表抱歉,另外也没时间去修改了,如果有不明白的地方也可以问我。