一、实验目的
1.掌握UFT工具脚本与脚本的编辑(创建脚本、测试脚本的回放、保存测试脚本、导出与导入测试脚本);
2.掌握测试对象库的管理(UFT对象的识别、对象的属性、编辑与修改对象属性、共享对象库、捕获对象及步骤生成器);
3.掌握检查点的使用(标准检查点、文本检查点、标准输出值、自定义检查点);
4.掌握参数化的概念及使用(参数化测试步骤、同步点、数据表参数化);
5.操作模块(Call to New Action、Call to Copy of Action、Call to Existing Action);
6.UFT与ALM的集成方法(UFT与ALM的连接、UFT资源在ALM中的存放)
7.掌握函数库的创建及使用(函数生成器)
二、内实验容
需求:Flight飞机订票系统有Fax Order功能,要求检查Fax Order传真订单 窗口上的信息正确且能发送传真成功。
表1 Fax Order传真订单功能的业务流程测试用例步骤如下:
步骤编号 | 步骤描述 | 预期结果 |
1 | 登录Flight飞机订票系统 |
|
2 | 输入信息并创建订单 | 创建订单成功 |
3 | 在系统菜单栏的文件菜单下点击”打开订单”按钮,并输入第2步生成的订单号后打开订单 | 指定的订单被打开 |
4 | 在系统菜单栏的文件菜单下点击”传真订单”按钮 | 传真订单窗口显示 |
5 | 检查传真订单窗口上的如下信息与第3步打开订单窗口的信息一致: 名称、订单号、航班、总计 | 传真订单窗口上的被检查的信息正确。 |
6 | 检查传真订单窗口上的总计价格等于机票价格乘以机票数 | 传真订单窗口上的总价计算正确。 |
7 | 输入10位传真号码,并点击“发送”按钮 |
|
8 | 在已打开的订单页面上,检查进度条显示信息为:已成功发送传真... | 发送传真订单成功 |
9 | 关闭订单窗口,退出程序。 |
|
1. 根据以上测试用例步骤按如下要求开发UFT测试脚本:
1) 创建两个测试分别为Logout,FaxOrder_Check;
2) Logout 测试只包括Logout一个可重用的Action操作,且使用共享对象库文件。
3) 在FaxOrder_Check测试新建四个Action操作Login,NewOrder、OpenOrder、FaxOrder,最后调用Logout测试的Logout操作。
4) 将NewOrder操作中的Date/FlyFrom/FlyTo/Name/Tickets设置参数化,并使用全局数据表中的下列3行数据作为输入数据来创建3个订单,每个订单都按业务流程测试用例步骤顺序执行检查。
表2 全局表中的数据作为输入数据来创建订单
Date | FlyFrom | FlyTo | Name | Tickets |
121315 | Denver | London | User1 | 2 |
121415 | London | Paris | User2 | 3 |
121515 | Frankfurt | Los Angeles | User3 | 4 |
5) 将NewOrder操作中的订单号作为输出参数到数据表,再作为OpenOrder操作的输入。
6) 在OpenOrder操作中添加测试用例第五步的被检查信息作为输出值并保存到全局数据表
7) 在FaxOrder操作中添加下列检查点:
v 检查传真订单窗口上的如下信息与打开订单的信息一致: (名称、订单号、航班、总计)
v 用自定义检查点检查传真订单窗口上的总计价格等于机票价格乘以机票数
v 在已打开的订单页面上,检查进度条显示信息为:已成功发送传真...(或者Insert Done…)
8) 运行FaxOrder_Check测试,并将测试结果导出。
2. 交付物:
1) Logout测试脚本及共享对象库文件
2) FaxOrder_Check测试脚本
3) FaxOrder_Check测试的运行报告PDF
三、实验总结
本次实验内容主要是将课本《软件功能测试及工具应用》的第一章到第十一章所学内容贯穿起来,有效地将理论与实践结合在一起。下边是实验的部分过程及实验中需要注意的问题:
1.该实验,首先要新建一个测试FaxOrder_Check,在FaxOrder_Check测试新建四个Action操作Login,NewOrder、OpenOrder、FaxOrder,分别对这四个模块所对应的操作进行录制。在录制设置中,我们选择使用第一种Record and run test an any open Window-based application,这需要在Login模块的脚本的第一行中添加一行脚本Systemutil.Run(GUI所在路径)。
2.然后选择菜单命令Flie——Add——New Test...,而不是直接用Flie菜单下的新建测试,我们需要在解决方案面板中同时显示测试Logout和测试FaxOrder_Check,如果不是通过Add新建测试Logout,则在新建好测试Logout的同时,测试FaxOrder_Check将被关闭。
3.测试Logout中只需包含一个可重用的Logout,在测试FaxOrder_Check上右击选择Add——Call to Copy of Action,建议使用Call to Copy of Action,如果测试Logout中的Logout模块被删除,测试FaxOrder_Check中的对于重用Logout模块的操作不会受到影响,如果使用Call to Existing Action,会报错。
4.在NewOrder的关键字视图中,对Date/FlyFrom/FlyTo/Name/Tickets设置参数化,并使用全局数据表中的数据作为输入数据来创建订单(数据如表2)。
5.将NewOrder操作中的订单号作为输出参数到数据表,再作为OpenOrder操作的输入,该条操作需在录制过程中将单击飞机订票系统中的Insert Order按钮后的滚动到100%的滚动条Insert Done...设为同步点,并在此对该滚动条进行标准检查点操作,检查滚动条的文本是否为Insert Done...,将NewOrder操作中的订单号设置为标准输出值,列名为order_no_text_out。对飞机订票系统的OpenOrder对话框中的订单号参数化,选择全局表列名为order_no_text_out。
6.在OpenOrder操作中添加测试用例第五步(表1的第五步)的被检查信息作为输出值并保存到全局数据表。该条操作需要在录制过程对名称、订单号、航班、总计进行标准输出值操作,并将数据保存到全局表中。
7.在FaxOrder操作中检查传真订单窗口上的如下信息与打开订单的信息一致: (名称、订单号、航班、总计)。在此可使用自定义检查点,利用IF对每个对象操作中所得到数据与数据表中的数据进行比较,最终将结果输出到报告中。对于该操作我们需要注意的是对象总计,在FaxOrder中是没有$,而在数据表中的有$,因此我们需要用mid(获得数据表中数据对应的变量名,2)将数据表中的$去掉,之后在进行比较。
8.在FaxOrder操作中用自定义检查点检查传真订单窗口上的总计价格等于机票价格乘以机票数。同样使用IF进行操作,用abs(机票价格*及票数-总计)<=0.0000001来判断是否相等。
9.在FaxOrder操作中,在已打开的订单页面上,检查进度条显示信息为:已成功发送传真...(或者Insert Done…),使用标准检查点进行检查。
10.运行FaxOrder_Check测试,并将测试结果导出