QTP完全指导学习教程54.docx
- 文档编号:4698219
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:10
- 大小:343.86KB
QTP完全指导学习教程54.docx
《QTP完全指导学习教程54.docx》由会员分享,可在线阅读,更多相关《QTP完全指导学习教程54.docx(10页珍藏版)》请在冰豆网上搜索。
QTP完全指导学习教程54
第四章参数化
在测试应用程序时,可能想检查对应用程序使用不同输入数据进行同一操作时,程序是否能正常的工作。
在这种情况下,你可以将这个操作重复录制多次,每次填入不同的数据,这种方法虽然能够解决问题,但实现起来太笨拙了。
QuickTest提供了一个更好的方法来解决这个问题——参数化测试脚本。
参数化测试脚本包括数据输入的参数化和检测点的参数化。
使用QuickTest可以通过将固定值替换为参数,扩展基本测试或组件的范围。
该过程(称为参数化)大大提高了测试或组件的功能和灵活性。
可在QuickTest中使用参数功能,通过参数化测试或组件所使用的值来增强测试或组件。
参数是一种从外部数据源或生成器赋值的变量。
QuickTest可以参数化测试或组件中的步骤和检查点中的值。
还可以参数化操作参数的值。
如果希望参数化测试或组件中多个步骤中的同一个值,可能需要考虑使用数据驱动器,而不是手动添加参数。
4.1参数化步骤和检查点中的值
例如,应用程序或网站可能包含一个带有编辑字段的表单,用户可以在该编辑字段中键入用户名。
你可能希望测试应用程序或网站是否读取该信息并将其正确显示在对话框中。
可以插入一个对已登录的用户名使用内置环境变量的文本检查点,以检查显示的信息是否正确。
通过参数化检查点属性的值,可以检查应用程序或网站如何基于不同的数据执行相同的操作。
例如,如果要测试MercuryTours示例网站,可以创建一个检查点,以便检查预订机票后该机票是否被正确预订。
假设您需要检查针对各种不同目的地所预订的航班是否正确。
可以为目的地信息添加一个数据表参数,而不是为每个目的地分别创建带有单独检查点的不同测试或组件。
对于测试或组件的每次循环,QuickTest都会针对不同目的地检查航班信息。
4.1.1参数化对象和检查点的属性值
可以在“对象属性”或“对象库”对话框中参数化对象的一个或多个属性的值。
可以在“检查点属性”对话框中参数化检查点的一个或多个属性的值。
采用下列方式可以打开“对象属性”对话框或“检查点属性”对话框:
⏹选择“步骤”>“对象属性”,或者右键单击某个步骤并选择“对象属性”。
将打开“对象属性”对话框。
⏹选择“工具”>“对象库”,单击“对象库”工具栏按钮,或者右键单击包含该对象的操作或组件,然后选择“对象库”。
将打开“对象库”对话框。
⏹选择“步骤”>“检查点属性”,或者右键单击该检查点并选择“检查点属性”。
然后在对话框的“配置值”区域中选择参数,
如果该值已经参数化,则“参数”框将显示该值的当前参数定义。
如果该值尚未参数化,则“参数”框将显示该值的默认参数定义。
4.1.2参数化操作的值
如果步骤中使用的方法或函数具有参数,则可以根据需要参数化该参数值。
例如,如果操作使用Click方法,则可以参数化x参数、y参数或这两者的值。
在关键字视图中选择已参数化的值时,将显示该参数类型的图标。
例如,在以下片段中,已将Set方法的值定义为随机数字参数。
每次运行测试或组件时,QuickTest都会在creditnumber编辑框中输入一个随机数字值。
可以使用视图中的“值”
列中的参数化图标来参数化操作值。
单击参数化图标
,打开“值配置选项”对话框,将显示当前定义的值。
选择“参数”。
如果该值已经参数化,则“参数”部分将显示该值的当前参数定义。
如果该值尚未参数化,则“参数”部分将显示该值的默认参数定义。
单击“确定”接受显示的参数语句并关闭该对话框。
选择一个尚未参数化的值时,QuickTest会为该值生成默认参数定义。
下表描述了如何确定默认参数设置:
执行参数化时
条件
默认参数类型
默认参数名
操作中的步骤或检查点的值
至少在当前操作中定义了一个输入操作参数
操作参数
在“操作属性”对话框的“参数”选项卡中显示第一个输入参数
嵌套操作的输入操作参数值
至少为调用该嵌套操作的操作定义了一个输入操作参数
操作参数
在调用操作的“操作属性”对话框的“参数”选项卡中显示第一个输入参数
顶层操作调用的输入操作参数值
至少为测试定义了一个输入参数
测试参数
在“测试设置”对话框的“参数”选项卡中显示第一个输入参数
组件中的步骤或检查点的值
至少为该组件定义了一个输入参数
组件参数
在“业务组件设置”对话框的“参数”选项卡中显示第一个输入参数
如果上述相关条件不为真,则默认参数类型为“数据表”。
如果接受了默认参数详细信息,QuickTest将用基于选定值的名称新建一个数据表参数。
4.2参数种类
QuickTest有四种类型的参数:
⏹测试、操作或组件参数,通过它可以使用从测试或组件中传递的值,或者来自测试中的其他操作的值。
为了在特定操作内使用某个值,必须将该值通过测试的操作层次结构向下传递到所需的操作。
然后,可以使用该参数值来参数化测试或组件中的步骤。
例如,假设要使用从运行(调用)测试的外部应用程序传递到测试中的某个值来参数化Action3中的一个步骤。
可将该值从测试级别传递到Action1(顶层操作)至Action3(Action1的子操作),然后使用该“操作”输入参数值(从外部应用程序传递的值)来参数化所需的步骤。
⏹数据表参数,通过它可以创建使用您所提供的数据多次运行的数据驱动的测试(或操作)。
在每次重复(或循环)中,QuickTest均使用数据表中不同的值。
例如,假设您的应用程序或网站包含一项功能,用户可以通过该功能从成员数据库中搜索联系信息。
当用户输入某个成员的姓名时,将显示该成员的联系信息,以及一个标记为“查看
可以参数化按钮的名称属性,以便在运行会话的每次循环期间,QuickTest可标识不同的照片按钮。
⏹环境变量参数,通过它可以在运行会话期间使用来自其他来源的变量值。
这些变量值可能是您所提供的值,或者是QuickTest基于您选择的条件和选项而生成的值。
例如,可以让QuickTest从某个外部文件读取用于填写Web表单的所有值,或者可以使用QuickTest的内置环境变量之一来插入有关运行测试或组件的计算机的当前信息。
⏹随机数字参数,通过它可以插入随机数字作为测试或组件的值。
例如,要检查应用程序处理大小机票订单的方式,可以让QuickTest生成一个随机数字,然后将其插入到“票数”编辑字段中。
4.2.1使用数据表参数
可以通过创建数据表参数来为参数提供可能的值列表。
通过数据表参数可以创建使用所提供的数据多次运行的数据驱动测试、组件或操作。
在每次重复中,QuickTest均使用数据表中不同的值。
例如,考虑MercuryTours示例网站,通过该网站可预订航班请求。
要预订航班,需要提供航班路线,然后单击“继续”按钮。
该网站将针对请求的路线返回可用的航班。
可通过访问网站并录制大量查询的提交来执行该测试。
这是一个既费时又费力的低效解决方案。
通过使用数据表参数,可以连续对多个查询运行测试或组件。
参数化测试或组件时,需要首先录制访问网站并针对所请求的一条路线来检查可用航班的步骤。
然后将录制的路线替换为某个数据表参数,并在数据表的全局表中添加自己的数据集,每条路线一个。
新建数据表参数时,将在数据表中添加新的一列,并将参数化的当前值放在第一行中。
如果要对值进行参数化并选择现有的数据表参数,则将保留所选参数的列中的值,并且这些值不会被参数的当前值覆盖。
表中的每个列都表示单个数据表参数的值列表。
列标题是参数名。
表中的每一行都表示QuickTest在测试或组件的单次循环期间为所有参数提交的一组值。
运行测试或组件时,QuickTest将针对表中的每一行数据运行一次测试或组件循环。
例如,如果测试在数据表的全局表中有十行,则运行十次循环。
在上面的例子中,当运行测试时,QuickTest降为每一个路线分别提交一个查询。
4.2.2使用环境变量参数
QuickTest可以插入环境变量列表中的值,该列表是可通过测试访问的变量和相应值的列表。
在测试运行的整个过程中,无论循环次数是多少,环境变量的值始终保持不变,除非在脚本中以编程方式更改变量的值。
QuickTest有以下三种环境变量:
用户定义的内部环境变量、用户定义的外部环境变量以及内置环境变量。
用户定义的内部环境变量--在测试内定义的变量。
这些变量与测试一起保存,并且只能在定义这些变量的测试内访问。
在“测试设置”对话框或“参数选项”对话框的“环境”选项卡中,可以创建或修改测试中用户定义的内部环境变量。
用户定义的外部环境变量--在活动外部环境变量文件中预定义的变量。
可根据需要创建任意多的文件,并为每个测试选择一个适当的文件,或者更改用于每个测试运行的文件。
内置环境变量--表示有关测试和运行测试的计算机的信息的变量,例如测试路径和操作系统。
从所有测试和组件中都可以访问这些变量,并且它们都被指定为只读变量
4.2.3使用随机数字参数
当选择“随机数字”作为参数类型时,可以通过“参数选项”对话框将参数配置为使用随机数字。
“值配置选项”对话框的“参数”部分与“参数选项”对话框非常相似。
数字范围--指定用于生成随机数字的范围。
默认情况下,随机数字范围介于0和100之间。
可通过在“从”和“到”框中输入不同的值来修改此范围。
该范围必须介于0和2147483647(包含)之间。
名称--指定参数的名称。
通过为随机参数指定名称可以在测试中多次使用同一个参数。
可以选择现有的命名参数,或者通过输入新的描述性名称来新建命名参数。
生成新随机数字--定义命名随机参数的生成计时。
选中“名称”复选框时会启用该框。
可以选择下列选项之一:
⏹为每次操作循环:
在每次操作循环结束时生成一个新数字。
⏹为每次测试循环:
在每次全局循环结束时生成一个新数字。
⏹为整个测试运行生成一次:
第一次使用参数时生成一个新数字。
在整个测试运行中,对参数使用同一个数字。
4.3参数化测试脚本
4.3.1定义参数
在上面的课程中我们学习了参数的种类以及参数化步骤和检查点中的值,现在我们使用Checkpoint脚本,在测试脚本中,纽约是个常数值,也就是说,每次执行测试脚本预定机票时,出发地点都纽约,现在,我们将测试脚本中的出发地点参数化,这样,执行测试脚本时就会以不同的出发地点去预定机票了。
1.首先,我们打开Checkpoint测试脚本,将脚本另存为“Parameter”,然后选择要参数化的文字:
在视图树中展开“Action1>Welcome:
MercuryTours>FindaFlight:
Mercury”。
2.在视图树中选择“fromPort”右边的“Value”字段,然后再点击参数化图标
,开启“ValueConfigurationOptions”对话窗口:
3.设置要参数化的属性,选择“Parameter”选择项,这样就可以用参数值来取代“NewYork”这个常数了,在参数中选择“DataTable”选项,这样这个参数就可以从QuickTest的DataTable中取得,将参数的名字改为“departure”。
4.点击“OK”确认,QuickTest会在DataTable中新增departure参数字段,并且插入了一行NewYork的值,NewYork会成为测试脚本执行使用的第一个值。
参数化以后可以看到树视图中的变化,在参数之前,这个测试步骤显示“foomPost…Select…NewYork”,现在,这个步骤变成了“foomPost…Select…DataTable("departure",dtGlobalSheet)”。
而且当点击Value字段时,Value字段会显示如图所示:
,表示此测试步骤已经被参数化,而且其值从DataTable中的departure字段中获得。
5.在departure字段中加入出发点资料,使QuickTest可以使用这些资料执行脚本。
在departure字段的第二行,第三行分别输入:
Portland、Seattle。
6.保存测试脚本。
4.3.2修正受到参数化影响的步骤
当测试步骤被参数化以后,有可能会影响到其它的测试步骤也要参数化,例如我们为了验证在“FlightConfirmation”网页中是否出现“NewYork”(第三章创建文字检查点),在网页上添加了一个文字检查点。
那么,就要对出发地的文字检查点作参数化,以符合对出发地点参数化的预期结果。
修正文字检查点,首先在树视图中,展开“Action1>Welcome:
MercuryTours>FlightConfirmation:
Mercury”页面,然后点击鼠标右键,选择“CheckpointProperties”,打开“TextCheckpointProperties”对话窗口:
在“CheckedText”的Constant字段中显示为“NewYork”,表示测试脚本在每次执行时,这个文字检查点的预期值都为“NewYork”。
我们选择Parameter,点击旁边的“ParameterOptions”按钮
,打开“ParameterOptions”对话窗口:
在参数类型选择框选择“DataTable”选项,在名字选择框选择“departure”选项,指明这个文字检查点使用departure字段中的值当成检查点的预期值。
点击“OK”关闭窗口,这样文字检查点也被参数化了。
4.3.3执行并分析使用参数的测试脚本
参数化测试脚本后,我们运行Parameter测试脚本。
QuickTest会使用DataTable中departure字段值,执行三次测试脚本。
执行测试脚本:
点击工具栏上的“Run”按钮,开启Run对话窗口,选取“Newrunresultsfolder”,其余为默认值,点击“OK”开始执行脚本。
当脚本运行结束后,会开启测试结果窗口。
在树视图中,展开“ParameterIteration2>Action1Summary>WelcomeMercuryTours>FlightConfirmation:
Mercury”,选择“Checkpoint"NewYork"”,显示如下图:
在检查点“Details”窗口中,显示Portland为预期记过同时也是实际的值,所以文字检查点为通过。
同时也可以看到在下方的“Application”窗口中,显示机票的出发地点也是Portland。
在图中可以看出,虽然每次执行时,文字检查点的结果是通过的,但是第二次与第三次的执行结果仍然为失败。
这是因为出发地点的改变,造成在表格检查点中的机票价钱改变,导致表格检查点失败。
在以后的课程中,我们将学习修正表格检查点,让QuickTest自动更新表格检查点的预期结果,就可以检查正确的票价了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QTP 完全 指导 学习 教程 54