细品慢酌QuickTest关键视图(2)

简介:

作为接触自动化的测试工程师都会接触到关键字视图,好多崇拜自动化的测试工程师,说真正搞大了,搞牛了自动化不需要接触关键字视图。其实真正参与过自动化,反过来思考一下,其实什么都不是绝对的,实际过程中往往许多工作关键字视图与专家视图合理结合回取得速度与效率双重的效果。所以QTP的关键字视图不单单是提供给编程基础不扎实,专家视图使用不熟悉的测试工程师使用,而且也是QTP的一大利器。QuickTest不会无缘无故设计这样一个模块的,亲,你说呢?本篇博文接上篇博文,继续对关键字视图进行深入剖析。

        以自带的Flight(C/S)订票系统为案例设计两个测试场景,如下表所示。

测试场景1


操作

数据

期望结果

场景1

1. 输入用户名

2. 输入密码

3. 点击OK

正确的数据

用户名/密码

mercury/mercury

正确登录系统


测试场景2


操作

数据

期望结果

场景2

1. 输入用户名

2. 点击OK

正确的数据

用户名

mercury

提示请输入密码的错误信息


    录制完毕的场景1测试脚本与场景2测试脚本,有相同之处,也有不同之处。

    相同之处即两个测试场景都包含对象Agent Name、OK对象,并且记录了对这两个对象执行的操作。不同之处是场景2相比场景1多录制对Password对象,并且记录了对Password对象的操作。

    如录制了测试场景2脚本,如何对场景2测试脚本进行维护,实现场景1的需求呢?

    测试对象管理一章中通过两步来实现场景2到场景1的变化:

1. 场景2中添加Password对象;

2. 关键字视图中添加Password对象后,设置对Password对象的操作与值。

       而维护脚本过程中如需要设计函数、方法等,那又该如何处理呢?而这些工作都可以通过步骤生成器来完成。关键字视图中还可以对对象设定操作、设定逻辑语句等。本章将使用场景1、场景2作为场景案例。

1.1.步骤生成器

    • 关键字视图中使用步骤生成器可以完成哪些工作呢? 

    • 操作步骤的维护。 

    • 测试对象、对象属性的维护。 

    • 测试对象的操作方法的设置。 

    • 添加库函数。 

    • VBScript 函数的调用。 

    • 内置函数的调用。 

    维护对象、插入操作步骤、设置操作方法

1. 录制测试场景2,将测试脚本进行保存,测试脚本命名为添加对象

2. 将场景2测试脚本另存为场景1测试脚本。打开场景1测试脚本,添加Password对象(借助AS视图)至对象库。

3. 如图所示,切换至关键字视图,鼠标点击关键字视图中的任一空白行。点击菜单栏【Insert】—【Step】—【Step Generator…】或按F7,弹出步骤生成器窗口。

clip_image001

        4. 如图所示,步骤生成器窗口中Category选中“Test Objects”,Object选中“Password”,

clip_image002

5. Operation选择“Set”,Arguments中将Text属性值设置为“mercury”。

6. 如图所示,切换至关键字视图中,鼠标左键单击Password对象操作行,通过鼠标拖拽将Password对象拖拽至Agent Name对象。

clip_image003

    7. 如图所示,回放测试脚本,可观察到脚本成功回放,实现了场景2至场景1的变化。

clip_image005

通过步骤生成器可插入的对象类别为三类,如下所示:

    • 测试对象(Test Objects)— 通过该选项可选择插入步骤中的测试对象和方法。

    • 实用程序对象 (Utility Objects)通过该选项可选择插入步骤的实用程序对象和方法。

    • 函数(Functions Objects)— 通过该选项可以使用内部或外部的引用函数,并设定函数的参数值。 

        参数列表

        如图所示,无论是插入测试对象(操作步骤),还是使用内置函数都需要设定参数,而参数列表中列出了测试对象或函数中需要赋值的参数。可通过三种方式给参数赋值:数据表、环境变量、随机数。

clip_image006clip_image007

       参数列表中,参数包括三种类型:

    • 强制参数 - 参数名称后面有一个红色星号 (*),该参数必须要填写。 

    • 可选参数 - 参数名称后面没有红色星号 (*),可以为参数指定参数值或者不设置任何值。 

    • 已参数化的参数 - 通过单击参数化按钮(<#>) ,可设定参数值或通过DataTable、Environment或Randmon Number进行参数化。 













本文转自hblxp32151CTO博客,原文链接:http://blog.51cto.com/starpoint/1279828 ,如需转载请自行联系原作者
相关文章
|
6月前
|
关系型数据库 MySQL
Mysql基础第二十五天,使用视图
Mysql基础第二十五天,使用视图
31 0
Mysql基础第二十五天,使用视图
|
12月前
|
BI
利用 ALV 实现增删改查系列之四:如何捕捉 SAP ABAP ALV 报表行项目删除时抛出的事件试读版
利用 ALV 实现增删改查系列之四:如何捕捉 SAP ABAP ALV 报表行项目删除时抛出的事件试读版
|
JavaScript Android开发
第二十六章:自定义布局(十二)
更多附加的可绑定属性附加的可绑定属性也可以在XAML中设置并使用Style设置。 为了了解它是如何工作的,让我们检查一个名为CartesianLayout的类,它模仿一个二维的,四象限的笛卡尔坐标系。
538 0
|
JavaScript Android开发
第二十六章:自定义布局(十一)
重叠的子项Layout 类可以在其子项上调用Layout方法,以便子项重叠吗?是的,但这可能会在你的脑海中提出另一个问题:什么决定孩子们的呈现顺序?哪些孩子看似坐在前台,可能部分或完全掩盖了背景中显示的其他孩子?在某些图形环境中,程序员可以访问名为Z-index的值。
640 0
|
测试技术 数据安全/隐私保护