2024年4月22日发(作者:)
WinRunner学习
1. Lesson_1介绍
略,请参考 《WR_中文介绍》pdf格式文档
有关介绍[参]:Lesson1_
2. Lesson_2Setting up WinRunner
描述 WinRunner 如何在一个应用程序中识别图形用户界面(GUI)属性
演示如何使用(图形用户界面间谍)GUI SPY 查看对象属性
描述二个(图形用户界面)GUI地图模式
解释该如何使用 RapidTest Script Wizard 去获得GUI属性的描述和生成测试
如何运行一个测试
帮助你分析测试结果
1、 什么是GUI对象?(窗口window、按钮button、菜单menu、列表list)
2、 如何应用WinRunner查看GUI对象属性和值?(TOOLSGUI SPY….)具体例子
[参]lesson2_:
3、 GUI Map模式?(有两种A、The GUI Map File per Test Mode;B、The Global GUI Map
File Mode)
The GUI Map File per Test Mode The Global GUI Map File Mode
创建一个测试,便生成一个GUI Map文件 创建一个GUI Map文件供一组测试使用
初手(刚刚开始) 熟手
注意:切换模式时,要退出程序重新运行WinRunner,才能使改变生效
在The GUI Map File per Test Mode模式下,关闭WinRunner前会提示你保存文件;在
The Global GUI Map File Mode模式下,系统会自动保存文件。
具体例子[参]:Lesson2_2:
4、 RapidTest Script Wizard功能(具体例子[参]:Lesson2_3)可以快速、容易地开始测试
过程(录制GUI Map文件)??。只适用于The Global GUI Map File Mode模式下。
注意:1、不能在The GUI Map File per Test Mode模式下使用此功能。
2、不能在加载其他插件(如:WEB TEST,Java Add_in)的情况下使用此功能。
3. Lesson_3记录测试
描述上下文敏感(Context Sensitive)和类似(Analog)记录模式
如何记录一个测试脚本
帮助你读测试脚本
如何运行被记录的测试并且分析结果
第 1 页 共 43 页
1、有两种不同的记录模式:A、Context Sensitive;B、Analog
(录制时产生的脚本记录是不同的) 各有特点:
Context Sensitive
应用程序只考虑GUI对象(菜单、按钮)
Analog
应用程序考虑位图(BMP图画)精确定位,
如:绘图线条走向
不需要精确的鼠标运动轨迹
计划在应用程序的各个版本中应用(回归)
Button_Press(“OK”);//脚本
需要精确的鼠标运动轨迹
Move_lactor_Track(1);
Mtype(“
Mtype(“
提示:F2是两种记录模式的切换快捷键
具体例子[参]:Lesson3_1:
2、TSL(测试脚本语言)解释。(具体例子[参]Lesson3_2)
3、录制不同GUI Map模式下的测试时,应该注意哪些?(注意保存GUI Map文档)
5、 运行测试脚本。(3种运行模式:1、Verify;2、Debug;3、Update)具体例子[参]Lesson3_3.
运行一个测试脚本去检查应用程序的行为并保存测试结果时,采用Verify模式;
运行测试脚本检查是否运行平稳并且没有语法上的错误,可采用Debug模式,详
细信息参考本文档Lesson7部分。
当你想为GUI检查点或位图(Bitmap)检查点创建一个新的预期结果,可采用Updata
模式,详细信息参考本文档Lesson5和Lesson6部分。
6、 分析测试结果(图解框)具体例子[参]Lesson3_4
7、 录制技巧:
(A、
(B、
(C、
(D、
开始录制前,关闭不是测试对象的应用程序;
测试运行有始有终,即有打开,便要有关闭。(保证同名测试的重复运行);
当运行在Analog模式下,尽量避免控制鼠标,用箭头运行代替;
在录制期间,切换Context Sensitive模式到Analog模式时,一定要将当前
的窗口移到桌面上新的位置,确保在Analog模式下运行测试时,鼠标能够
精确定位。
(E、 在录制时,如果鼠标击中的不是标准GUI对象,测试脚本中将加入一个声
明:OBJ_MOUSE_CLICK。例如:你单击一个图像,脚本中将作如下描述:
OBJ_MOUSE_CLICK(GS_DRAWING,8,53,LEFT)。有关其他高级操作请
参考用户手册“Configuring The GUI Map”部分。
(F、 如果你工作在The Global GUI Map File 模式下,然后你单击一个先前没有
learns过的对象,winRunner将 leans此描述,并加入到临时的GUI map文
第 2 页 共 43 页
件。(H也作此具体陈述)
(G、
(H、
切换Context Sensitive模式到Analog模式,请按快捷键F2。
如果你工作在The Global GUI Map File 模式下,在关闭WinRunner之前,
总是检查是否新的对象加入到临时的GUI map文件中,如果已经加入,请
将其保存为适当的GUI map文件,你供你将来测试使用(在lesson3_2中
有仔细描述)。
4. Lesson_4同步测试
1、 什么时候你需要一个同步测试?(A、从数据库中重新获得信息(需要等待);B、等
待一个窗口的弹出;C、等待程序进度条达到100%;D、等待一个状态信息框的出
现)
WinRunner通过一个设置好的间隔时间来为等待应用程序响应输入。默认的间隔时间上
限为10秒。如果应用程序在运行测试过程中响应缓慢,那么WinRunner的默认间隔时
间将不够,将导致测试运行意外失败。
如果你在测试过程中发现一个同步问题,那么有两种方法来解决。
2、 怎样解决同步问题?(有两种办法:A、选项中设置(增大默认的间隔时间:毫秒),
怎样设置;B、在测试脚本中插入“同步点”,如何操作) [参]具体例
子Lesson4_1:
3、 你如何使测试同步?( 具体例子[参]Lesson4_(先)和Lesson4_(后))
一个为失败的例子;一个为成功的例子。
4、 你如何做一个同步测试并且核实结果?[参]Lesson4_ 。
(将Lesson4_2的例子运行,得出结果,在测试结果窗口,你可以看到主要事件中有
OBJ_wait_bitmap的执行状态是绿色的,Pass)
5. Lesson_5检查GUI对象
1、 解释如何检查GUI对象的行为?(设置GUI检查点,检查1、字段内容值;2、单
选按钮是打开还是关闭;3、按钮是否处于激活状态)
我们平常运行一个应用程序,是通过GUI对象的行为来测定功能是否(与需求)一致。
检查GUI对象可以通过创建GUI checkpopints来实现,一个GUI Checkpoints可以检查
一个GUI对象属性的行为。(字段、CheckBox、是否激活状态)
2、 如何去建立一个检查GUI对象行为的测试?具体例子[参]Lesson5_1
3、 如何去运行一个测试在一个程序的不同版本下,并且分析结果?具体例子[参]
Lesson5_2,并分析结果。
4、 插入GUI Checkpoint技巧:
1)、你可以在你的录制脚本中插入单独的GUI检查点去检查一个窗口的几个属性或
所有的属性。选择Create>GUI Checkpoint>For Multiple Objects。当Create GUI
Checkpoint对话框打开,你可以增加属性检查点并为这些你想要执行的属性检查点
第 3 页 共 43 页
作描述。操作完毕,脚本中将产生一个Win_Check_Gui的声明,它包括你所选中的
属性的检查列表。
2)、为了让测试通宵运行。你可以设置让WinRunner检查到Checkpoint的不匹配项
时不弹出信息框。选择Settings>General Option,在General Option对话框,选中Run
页面,清除Breaken when verification fails的复选框。这将使测试在运行时不会中断。
3)、如果你想为GUI Checkpoint创建一个新的预期值,可以运行脚本在Update Mode。
WinRunner将用捕获到的新的GUI 数据值覆盖已经存在的预期值。
4)、捕捉对象属性时,单击为直接在脚本中插入Obj_GUI_Check语句;双击为显示
选中对象的属性,查看选择后再确定是否插入OBJ_GUI_Check语句。
6. Lesson_6检查位图
解释该如何在你的应用程序中检查位图图像
如何产生一个检查位图的测试
如何运行测试在应用程序的不同的版本中比较位图
帮助你分析结果
1、你怎样去检查位图(BitBmp)
如果你的应用程序包含位图,例如图画或图表,你可以使用Bitbmp Checkpoint来检测
这些区域。一个Bitbmp Checkpoint通过像素来捕获位图像素。去创建一个Bitbmp Checkpoint
检查点,你可以指定你想要检测的图的一部分,窗口,属性。例如:
第 4 页 共 43 页
WinRunner能捕获位图并将它保存为期望结果。如果它捕获一个对象,将在脚本中插
入Obj_check_bitmap声明;如果它捕获的是图的一部分或是窗口,脚本将插入
win_check_bitmap声明。
当你在一个新的版本中运行测试时,任何一点不匹配被检测到,那么在WinRunner的运行结
果窗口,你能看到一幅(与预期结果)不同的图。
2、在测试脚本中添加一个Bitmap checkpoint。具体例子[参]Lesson6_1
3、插入Bitbmp Checkpoint技巧:
1) 捕捉一个区域,可通过选择Create>Bitbmp point>for screen area功能来实
现。用户工具条上也有此按钮。(要看到菜单按钮,测试必须处于打开状态,
不管它是否停止)。使用十字焦点去捕捉WinRunner所要的位图区域。脚本中
将插入Win_Check_bitbmp语句。所带参数将包含有X、Y的坐标数据和图像宽与
高的信息。
2) 为了通宵运行测试,你可以让Winrunner在运行时不管它是否匹配都不弹出信
息框。选择Setting >General options.出现下图,将Breakn When
verification fails前面的复选框去掉。这将让你的运行不会产生中断。
3) 当运行一个包含Bitbmp的测试时,要确信屏幕上所出现的与创建脚本时所捕捉
的图像是同样的。如果屏幕设置不同,Winrunner将会报告一个Bitbmp不匹配。
4) 如果你想去建立一个新的期望值,你可以运行脚本在Update模式下。当一个新
第 5 页 共 43 页
的预期位图被捕捉,它将覆盖已经存在的预期位图。
4、运行脚本在不同的版本中检查位图。具体例子[参]Lesson6_2
7. Lesson_7用TSL(脚本语言)测试
如何使用可视化编程把功能增加到你的测试脚本中
如何增加决策逻辑在一个测试脚本中
帮助你调试一个测试脚本
让你运行测试脚本在应用程序的一个新的版本上且分析结果
当你录制一个测试的时候,在你每次点击GUI对象或从键盘录入时,WinRunner都将
产生TSL声明在你的测试脚本中(TSL:Test Script Language)。除了记录TSL功能,TSL
还包括许多能让你的测试脚本更加强大和具有弹性的内置功能。你可以使用WinRunner可
视化编程工具迅速地添加这些功能,使用功能产生器(Function Generator)。功能产生器的
所有功能在TSL在线帮助手册中均有说明。
功能产生器(Function Generator)使你能够通过两种途径去增加TSL功能。(P104)
1、你可以指向一个GUI对象,让WinRunner给你一个“建议”的功能。你可以把这个功能
插入到你的测试脚本中。
2、你可以从列表中选择一个功能。功能按类别和字母索引出现在列表中。
你可以通过增加逻辑(Logci)来提高测试脚本的可用性。只需一些简单的编程基础,如:
条件语句,循环语句,和一些算法操作,直接写到测试窗口中去。
具体例子[参]Lesson7_1
调试测试脚本,具体例子[参]Lesson7_2
利用编程基础提高了测试可用性后,你可能想去检查测试运行是否稳定,是否存在语法错
误或逻辑错误,WinRunner提供了调试工具,让这个过程变得快速且容易。你可以:
1. 使用步命令(Step Command)让你的测试一行一行执行;
2. 在测试脚本中定义中断点,可以让测试停止运行在一个指定的行或功能。
3. 管理变量值或公式使用Watch List。
当你调试一个测试脚本,你可以运行测试在“调试”模式。(运行一个测试在调式模式,在
标准工具栏上的运行模式列表中选中Debug模式)测试结果将保存在一个调试的目录下,
每次执行都覆盖上一次的调试执行结果。
在不同的版本上运行测试脚本,具体例子[参]Lesson7_3
8. Lesson_8建立数据驱动测试
如何去使用DataDriverWizard去创建一个数据驱动测试
解释该如何使用合格的表达式作为每一次反复测试并改变的GUI对象的名字
重复运行一个测试并分析结果
怎样创建数据驱动测试?
一旦你已经成功地调试并运行了测试,你可能就想看看相同的测试怎样用多组数据
来执行。为了实现它,把你的测试转换成一数据驱动测试并且创建一个相关数据表记录
第 6 页 共 43 页
其中包含你想测试的数据集。
把测试转换成数据驱动测试包括下列步骤:
添加打开和关闭数据表的声明到你的脚本中。
在你的测试中增加声明和函数,以致能从数据表中读取并循环运行每一组
数据。
在已记录的脚本中替换固定值并用参数设置检查点,即所谓的参数化测
试。
你可以用(DataDriveWizard)数据驱动导航把你的测试转换成数据驱动测试或手动
修改脚本。
当你运行数据驱动测试时,WinRunner为数据表中每组数据运行一次参数化的测试
部分(叫做循环),然后在单个测试结果窗口显示所有迭代的结果。
在Lesson7中你创建了一个打开一具体飞机票预定并读出票数,每张票的价格和一
张传真定单对话框总价格的测试,以便检查总价格是否正确。在这一课中为了检查你的
应用程序能否为不同数量和不同机票单价计算出正确的价格,你将创建一个在几张飞机
票定单中执行相同检查的测试.
[参]
数据驱动技巧:
你可以只对测试脚本的一部分设置参数化或只设置一个循环,并且一个数据驱动测试
可以包含超过一个的参数化循环。
在测试过程中,除了, 你可以打开和关闭多个数据表。这使你能够在一个
测试脚本中使用不同的数据表。
你可以参数化多个类型,包括:GUI Checkpoint(GUI检查点),Bitmap Checkpoint(位
图检查点),Bitmap Sysnchronization Point(位图同步点)和常量。
你能将数据表当做电子数据表一样的使用,包括在单元格在插入公式。
在运行数据驱动测试之前,你必须检查它,看是否有些元素会导致冲突在你的数据驱
动测试里中。有两种办法解决:
1. 使用正确的表达式让WinRunner认可此对象,基于它物理描述的一部分。
2. 使用GUI map Configuration对话框,改变其中的物理描述,让WinRunner去接
受有问题的对象。
在测试运行期间,你能通过TSL声明改变激活的行,或读取没被激活的行。更多的
帮助……
你运行测试时,没有必要去打开数据表阅读器。
9. Lesson_9读取文本(Text Checkpoint)
第 7 页 共 43 页
10. Lesson_10建立批处理测试
11. Lesson_11维护测试脚本
12. Lesson_12从这里出发,我们的目的?
Lesson_1
1、 WinRunner窗口介绍:
1、WinRunner主窗口,显示所有打开的测试
3、工具条快捷按钮,帮助你快速打开、运行或保存测
2、(本窗口)你可以使用此窗口去录制测试,或编辑
4、用户自定义工具栏,通过“Settings”菜单
5、状态栏,显示当前运行状态或所选择的
2、 工具条相关快捷按钮解释:
第 8 页 共 43 页
NewTest Open Save Run Mode Record Context Sensitive RunfromTop Run from Arrow
新建 打开 保存 运行模式
记录上下文敏感?(记录模式) 从头运行 从箭头标示处运
行
Stop Pause Step into Toggle Breakpoint Break in Function Add watch Test Results Help
停止 暂停 进入 固定中断点 中断功能 添加监视 测试结果 帮助
3、 自定义工具栏的解释:(通过Setting>Customize User ToolBar设置)
记录上下文敏感(录制模
式)
停止
Lesson_2-1
SPY的运用:
1、 运行“飞机预定票程序”。出现下图:
第 9 页 共 43 页
2、 运行WinRunner,选择File>New。
3、 打开GUI SPY。如图:
4、 出现如下窗口:
5、 按下SPY按钮(手形状),移动鼠标焦点,移动至登录窗口的“OK”按钮。注意:此间
鼠标焦点移动时,4图形中将出现该焦点所捕捉的属性。捕捉前关闭或最小化不需用程
第 10 页 共 43 页
序界面。
6、将捕捉焦点移至“OK”按钮后,再按“LeftCtrl+F3”组合。(Ctrl键为左键)。GUI SPY
窗口中出现如图所示。
7、以此类推,可以查看所有的对象属性或窗口属性。
Lesson_2-2
GUI Map(界面地图)的两种方式:
1、 进入WinRunner,选中如图所示菜单:
2、 如图所示,选中“environment”页,见GUI Map File Mode选项,可以切换不
同模式。
第 11 页 共 43 页
注意:切换后,需重新运行WinRunner才有效。
Lesson_2-3
RapidTest Script Wizard的应用:
1、 运行例子:飞机预定票系统:PassWord: mercury
2、 运行WinRunner. 新建一个测试。
3、 如图所示,选中CREATE菜单中“
RapidTest Script Wizard
”功能
第 12 页 共 43 页
4、 出现下图,按“Next”键,进入下一步。
5、 出现下图:
第 13 页 共 43 页
6、 点击手指铵钮,移动鼠标到“飞机预定票系统”窗口,如下:(注意:鼠标形状是手指形
状和选中窗口的边框是处于闪烁状态)
7、 再看步骤5中的窗口:
第 14 页 共 43 页
8、 按“next”进行下一步操作,如图(将其中的CheckBox全部去掉):
9、 按“next”进下一步,如图:(按默认值)
第 15 页 共 43 页
10、
11、
12、
选中“EXPRESS”,单击“Learm”按钮
这时“飞机预定票系统“窗口将开始工作(不断闪烁),记录所有UI的状态及相关
当窗口停止闪烁时,出现如下提示:(选中“NO“进行下一步)
信息。(同时左上角将有个信息框指示工作状态)
13、 出现保存GUI Map 的路径,点击确定(NEXT)
第 16 页 共 43 页
14、 点击“NEXT”,出现如下恭贺成功的窗口。(点击OK,大功告成)
Lesson_3-1
录制测试的两种不同记录模式的演示:
1、 运行WinRunner;
2、 创建一个新的测试;
3、 运行“飞机定票系统”(Flight1A) Password:mecury,出现下图:
第 17 页 共 43 页
4、 录制一个脚本,以“上下文敏感”(Context Sensitive)模式录制。在WinRunner中,选择
Create>Record-Context sensitive(F2)
选中工具条上的Record按钮。状态条也会告诉你所处的录制模式。
或者
5、 打开订单3#。选择 File>Open Order菜单,如图。
6、 在随后的窗口中,选中Order No.(在checkBox中打上勾),输入数字3,按OK按钮。
第 18 页 共 43 页
7、 窗口中将出现所选中记录的内容,如图:
8、停止录制。选中Create>Stop Record(Ctrl+F3),或者点中工具条上的按钮
8、 保存录制的脚本,选中File>Save。或者工具条上的保存按钮
Lesson3_1。
注意:保存时,是作为一个文件夹保存的。当运行此脚本时,所有的信息都将储存在此
文件夹中。
先记录到此处,以上记录模式均为Context Sensivite(上下文敏感)。下面我们先去认识一
下脚本。请进入Lesson3_2例子。
。
,保存文件名为
第 19 页 共 43 页
上面的脚本是录制到“打开3#定单”为止,下面继续。(演示AnaLog录制模式)
9、 打开上次录制的脚本Lesson3_1。如果脚本已经打开,则将鼠标移至上次录制脚本记录
中的最后一行。
10、 在WinRunner中,选择Create>Record-Context sensitive(F2)。
11、 选中File>Fax Number功能,如图:
12、 在下列窗口中输入传真号码(数字)如:。并将签名选项打上勾。
13、 在Agent Signature窗口中写下你的名字。用鼠标在白板上签名(画名)。仔细查看
WinRunner如何在Context Sensitive录制模式下进行签名。
15、下面看如何在AnoLog记录模式下进行录制签名。
16、清除刚才所做的签名轨迹。按下“Clear Signature”按钮。
17、将Fax Order 窗口移动到屏幕上不同的位置。(在更换AnoLog录制模式时,重新
设置窗口位置)
18、这一步骤(关健)。按F2或者再次点击录制按钮
Anolog录制模式下进行签名录制。
19、再次按下F2转换回Context Sensitive录制模式,按下Send按钮,发送传真。窗口
将提示发送成功。
转换到AnoLog录制模式下。
并在Agent Signature窗口中写下你的名字(画下你的名字)。仔细观察WinRunner如何在
第 20 页 共 43 页
20、停止录制;并保存脚本。
注意:如果你运行在Global GUI Map 模式下,必须保存新的对象到你的GUI Map文件
中去。
此说法注意与RapidTest Script Wizard功能结合,因为前期已做过RapidTest Script Wizard
来获取GUI Map文件,所以在本例子运行录制不会出错。在本例子中,出现了新的窗口,
这些属性暂时保存在临时的GUI Map文件中,在退出WinRunner之前,必须将其保存到以
前用RapidTest Script Wizard功能获取过的GUI Map文件中去,以备运行脚本时使用,切记!
在停上录制退出之前,做如下具体操作:
1、 选择Tools>GUI Map Editor.
2、 选择View>GUI Files。注意此时Fax Order No.3窗口及属性显示在*L0<Temporary>
Map files中。
3、 选择File>Save,保存,弹出一个新窗口。在Load GUI files下拉框中,文件
将显示。
第 21 页 共 43 页
4、 按下OK键,则临时Map文件中的窗口及窗口下的所有属性都将从临时文件转入
文件中去。
5、 选择退出。
Lesson_3-2
理解TSL(测试脚本语言)Test Script Language。
1、 查看Lesson3_1中记录的脚本,如下图:
2、解释:
A、 当你点击一个对象时,W inRunner分配给其一个逻辑名称,一般为这个对象的文本标
签(text label)。如:
button_set ("Order No.", ON); Order No
为这个对象的逻辑
名称
。
B、 如上所默认的定义。WinRunner在打开新的窗口时,每个脚本也都会自动增加一行注释。
注释描述以#打头。如:
# Flight Reservation
C、 当你每次打开一个新的窗口时,Winrunner会加一条陈述语句。如:当你打开File>Open
Order的窗口时,WinRunner会加入一条:
set_window ("Open Order", 1);
D、 当你从键盘输入时,WinRunner将产生一个Type(类型?),OBJ_Type(对象类型?)或一
个Edit_set()描述在脚本中。如:在“订单号码”的窗口,当你从键盘上敲入数字,则脚
本中将做如下描述:
edit_set ("Edit", "3");
第 22 页 共 43 页
E、 更多的帮助请参考WinRunner中的Help>TSL Onling Referrence。
# Open Order
edit_set ("Edit", "3");
button_press ("OK");
win_activate ("Flight Reservation");
set_window ("Flight Reservation", 4);
menu_select_item ("File;");
Lesson_3-3
运行一个录制好的测试脚本:
1、 检查WinRunner窗口和“飞机预定票系统”已运行在你的桌面上。
2、 确定Lesson3_1的测试脚本已打开。如果没有打开,在WinRunner中选择File>Open,
打开测试脚本。
3、 确定“飞机预定票系统”的主窗口
mercury)
4、 在工具条上选择Verify模式。如图:
5、选择“Run>Run from Top”,或在工具条上。按下
个对话框,如下:
6、选择“Test Run Name”,系统默认为res1。这个名称将作为文件夹保存在测试脚本
所在文件夹下(Lesson3_1所在文件夹)。将“DiSplay test results at end of Run”前的Check Box
打上勾,表示运行完脚本后自动弹出结果窗口。
7、点击“OK”按钮,运行测试。
如图按钮,系统将弹出一
已打开。(登录密码为:
第 23 页 共 43 页
8、运行结束,自动显示分析结果。
Lesson_3-4
分析测试结果:
1、 上面的Lesson3_1脚本运行结束后,系统将自动弹出一个结果窗口,我们来看一下:
点击工具栏
上的图标按钮,也可弹出结果窗口。
①显示当前测试脚本名称
②显示当前结果路径名称(在运行脚本时指定的,相当于测试的次数)
③显示测试运行的状态(PASS或FAILED)
④显示这次测试的相关信息,如:日期,操作者名称和总共运行时间。查看详细信息可双
击其对应项目。
⑤测试记录部分显示运行期间的主要发生事件,也列出了每个发生事件在测试脚本中的行
号。
2、评估测试结果,关闭,退出。
Lesson_4-1
第 24 页 共 43 页
一、
1、选
选项中设置(增大默认的间隔时间)
中菜单条上的“Setting”中的“General
Options….”。
2、弹出窗口后,选中Run页面。(看Timeout for chckpoints and CS statements:这
一项的时间,为10000毫秒,即10秒)。可以修改这个时间,达到延迟的作用。试试看!
缺点
:此选项一设置,将影响到所有的测试脚本运行,并将使测试运行速度降低。
二、设置同步点(延迟)
当同步问题发生时,在测试脚本的精确位置点插入一个同步测试点。同步测试点将告诉
WinRunner暂停测试,为了等待应用程序特特殊的响应。这种方法是被推荐使用的。下面我
们看一个具体的例子:
1、 运行WinRunner,并创建一个新的测试。
2、 打开“飞机预定票系统”(Flight1A).PASSWORD:mercury
3、 录制一个脚本,以“上下文敏感”(Context Sensitive)模式录制。在WinRunner中,
选择Create>Record-Context sensitive(F2)或者选中工具条上的Record按钮。
4、 在“飞机预定票系统”中创建一个新的定单。选择“File>New Order”。
5、 填写飞机与乘客信息。如下图:
第 25 页 共 43 页
①输入明天(注:第二天)的日期,格式:月/日/年。
②始发地,选中“Los Angeles”。
③目的地:选中“San Francisco”。
④单击“飞机图像”按钮后,出现一个飞机航班表。然后双击选中其中某一条。
⑤输入你的姓名:如:tanglu
⑥选择头等舱。
6、 插入定单存到数据库。单击“Insert Order”按钮,当插入完成,“Insert Done”信息
将出现在状态栏(在界面上方)。
第 26 页 共 43 页
7、 再单击“Delete Order”按钮,并确认删除此订单。
8、 停止录制。
9、 保存记录,保存为Lesson4_1。
接下来,我们来看Lseeon4_(先)和Lesson4_(后).
同步:第一个为失败的例子;第二个为成功的例子。
Lesson_4-2
插入同步点的实例:
1、 确认窗口处在Lesson4_所说的情况下。(由于间隔时间不够导致失败)
2、 移动鼠标到所要插入同步点的脚本位置。
将鼠标移动到“
button_press ("Insert Order");”末尾,并回车新增行,
如图:
3、 插入同步设置。策略:当“Insert done”的提示在主窗口上方出现时,再让测试继续。
选择“Create>Synchronization Point>For Object/window Property…”或者在
用户工具条上单击按钮。(注意鼠标位置)
第 27 页 共 43 页
4、 将手的形状移到“飞机预定票主窗口”,捕获“insert done”的位图信息。如图:
5、 在脚本窗口原鼠标所在位置,将添加一行脚本语言描述。如图:
并修改其中的时间参数,将1秒改为10秒。
6、 保存修改后的脚本。
7、 如果工作在Globol Map file 模式下,必须添加临时Map到原来存在的Map文件中去。[参]
前面Lesson3_2具体描述,这里不再多说。
关于插入脚本的说明:如图
第 28 页 共 43 页
注释:(次为lesson_文件)
以Flight1a为例:
//第一次失败的例子:
1、第一次录制新增ORDER(订单),然后删除ORDER(订单).具体例子[参]Lesson4_1。
(先查看SEtting的设置)
2、改变SETTing中的选项,将第2项(Timeout……) 时间间隔改为1000毫秒,即1秒。
3、运行lesson4_1。注意观察当鼠标努力点击“delete order”时所发生的状态。
4、发生测试运行失败。鼠标单击“delete order”后无反应。
在弹出的提示窗口中单击pause按钮,暂停测试。
注意暂停符号已标记在单击Delete Order的命令行上。
分析:由于间隔时间改为1秒,而程序响应不及1秒,出现延迟时间不够情况。
错误发生是由于Winrunner无法等待到插入订单到数据库的操作完成
(只有1秒时间)
就进行下一步操作,所以失败。
注意暂停符号已标记在单击Delete Order的命令行上。
//第二次插入同步点后成功的例子:
[参]lesson4_
Lesson_4-3
运行测试脚本并分析一个设置同步点后的测试结果:
1、 确定例子Lesson4_1的脚本处在打开状态。
2、 选择“Verify”运行模式,单击“Run from Top”按钮,按默认状态按OK。
3、 运行测试;注意“insert done”提示怎样出现在状态条上。
第 29 页 共 43 页
4、 运行结束后,出现如下窗口:1、测试记录部分中的绿色条,表明同步点执行成功。2、
双击绿色条,可以看到Bitmap Imag的信息图像。
5、 关闭Test Rusult窗口。
6、 关闭Lesson4_1的测试脚本。
7、 退出“飞机定票系统”。
8、 改变的“Timeout…”时间间隔为原来的设置(10秒,10000毫秒),如图:(有始有终,不
至于影响到其它的测试脚本)
A)、选择菜单条上的“Settings>General Options”
B)、选择RUN页面
C)、将 “Time for checkpoints and CS statements”的时间1秒(1000毫秒)改为10秒
(10000
更多的关于同步测试信息,请参考用户
手册(Winrunner User’s Guide)中的
“Synchronizing the Test Run”章节。
毫秒)
第 30 页 共 43 页
Lesson_5-1
一、 插入 “GUI Checkpint”的示例:
1、 新建一个测试。(不要录制)
2、 打开“飞机定票系统”
3、 在“飞机预定票系统”中,新建一个订单,输完名字后,“insert order”按钮可用。
如图:
4、 在WinRunner菜单选择“Create>GUI Checkpoint>for object/window”,如下图。
第 31 页 共 43 页
5、 将手形光标移动到“飞机定票系统”的主界面,捕捉“insert order”的GUI属性。
如图:
6、 同时屏幕左上角出现提示窗口。如下:
单击:插入默认的检查(列表);
双击:查看可用的检查(列表);
右键:放弃。
7、 双击,将弹出一个新的窗口。如图:
①当你双击“Insert Order”按钮时,将打开此对话框。
②选择你想要检查的属性。图中默认值为“Insert Order”按钮(激活)可用。
第 32 页 共 43 页
8、单击Cancel,取消插入GUI Checkpoint。
不管你插入“GUI Checkpoint”是采用它属性的默认值还是你自己定义的值,WinRunner
都将保存其信息,并作为期望值(预期结果)。如果你插入的是一个具体对象的GUI
Checkpoint,脚本中将产生Obj_check_GUI声明;如果你插入的是一个窗口GUI Checkpoint,
脚本中将产生Win_Check_GUI声明。
当你在应用程序的新版本中运行测试,Winrunner将比较预期结果与实际结果。
二、 插入“GUI Checkpoint”的具体实例。
1、 运行Winrunner.
2、 运行“飞机预定票系统”。
3、 录制。“Create>Record –Context Sensitive”。
4、 在“飞机预定票系统”,选择“Open Order”。弹出下图:
5、 为Order Box建立一个GUI CheckPonit。
步骤1:选择Creat >GUI Checkpoint>For Object/windows
步骤2:将手形状指向Open Order窗口中的Order No.如图。
步骤3:将手形状双击。出现Order No.的GUI属性。再按OK。如下图:
注意
:要在录制状态下按双击,不能单击,用手形状捕捉GUI属性时,屏幕左上角
也会有提示:
第 33 页 共 43 页
6、 选中Order No的复选框,在输入框中输入#4
7、 再为Order No建立一个GUI Checkpoint。注意与上一次有何不同。
8、 为Customer建立一个GUI Checkpoint.(捕捉Customer对象属性,双击显示属性后,
选中Enable,值为OFF;默认选中State,值为OFF)
9、 单击OK,打开#4订单。
10、
11、
GUI Checkpoint的脚本说明:
停止录制。
保存脚本为Lesson5_1
Lesson_5-2
如何在应用程序的不同版本下运行GUI Checkpoint脚本:
1、 运行“飞机定票系统”Flight 1B的版本。
第 34 页 共 43 页
2、 在WinRunner中打开Lesson5_1的脚本
3、 选择“verify mode”运行模式。
4、选择“Run From Top”。 默认的运行名称为res2。
5、运行测试。单击OK,将花费几分钟的时间。在运行过程中将有一个不匹配项提示
窗口弹出,不管它,继续!
6、查看结果。运行结束,测试结果窗口将弹出,在测试结果窗口将看到一个运行结束的
GUI Check记录窗口,它的状态为红色,它的检查结果不匹配。这说明有一个或更多个的
执行检查在这对象中发生失败。双击红色项目可以查看失败的描述。如下图:
检查到Customer
Name 的复选框是被激活
预期
实际
7、关闭,退出。
Lesson_6-1
插入Bitbmp Checkpoint的例子:
1、运行WinRunner,创建一个新的测试;
2、运行飞机预定票系统,并Login。PassWord:mercury
3、采用Record>Context Sensitive模式。(默认方式)
4、打开订单#6。选择File>open Order,选中Order No,输入6,单击OK按钮。如图:
第 35 页 共 43 页
5、打开“传真订单”对话框。选择File>Fax Order…。
6、在Fax number输入10位数的传真号码。不需要输入括号和下划线。
7、移动Fax Order对话窗口(见下原文,讨论)
见:步
骤9、
8、转换至Analog Mode。按F2快捷键切换。
9、在代理商签名窗口中签下你的名字。(用鼠标画出你的名字)见5中的图2。
10、将录制模式切换回Context Sensitive Mode。按F2切换。
11、插入一个Bitmap Checkpoint,检查你的签名。
选择Create>Bitbmp Checkpoint>For Obj/Window或者在用户工具条上选中Bitmap
Checkpoint For Obj/window图标。使用手形状指针指向(Agent Signature)签名窗口。
WinRunner将捕获一个Bitmap,并在脚本中插入Obj_Check_Bitmap声明语句。
第 36 页 共 43 页
12、单击Cleare Signature按钮,清除签名。
13、为清除签名后的签名窗口创建一个Bitmap Checkpoint。步骤同11。
14、单击Cancel按钮在Fax Order对话窗口。
15、停止录制。
16、保存脚本文件。文件名为Lesson6.
17、如果工作在Global GUI MAP File Mode下。要记得保存新对象到GUI Map文件中
去。(略)
脚本说明:
查看执行(期望)结果:
1、 运行Lesson6.
2、 在测试结果窗口,在测试记录部分,双击“Capture Bitmap”事件或选中它单击Display
按钮。共有两个Capture Bitmap事件。
3、 关闭退出。
Lesson_6-2
在不同的版本中运行脚本,检查位图:
1、 关闭Flight 1A
2、 运行Flight 1B。
3、 确信Lesson6脚本已打开在WinRunner窗口中。
4、 在标准工具栏上选中脚本运行模式为Verify.
5、 选择Run From Top.
。并接受默认选项,继续下一步。
6、 运行测试,单击OK。如果有不匹配的Bitmap检测信息提示,单击continue按钮。
7、 查看结果。如图:
第 37 页 共 43 页
8、 关闭测试结果窗口。
9、 关闭Lesson6.
10、关闭Flight 1B.
Lesson_7-1
TSL应用:
本例子有以下要点:
打开一个定单;
打开传真订单对话框;
检查票数乘以票价的总额;
对定票总额是否正确做出结论
第一部分:录制一个基本的测试脚本
1、 运行WinRunner,并打开一个新的测试;
2、 运行Flitht 1A,并登录;
3、 以Context Sensitive模式开始录制。
4、 打开定单#4。选择File>Open Order,选中Order No,输入4后,单击OK按钮。
5、 打开Fax Order 对话框。选择File>Fax Order。
第 38 页 共 43 页
6、 单击Cancel按钮。
7、 停止录制。
8、 保存脚本。文件名为Lesson7.
9、 如果工作在Global Gui Map File模式下,记得保存新对象到Map File中去。
第二部分:使用功能产生器插入功能点
准备增加功能点,在测试脚本中插入Fax Order对话框中查询时的票数,票价及总额的
字段。
1、 在第一部分完成的脚本的最后一行(Button_Press(“Cancel”)的上方插入一空行;
2、 打开Fax Order对话框。选中File>Fax Order。
3、 查询票数字段。#Ticktes。
选择Create>Insert Function>For Obj/window 或单击用户工具条上的Insert Function For
Object/window。使用手形状指针指向票数字段#Tickets。
第 39 页 共 43 页
然后功能产生器将打开并建议edit_get_text功能。该功能读取票数字段名称并为其分配一
个变量名。默认的变量名为Text。
改变其变量名为Ticktes。如下图,单击Paste(粘贴)将功能增加到脚本中。
4、 查询票价字段。步骤同3类似。将默认变量名text改为Price。
5、 查询总额字段。步骤同3类似。将默认变量名text改为Total。
6、 关闭Fax Order对话框。在Fax Order窗口,单击Cancel按钮。
7、 保存脚本。
8、 如果工作在Global Gui Map File模式下,记得保存新对象到Map File中去。
第三部分:增中一个逻辑(判断)到测试脚本
在此部分中,你将通过if/else声明,编写一个决策逻辑到测试脚本中。它可以:
检查总额是否等于票数乘以票价;
对总额是否正确做出报告;
1、 在打开的Lesson7测试脚本中,将鼠标移动到最后一个Edit_get_text声明的下面(总额)。
2、 增加如下声明语句:
用浅显的英语,这些意思如下:如果票数乘以票价等于总额,则报告总额是正确的;反
第 40 页 共 43 页
之,则报告是不正确的。
提示:你可以使用Create>Insert Function>From Function Generator或使用用户工具条上
的Inserter function from function generator按钮
3、 在这些声明语名if的上面,加入注释语句(告诉其他人这部分语句是干什么用的),前
面加上#号。选择Edit>Comment,在#号后面写上:Check that Total Tickets Price is
Calcualted Correctly.(检查票价计算正确)
4、 保存脚本。
第四部分:理解Tl_Step语句
在许多例子中,当你运行测试。WinRunner报告一个全面的测试结果,告诉你测试是否
通过。在测试脚本中增中Tl_step语句,它能在一些细节的操作上告诉你是否通过,并提供
报告。
例如:
Lesson_7-2
调试测试脚本:
在该例子中,测试执行采用步命令(Step Command)。如果一些错误信息出现,将检测
测试脚本并努力去修复它。
1、 在标准工具栏上选择运行模式为Debug。该模式将一直保留,直到你切换为另一种模式。
2、 在测试脚本的窗口左边部分,用鼠标标置执行标记。定义执行的首语句。
3、 选择Run>Step或者单击Step执行按钮。
可能会移动到飞机定票系统执行点击操作。
5、 点击Stop。停止测试。
6、 复审测试结果。在调试模式下,测试结果不会自动打开。单击Tools>Test Result或单击
4、 通过Step执行按钮完成全部测试,一行一行的执行。注意:在测试运行的过程中,鼠标
第 41 页 共 43 页
Test Result按钮。将显示调试运行的测试结果。
7、 关闭测试结果窗口。
8、 退出飞机定票系统。
Lesson_7-3
在不同的应用程序版本上运行测试脚本:
1、 打开Flitht 1B.
2、 在标准工具栏上选中Verify运行模式。
3、 选择Run From Top.
4、 运行测试。Lesson7.
5、 复审结果。可以在测试记录中双击Tl_step,查看全部描述。
。默认其它选项。
6、 关闭测试结果窗口。
7、 关闭Lesson7测试。
8、 退出Flight 1B。
Lesson_8-1
第一部分:转换你的测试为数据驱动测试
1、打开Lesson7脚本,将其另存为Lesson8脚本。
2、运行DataDriver Wizard(数据驱动导航)。
选择Toools>DataDriver Wizard后,单击下一步。
3、为你的测试创建一个数据表。
4、分配一个数据表变量。
5、选择全局参数化选择。
6、选择要参数化的数据。
第二部分:在数据表中增加数据
第 42 页 共 43 页
1. 打开数据表
2. 增加数据
3. 保存数据
4. 保存脚本
第三部分:校正脚本使用正确的表达式
1、
2、
3、
第四部分:自定义结果信息
1. 修改tl_step声明;
2. 保存测试
第五部分:运行并分析结果
第 43 页 共 43 页


发布评论