1、在WinRunner中,选择Table Data Driver Wizard。数据驱动向导欢迎窗口打开,点击下一步,开始设定参数过程。3. 为测试创建一个数据表:在Use a new or existing Excel table 文本框中输入Lesson7。数据驱动向导创建了一个以此名命名的微软Excel表,并保存在测试文件夹中。4. 指定一个表变量名:接受默认的表变量名 table。5. 选择全局参数选项:选择Add statements to create a data-driven test。它会向测试中添加一些 TSL 声明,如:定义表变量名、打开或关闭数据表、在循环中对于数据表里的
2、每一行执行适当的脚本选择。选择Parameterize the test并选择Line by line选项。当我们选择参数化测试时,就使WinRunner去已录制的声明和选出的检查站中查找确定的数值用参数来替换它们。选择一行一行选项,就使向导去为已选出测试的可参数化的每一行打开一个屏幕,由我们来决定是否使这一行参数化。点击下一步。6. 选择要参数化的数据:第一个一行一行的屏幕打开,首先列出的是 Order Number 单选按钮。在这个测试中我们将在每次循环打开不同的传真预定页,而 Order Number 单选按钮每次都会被选中。所以这个脚本行要保持原样Do not replace this
3、 data,并点击Next按钮。下一个一行一行的屏幕列出的是 Order Number 文本框。这个文本框中的内容是在每次循环中要发生变化的,注意到”3”这个数值被高亮显示,并在Argument to be replaced文本框中显示,表明它是要被参数化的值。在Replace the selected value with data from下选择A new column,并在后面的文本框中输入Order_Num,这个新列选项在Lesson7.xls文件中创建一个新列标题为Order_Num,并且在这列的第一行输入3。点击Next按钮,再点击Finish按钮。这样测试就被参数化了。在参数化测
4、试中,下列元素被添加或修改:table = 这行定义了数据表变量ddt_open 声明打开一个数据表,下面一行确认数据测试打开成功。ddt_get_row_count 声明检查数据表中有多少行,也就是在测试中要执行多少次参数循环。for 循环设置声明。ddt_set_row 这个声明告诉测试在循环过程中每次要使用表中的哪一行。edit_set 它声明了值“3”将被 ddt_val 所代替。ddt_close 声明关闭数据表。二、 向数据表中添加数据:1. 打开数据表:选择Table Data Table,Lesson7.xls表被打开。注意:表中有一名为Order_Num的列,并且这列中的第一
5、行数据为3。2. 向数据表中添加数据:在Order_Num列的2、3、4、5行中添加数据1、6、8、10。3. 保存并关闭数据表:点击表中的一个空单元,在菜单中选择File Save保存数据。然后选择File Close关闭数据表。4. 保存测试:选择File Save 或点击工具栏中的Save 按钮。三、 使用规则表达式调整脚本:在运行测试之前,我们需要检查数据驱动的测试脚本中是否有某些可能导致冲突的因素。数据驱动向导已经找到了被选中的检查站和已录制的声明中的所有确定数据,但是没有检查例如对象标签等这种有外部输入容易引起改变的事情。比如在航班预约应用程序中,传真预约窗口会根据传真预约表单号来
6、改变窗口名称。如果我们不修改脚本就运行测试,当在第二次循环运行测试时就会失败,这是因为当前运行测试时打开的是名为Fax Order No. 1的窗口,而脚本中却要激活名为Fax Order No. 3的窗口,这就使WinRunner无法找到这个窗口。我们需要使用规则表达式来解决这个问题。一个规则表达式就是使WinRunner能够识别不同名称或标题的对象的一个带有复杂查询语句的字符串。1. 在GUI MAP文件flight4A.gui中查找传真预约窗口。 GUI Files,选择flight4a.GUI文件,选择Fax Order No. 3窗口图标。2. 使用规则表达式改变窗口标签:点击Mod
7、ify按钮,修改对话框打开。在Physical Description属性描述文本框中,修改label属性行,在Fax前添加一个“!”,再使用“*”代替行尾的空格和3。3. 关闭修改对话框:点击OK按钮,关闭修改对话框。4. 保存GUI MAP文件并关闭GUI MAP编辑器: Save,将改变保存到flight4a.GUI文件中。点击File Exit关闭GUI MAP 编辑器。四、 定制结果信息:1. 改变tl_step声明。 修改测试脚本中第一行tl_step,为tl_step(total,0, Correct. tickets tickets at $price cost $.);。修改
8、测试脚本中第二行tl_step,为tl_step(, 1, Error! does not equal $. 2. 保存测试:五、 运行测试并分析结果:1. 启动航班预约应用程序Flight 4A并登录:选择Start Programs WinRunner Sample Applications Flight 4B并以自己的名字和mercury为用户名和密码登录。将航班预约应用程序和WinRunner重新排放,使它们在桌面上同时可见。2. 选择测试运行模式为Verify校验模式。3. 选择从头开始运行测试:选择Test Run from Top或点击From Top按钮。运行测试对话框打开。接
9、受默认的文件夹名称res1 。选择Display test results at end of run单选框。单击 OK 按钮运行测试。4. 查看测试结果:当测试运行结束后,测试结果自动显示在测试结果窗口中。在测试记录中tl_step事件被列出了五次,每一次循环都检查了预定的机票数目、票价和总的合计价格。5. 关闭测试结果窗:在WinRunner测试结果窗中选择File Exit。6. 关闭测试脚本和航班预约应用程序:在WinRunner主窗口中选择File Close。在航班预约应用程序中选择File 六、 数据驱动函数练习:在以上测试脚本中进行如下修改(独立查找相关函数,阅读说明,了解其使
10、用方法):1. 不允许使用ddt_set_row()和ddt_val()函数,要求应用ddt_val_by_row()函数来代替它们,替代过程中注意函数各参数的含义。2. 自己设置一个变量,用来记录每次循环中total的累加值,并在循环结束后,使用report_msg()函数在测试结果中输出用户提示信息。table = Lesson7.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_Ro
11、wCount);TotalPrice=0;for(table_Row = 1; table_Row General Options中的Run in batch mode选项。这一选项会通知WinRunner禁止一些中断测试的信息。例如,当WinRunner发现一个位图不匹配错误时,它不会提示你去停止测试运行。在我们查看批处理测试的运行结果时,我们可以看到批处理测试中调用的所有测试或通过或失败的运行结果。七、 设计一个批处理测试:1. 启动WinRunner创建一个新测试并加载GUI MAP启动WinRunner 并创建一个新测试,选择File New,新测试文件打开。2. 在测试脚本中设计调用
12、Lesson4 Lesson5 Lesson6 的声明:在WinRunner的新测试脚本中,输入F:陈丹琪试验WinRunnerlesson4陈丹琪试验WinRunnerlesson5陈丹琪试验WinRunnerlesson6注意Lesson前面的路径要根据自己存放地址书写。3. 定义一个循环调用每个测试三遍:for (i=0; i Run 中的Run in batch mode选项。点击OK按钮。5. 保存批处理测试:测试文件名存成:batch。八、 在航班预约应用程序4B版本中运行批处理测试:1. 启动航班预约应用程序Flight 4B并登录:九、 分析测试结果:1. 打开测试结果窗口,显
13、示批处理测试res1的结果:当测试运行结束后,如果测试结果没有自动显示,选择Tools Test Results或点击Test Results按钮,打开测试结果窗口。2. 查看批处理测试结果:我们看到批处理测试的结果是失败的,因为在前面的实验中我们已经知道版本4B中有些bug。左侧测试树中显示了批处理测试中调用的所有测试,由于每个测试被调用了三次,所以在列表中每个测试的名称显示了三遍。右侧列表中列出了批处理测试运行过程中发生的所有事件。call test事件表明一个被调用的测试被打开并执行了。return事件表明控制返回到批处理测试中,并显示了某个被调用测试的运行结果。3. 查看被调用测试的结
14、果:在测试树中点击想要查看的被调用测试的测试名称,如点击Lesson5,这时测试树中点击的测试名称被高亮显示。右侧的测试结果表示的是当前测试是否通过的信息。右侧下面的表格中显示的是目前选定的测试的运行过程中发生的所有事件及结果。由于在前面的实验中,我们了解4B版本中,清空签名按钮在点击后并没有完成清空的操作,造成在位图检查过程中出现不匹配错误。双击失败事件,可以显示期望、实际及相比较后的不同结果。4. 关闭测试结果窗:5. 关闭批处理测试: Close关闭每个在批处理测试中被调用的测试,或选择File Close All来关闭所有被调测试。6. 在通用选项对话框中清除批处理运行选项: Gene
15、ral Options,清空Run in batch mode选项,点击OK按钮。批处理测试技巧:i. 通过定义搜索路径,可以通知WinRunner到指定的目录中搜索要调用的测试。 General Options,在Search path for called tests文本框中定义被调用的测试所在目录,这样在编写调用测试的语句时,就可以直接写被调用的测试名称了。lesson6ii. 可以从一个批处理测试向一个被调用的测试传递参数值,参数值使用一个调用声明来定义:call test_name (parameter1, parameter2, .);iii. 在运行批处理测试时,一定不要忘记必须
16、在Run in batch mode模式下进行。当应用程序的新版本完成时,开发人员可能修改了某些对象、添加了某个对象或删除了一些对象,我们应该如何使用以前的测试脚本来测试新版本的应用程序呢?实际WinRunner提供了一个很简单的方法,就是修改GUI MAP。GUI MAP文件中包含的应用程序各对象的描述信息,包括:一个逻辑名称,就是我们在测试脚本中看到的,如:button_press (Insert Order 其中的Insert Order就是对象的逻辑名称。一个属性描述,一些可以唯一描述某个对象的属性列表,如:class: push_buttonlabel: 这个按钮属于按压式按钮对象类
17、型并且其标签为Insert Order。当运行测试时,WinRunner在测试脚本中读取对象的逻辑名称,并上GUI MAP文件中查找它的属性描述,然后应用这个描述在被测的应用程序中找到该对象。所以当对象改变时,我们必须更新GUI MAP文件,使WinRunner在运行测试时能够找到该对象。一十、 在GUI MAP 中编辑对象属性:2. 打开GUI MAP文件编辑器: GUI MAP,在对象/窗体列表框中显示当前GUI MAP文件中的内容。对象列表以树状方式显示,每个对象由一个图标和一个逻辑名称组成。双击对象可以展开或收起包含子元素的对象。勾选显示属性描述单选框,可在其下的文本框中查看到具体的属
18、性描述信息。3. 在GUI MAP文件编辑器树中找到插入预约(Insert Order)按钮:选择View Collapse Objects Tree(折叠对象树),在对象/窗体列表框中只显示各个窗体的标题。双击Flight Reservation窗体查看其中的对象,拉动滚动条直到在对象列表中找到插入预约(Insert Order)按钮。4. 查看插入预约(Insert Order)按钮的属性:在对象树中单击插入预约(Insert Order)按钮,其属性就显示在下面的属性窗格中。5. 修改插入预约(Insert Order)按钮的属性:点击修改按钮或双击插入预约(Insert Order)按
19、钮,修改对话框打开。在属性窗格中的标签由Insert Order改为Insert 。点击OK按钮确定修改并关闭对话框。6. 保存GUI MAP文件并关闭GUI MAP编辑器:一十一、 向GUI MAP 中添加GUI对象:1. 打开航班预约应用程序Flight 4A的登录窗口: Flight 4A。 GUI Files。3. 在登录窗口中识别所有对象:单击Learn按钮,使用手形指针点击登录窗口的标题栏。一个消息框弹出,提示将识别窗体中的所有对象,点击Yes按钮。WinRunner将识别登录窗口中的所有对象属性并记录在临时GUI MAP文件中。4. 向GUI MAP文件中保存新对象: Save,WinRunner信息对话框通知我们已存在窗口中的新对象添加到flight4a.GUI文件中。点击Yes按钮。又一新窗口对话框打开,确认flight4a.GUI文件在Loaded GUI Files框中显示,点击OK按钮。在WinRunner再次弹出的消息对话框中
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1