75
QuickTest Professional 8 Tutorial oldsidney 学习笔记 http://www.oldsidney.idv.tw http://blog.joycode.com/oldsidney

QuickTest Professional 8 Tutorial - pudn.comread.pudn.com/downloads159/ebook/712183/QTP.pdf · 2008-08-13 · 使用QuickTest 可以加速整个测试的过程,并且在建置(build)完新版本的应用程序或网站后,可

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

QuickTest Professional 8 Tutorial

oldsidney 学习笔记 http://www.oldsidney.idv.tw

http://blog.joycode.com/oldsidney

oldsidney 学习笔记 http://www.oldsidney.idv.tw

目 录

1. 欢迎使用QUICKTEST PROFESSIONAL 8 TUTORIAL...............................................................................4 1.1 使用本TUTORIAL...........................................................................................................................................4

2. QUICKTEST PROFESSIONAL 简介...............................................................................................................5 2.1 自动测试的好处 ...........................................................................................................................................5 2.2 测试流程 .......................................................................................................................................................5 2.3 QUICKTEST窗口 ............................................................................................................................................7 2.4 使用MERCURY TOURS范例网站 ...................................................................................................................9

2.4.1 修改浏览器的设定 ...............................................................................................................................9 2.4.2 第一次使用Mercury Tours 范例网站.................................................................................................10

3. 录制测试脚本 .....................................................................................................................................................12 3.1 录制测试脚本前的准备动作 .....................................................................................................................12 3.2 录制测试脚本 .............................................................................................................................................12 3.3 分析KEYWORD VIEW中的测试脚本 ...........................................................................................................15

4. 执行并分析测试脚本 .........................................................................................................................................18 4.1 执行测试脚本 .............................................................................................................................................18 4.2 分析测试结果 .............................................................................................................................................20

5. 建立检查点 .........................................................................................................................................................23 5.1 了解检查点的种类 .....................................................................................................................................23 5.2 检查对象 .....................................................................................................................................................25 5.3 检查网页 .....................................................................................................................................................28 5.4 检查文字 .....................................................................................................................................................30 5.5 检查表格 .....................................................................................................................................................32 5.6 执行并分析使用检查点的测试脚本..........................................................................................................35

6. 参数化 .................................................................................................................................................................40 6.1 定义数据表参数 .........................................................................................................................................40 6.2 在数据表中输入参数 .................................................................................................................................42 6.3 修正受到参数化影响的测试步骤..............................................................................................................42 6.4 执行并分析使用参数的测试步骤..............................................................................................................44

7. 建立输出值 .........................................................................................................................................................47 7.1 建立一个输出值 .........................................................................................................................................47 7.2 执行并分析使用输出值的测试脚本..........................................................................................................50

8. 使用万用字符表示法 .........................................................................................................................................52 8.1 万用字符的表示法 .....................................................................................................................................52 8.2 使用万用字符表示法 .................................................................................................................................52 8.3 执行并分析使用万用字符表示法的测试脚本..........................................................................................54

9. 将测试脚本切割成多个动作 .............................................................................................................................56 9.1 使用多个动作 .............................................................................................................................................56 9.2 建立新动作 .................................................................................................................................................56

9.2.1 录制测试脚本 .....................................................................................................................................56 9.2.2 将测试脚本分成二个动作 .................................................................................................................58

- 2 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

9.3 插入新动作 .................................................................................................................................................60 9.3.1 将动作设定成可再使用的动作 (Reusable Actions) .....................................................................62

9.4 插入已存在的动作 .....................................................................................................................................63 9.4.1 插入呼叫(call)的动作 ...................................................................................................................63 9.4.2 插入一个动作的复本 .........................................................................................................................65

9.5 对动作作参数化 .........................................................................................................................................67 9.6 执行并分析多个动作的测试脚本..............................................................................................................70

10. 从这里出发 .....................................................................................................................................................72 10.1 开始测试你的应用程序 .........................................................................................................................72 10.2 取得额外的信息 .....................................................................................................................................73

10.2.1 印好的文件 .........................................................................................................................................73 10.2.2 在线资源 .............................................................................................................................................73

- 3 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

1. 欢迎使用 QuickTest Professional 8 Tutorial 欢迎使用 QuickTest Professional Tutorial。本手册是 QuickTest 的自我学习手册。当你完成此手册

教学之后,可以对 QuickTest 有基本的认识,并将你所学习到的技巧,应用到你的测试工作中。

使用 QuickTest 你可以测试标准的网页、一般 Windows 应用程序、Visual Basic 应用程序、

ActiveX 控件、多媒体对象等。

本手册将引导你学习如何使用 QuickTest 建立自动化测试、执行、分析测试结果。

本手册分成 9 个课程,在每一个课程中你会以 QuickTest 内附的范例 Mercury 旅游网站作为练习的

对象,建立并执行自动化测试脚本(script)。

1.1 使用本 Tutorial

本手册分成 9 个课程,在每一个课程中你会以 QuickTest 内附的范例 Mercury 旅游网站作为练习的

对象,建立并执行自动化测试脚本(script)。

当你完成本手册的课程之后,就可以将这些技巧应用在测试你的网站上了。

QuickTest Professional 简介:比较自动测试与手动测试的差别、介绍 QuickTest 的测试流

程、并熟悉 QuickTest 使用者接口、以及 Mercury Tours 范例网站。

录制测试脚本:教导你如何录制测试脚本,并且对测试脚本 Keyword View 做个介绍。

录制并分析测试脚本:示范如何执行测试脚本以及检视测试脚本的执行结果。

建立检查点:说明如何建立在测试脚本中检查点以验证网站上的信息是你预期的。

参数化:示范如何透过参数化,让你可以在测试脚本中使用多组资料执行测试脚本。

建立输出值:教导你如何将网页上的数据,输出到参数中。

使用万用字符:教导你在测试脚本中如何使用万用字符。

将测试脚本切割成多个动作:说明如何将测试脚本切割成多个动作,让测试脚本更模块化。

从这里出发:告诉你哪里可以获得更多关于 QuickTest 的信息。

- 4 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

2. QuickTest Professional 简介

2.1 自动测试的好处

假如你执行过人工测试,你一定了解人工测试的缺点,人工测试非常浪费时间而且需要投入大量人

力。使用人工测试的结果,往往是在应用程序交付前,无法对应用程序的所有功能都作过完整测

试。

使用 QuickTest 可以加速整个测试的过程,并且在建置(build)完新版本的应用程序或网站后,可

以重复使用测试脚本进行测试。

以 QuickTest 执行测试,就与人工测试一样,QuickTest 会仿真鼠标的动作与键盘的输入,不过

QuickTest 比人工测试快多了。

自动测试的好处

快速 (Fast) QuickTest 执行测试比人工测试速度快多了。

可靠 (Reliable) QuickTest 每一次的测试都可以正确的执行相同的动作,可以避免人工测

试的错误。

可重复

(Repeatable)

QuickTest 可以重复执行相同的测试。

可程序化

(Programmable)

QuickTest 可以程序的方式,撰写复杂的测试脚本,以带出隐藏在应用程

序中的信息。

广泛的 (Comprehensive)

QuickTest 可以建立广泛的测试脚本,涵盖应用程序的所有功能。

可再使用

(Reusable)

QuickTest 可以重复使用测试脚本,即使应用程序的使用接口已经改变。

2.2 测试流程

QuickTest 的测试流程包含七大阶段:

1. 录制测试脚本前的准备

在测试前需要先确认你的应用程序以及 QuickTest 是符合你的测试需求的。

确认你已经知道如何对应用程序进行测试,例如要测那些功能、操作步骤、输入的数据、预

期的结果等。

- 5 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

同时你也应该检查一下 QuickTest 的设定,如 Test Settings(【Test】>【Settings】)以及

Options 对话窗口(【Tools】>【Options】),以确保 QuickTest 会适切的录制并储存信

息。例如,你应该确认一下 QuickTest 的 Object Repository 是以什么模式储存信息的。

2. 录制测试脚本

当你浏览你的网站或是操作你的应用程序时,QuickTest 会在 Keyword View 中以表格的方式

显示录制的操作步骤。每一个操作步骤都是使用者在录制时的操作,如在网页上点选一个超

级链接(link),或是按下窗口上的按钮。

3. 加强测试脚本

在测试脚本中加入检查点,你可以检查网页超级链接、对象属性或是字符串,以验证应

用程序的功能是否正确。

将录制的固定值(hard code)参数以取代,让你使用多组的数据测试你的应用程序。

使用逻辑(logic)或是条件(conditional)判断式,让你可以进行更复杂的测试。

4. 对测试脚本除错(debug)

在修改过测试脚本之后,你可能会需要对测试脚本作除错的动作,以确保测试脚本能正常且

流畅的执行。

5. 在新版应用程序或网站上执行测试脚本

透过执行测试脚本,QuickTest 会在新版的网站或是应用程序上执行测试,检查应用程序的功

能是否正确。

6. 分析测试结果

分析测试执行的结果,找出应用程序的问题所在。

7. 回报问题(defect)

如果你也安装了 Quality Center(TestDirector),则你可以将发现的问题回报到 Quality Center(TestDirector)的数据库中。Quality Center(TestDirector)是 Mercury 的测试管理

工具。

- 6 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

2.3 QuickTest 窗口

在你开始录制测试脚本之前,你应该先熟悉 QuickTest 的窗口。

以下的画面就是 QuickTest 的主窗口。

QuickTest 的主窗口包含下列的组件:

Title bar:显示目前测试脚本的名称。

Menu bar:显示 QuickTest 的菜单。

File toolbar:管理测试脚本常用的工具列。

- 7 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

Test toolbar:录制测试脚本常用的工具列。

Debug toolbar:对测试脚本除错常用的工具列。

注意:当你第一次执行 QuickTest 时 Debug toolbar 是不会显示的。你可以设定【View】>【Toolbars】>【Debug】让 Debug toolbar 出现。

本手册并未包含如何对测试脚本除错的课程,假如你需要额外的信息,请参考 QuickTest Professional User’s Guide。

Action toolbar:包含常用的功能按钮,以及一个显示测试动作(action)的下拉式清单

(list),方便你检视整个测试脚本中的测试动作。

- 8 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

注意:当你第一次执行 QuickTest 时 Action toolbar 是不会显示的。你可以设定【View】>【Toolbars】>【Action】让 Action toolbar 出现。

当你在测试脚本中加入 reusable 或 external action,则 Action toolbar 就会自动显示,假如你

需要额外的信息,请参考 QuickTest Professional User’s Guide。

Test pane:包含 Keyword View 以及 Expert View。

Active Screen pane:包含 Active Screen。

Data Table:当你对测试脚本做参数化时存放参数数据的地方,除了一个 Global 的数据表

外,每一个 action 也会有各自的资料表。

Debug Viewer pane:协助你对测试脚本除错(debug)。Debug Viewer pane 包含 Watch Expressions、Variables 以及 Command。

注意:当你第一次执行 QuickTest 时 Debug Viewer 是不会显示的。你可以设定【View】>【Debug】让 Debug Viewer 出现。

假如你需要额外的信息,请参考 QuickTest Professional User’s Guide。

Status bar:显示测试脚本的状态。

接下来的课程会详细介绍 Test 以及 Standard 工具列。

而 Debug toolbar 会在 QuickTest Professional User’s Guide 的「Debugging Tests」章节中详细说

明。

至于 Action toolbar 会在「将测测试脚本切割成多个动作」中介绍。

除了工具列以外,QuickTest 也提供快速键,假如你需要额外的信息,请参考 QuickTest Professional User’s Guide 的「QuickTest at a Glance」章节。

接下来花几分钟的时间熟悉一下 QuickTest 的使用接口吧!

2.4 使用 Mercury Tours 范例网站

Mercury Tours 范例网站是一个提供预订机票服务的网站,本手册的所有课程,都是以 Mercury Tours 范例网站为练习的对象。

请花点时间熟悉一下 Mercury Tours 范例网站的操作。

2.4.1 修改浏览器的设定

假如你是使用 Internet Explorer 浏览器,请你先取消「自动完成」的功能,不要让浏览器帮你自动

输入账号与密码,以确保在录制的过程中,所有的操作都会被录制下来。

- 9 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

取消「自动完成」的设定:

1. 开启 Internet Explorer 浏览器,点选【工具】>【因特网选项】>【内容】。

2. 点选【个人信息】中的【自动完成】按钮,开启【自动完成设定】对话窗口。

3. 在【使用「自动完成」】取消【窗体上的使用者名称和密码】选项。

4. 点选【确定】按钮,储存设定并关闭对话窗口。

2.4.2 第一次使用 Mercury Tours 范例网站

在你开始使用 Mercury Tours 范例网站,进行本手册的练习之前,你要先在 Mercury Tours 范例网

站注册使用者账号。

使用 Mercury Tours 范例网站:

1. 开启 Mercury Tours 范例网站

在你的浏览器中输入以下的URL:http://newtours.mercuryinteractive.com 会开启Mercury Tours范例网站的首页。

2. 注册使用者

要登入并使用 Mercury Tours 你必须要注册使用者账号。

在 Mercury Tours 的首页点选【REGISTER】按钮,会开启【Register】网页。

在【User Information】输入你的使用者账号、密码,并再确认密码(其它的数据域位你可以

不填)。

- 10 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

点选 SUBMIT 按钮。Mercury Tours 会出现确认网页,接着点选【SIGN-ON】按钮,会开启

【Sign-on】网页。输入你刚刚注册的使用者账号与密码后,按下【SUBMIT】按钮。【Flight Finder】网页会被开启。

3. 探索 Mercury Tours 范例网站

从【Flight Finder】网页开始,按照画面上的指示试着预订机票。

注意,在 Book a Flight 网页,你不需要填写真实的旅客信息,以及信用卡卡号。你只需要在

标示为红色的字段中添入虚构的数据就可以了 (你可以输入假的信用卡卡号,如:

8888888888888888)。

4. 结束订票动作

当你完成订票动作后,在【Flight Confirmation】网页上点选【LOG OUT】按钮或是点选画

面上方的【SIGN-OFF】按钮。

你也可以在【Sign-on】网页重新登入 Mercury Tours 范例网站。

5. 关闭浏览器

现在你已经知道如何操作 Mercury Tour 范例网站了,接下来可以开始使用 QuickTest 录制测试脚

本了!

- 11 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

3. 录制测试脚本 当你浏览网站或使用应用程序时,QuickTest 会纪录你的操作步骤,并产生测试脚本。

当你停止录制测试脚本后,会看到 QuickTest 在 Keyword View 中以表格的方式显示测试脚本的操

作步骤(steps)。

3.1 录制测试脚本前的准备动作

在测试前需要先确认你的应用程序以及 QuickTest 是符合你的测试需求的。

在开始本手册的所有课程前,请先确认以下事项:

你已经在 Mercury Tours 范例网站注册一个新的使用者账户。请参考 「第一次使用 Mercury Tours 范例网站」

假如你是使用 Internet Explorer 浏览器,请你先取消「自动完成」的功能。请参考「修改浏

览器的设定」

关闭所有的浏览器窗口。

3.2 录制测试脚本

接下来,你会录制一个测试脚本,在 Mercury Tours 范例网站上预订一张从纽约(New York)到

旧金山(San Francisco)的机票。

1. 执行 QuickTest 并开启一个全新的测试脚本

要开启 QuickTest,请点选【开始】>【程序集】>【QuickTest Professional】>【QuickTest Professional】。 在【Add-in Manager】勾选【Web Add-in】,并取消其它的 add-ins。然后点选【OK】按钮关闭【Add-in Manager】窗口,进入 QuickTest Professional 主窗口。

注意:QuickTest Professional 会花点时间以加载你选取的 add-ins。

假如出现【Welcome】窗口,点选【Blank Test】。 或者,点选【File】>【New】,或是按下工具列上的【New】按钮。 QuickTest Professional 会开启全新的测试脚本档案。

假如 QuickTest Professional 已经开启,检查【Help】>【About QuickTest Professional】看目前加载了哪些 add-ins 。如果没有加载【Web Add-in】,你必须关

闭并重新开启 QuickTest Professional,然后在【Add-in Manager】勾选【Web Add-in】。

- 12 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

点选【File】>【New】,或是按下工具列上的【New】按钮。QuickTest Professional会开启全新的测试脚本档案。

注意:假如在执行 QuickTest Professional 时,未开启【Add-in Manager】,请点选

【Tools】>【Options】,在【General】页签勾选【Display Add-in Manager on startup】,

下一次你执行 QuickTest Professional 就会看到【Add-in Manager】窗口开启了。

2. 开始录制测试脚本

点选【Test】>【Record】或是点选工具列上的【Record】按钮。会开启【Record and Run Settings】对话窗口。

在【Web】页签,勾选【Open the following browser when a record or run session begins】。 从【Type】下拉列表选择使用的浏览器,并且在【Address】输入

ttp://newtours.mercuryinteractive.com。

请确认【Do not record and run on browsers that are already open】与【Close the browser when the test is closed】这二个选项都已经勾选了。

在【Windows Applications】页签,勾选【Record and run on these applications(opened on session start)】,而且不要选取任何的应用程序。

此设定可以避免你录制到其它应用程序(如 Outlook)的操作。

- 13 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

点选【OK】。

QuickTest 会开启浏览器浏览 Mercury Tours 网站,并且开始录制测试脚本。

3. 登入 Mercury Tours Web site

在【User Name】与【Password】输入你当初注册的账号与密码。

点选【Sign-In】。

开启【Flight Finder】网页。

4. 输入订票数据

输入以下的订票数据:

Departing From:New York

On:Dec 29

Arriving In:San Francisco

Returning:Dec 31

Service Class:Business class

其它字段则是保留默认值,然后点选【CONTINUE】开启【Select Flight】网页。

- 14 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

注意:在输入日期时请勿点选【View Calendar】按钮,因为这个按钮会开启一个 Java 的月

历,而你并没有加载 Java Add-in,会录制不到这个动作。

要检查载入哪些 add-ins 请点选【Help】>【About QuickTest Professional】。要改变加载的 add-in,你必须关闭再重新开启 QuickTest Professional。

5. 选择飞机航班 保留默认值,点选【CONTINUE】按钮,开启【Book a Flight】页面。

6. 输入必要字段 在标有红色字体的必要字段输入旅客名字以及信用卡号码(你可以输入虚构的信用卡号码,

例如:8888888888888888)。 在【Billing Address】勾选【Ticketless Travel】。 按下网页下方的【SECURE PURCHASE】按钮,开启【Flight Confirmation】网页。

7. 检视并完成订票动作

检视订票数据,并点选【BACK TO HOME】回到 Mercury Tours 网站的首页。

8. 停止录制

在 QuickTest,点选工具列上的【Stop】按钮,停止录制。

你已经完成了预定「纽约-旧金山」机票的动作,QuickTest 已经录制了从你按下【Record】按钮后,到你按下【Stop】按钮之间所有的操作。

9. 储存测试脚本

选取【File】>【Save】或是点选工具列上的【Save】按钮,开启【Save】对话窗口。

建立一个【Tutorial】目录,将测试脚本命名为【Recording】。

勾选【Save Active Screen files】。

按下【存盘】按钮,测试脚本名称(Recording)会出现在 QuickTest 窗口的标题列。

3.3 分析 Keyword View 中的测试脚本

当你录制测试脚本时,QuickTest 会将你的每一个操作录制下来,并在 Keyword View 以类似

Excel 工作表的方式显示所录制的测试步骤。

在 Keyword View 的中每个字段都有其意义:

【Item】:以阶层式的图标显示这个操作步骤所作用到的组件(测试对象(test object)、工

具对象(utility object)、函数呼叫(function call)或脚本(statement))。

【Operation】:要在这个作用到的组件上执行的动作,如点选(Click)、选取(Select)。

【Value】:执行动作的参数(argument),例如当鼠标点选一张图片时是用左键还是右键。

- 15 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

【Assignment】:使用到的变量。

【Comment】:你在测试脚本中加入的批注。

【Documentation】:自动产生用来描述此操作步骤的英文说明。

注意:您可以设定要显示或隐藏哪些字段。只要在字段标题上点选鼠标右键,再从清单中勾选要显

示的字段就可以了。

您可以点选【View】>【Expend All】检视测试脚本的每一个步骤。

脚本中的每一个步骤在 Keyword View 中都会以一列来显示,其中包含用来表示此组件类别的图标

以及此步骤的详细数据。

举例来说,下图表示这个操作步骤,在 Mercury Tour 网站的【Select a Flight: Mercury】这个网页

中点选【reserveFlights】这张图片。

- 16 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

下表针对一些常见的操作步骤做详细说明:

步骤 说明

Action1 是一个动作的名称

Welcome: Mercury 是被浏览器开启的网站的

名称。

Welcome: Mercury Tours 是网页的名称。

userName 是 edit box 的名称。 Set 是在这个 edit box 上执行的动作。 mercury 则是被输入的值。

password 也是 edit box 的名称。 SetSecure 是在这个 edit box 上执行的动作,

此动作有加密的功能。 4082820183…则是加密过的密码。

Sign-In 是图像对象的名称。 Click 是在这个图像上执行的动作。 2, 2 则是这个图像被点选的 X, Y 坐标。

花点时间仔细看一下整个 Keyword View 所显示的信息,并与你刚刚录制的动作做个对照,相信您

会更有感觉。

假如针对 Keyword View 需要额外的信息,请参考 QuickTest Professional User’s Guide。

- 17 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

4. 执行并分析测试脚本 当你执行测试脚本时,QuickTest 会开启应用程序或网站并执行当初录制的动作,并且在执行完

后,开启测试脚本的执行结果。

4.1 执行测试脚本

接下来你将会执行你在「录制测试脚本」课程中录制的测试脚本。

1. 执行 QuickTest 并开启刚录制的测试脚本

假如 QuickTest 没开启,点选【开始】>【程序集】>【QuickTest Professional】>【QuickTest Professional】。

假如开启欢迎窗口,点选【Open Existing】。

假如没开启欢迎窗口,点选【File】>【Open】或是点选工具列上的【Open】按钮。

在【Open Test】对话窗口,选择刚刚录制的「Recording」测试脚本,然后点选【开启】。

2. 确认所有画面都会储存在测试结果中

QuickTest 可以让你将所有的画面储存在测试结果中。在本课程中,所有的画面都要储存在测

试结果中。

点选【Tools】>【Options】选择【Run】页签,在【Save step screen capture to test results】选项中,选择【Always】。

点选【OK】关闭【Options】对话窗口。

3. 开始执行你的测试脚本

点选【Run】按钮,或是点选【Test】>【Run】,开启【Run】对话窗口。

勾选【New run results folder】,并且接受预设的测试结果名称。

点选【OK】关闭【Run】对话窗口。

- 18 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

当 QuickTest 开启你的浏览器并且执行测试脚本时,请仔细的观察 QuickTest 如何执行当初录制的

操作。同时在 QuickTest 的 Keyword View 会出现一个黄色的小箭头,指示目前正在执行的测试步

骤。

- 19 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

4.2 分析测试结果

当 QuickTest 执行完测试脚本,会自动开启测试结果窗口。

一开始时,测试结果窗口分成二个部份显示测试执行的结果。

左半边显示 test results tree,以阶层图标的方式显示测试脚本所执行的步骤。你可以点选(+)检视每一个步骤,所有的执行步骤都会以图示的方式表示。你可以设定 QuickTest 以不同的

资料执行整个测试或是某个动作,每一次的执行称为一个反复(iteration),而且每个反复都

会被编号(目前你执行的测试脚本只有一次反复)。

右半边则是显示测试结果的详细信息。在第一个表格会显示哪些反复是通过的、哪些反复是

失败的。第二个表格则是显示测试脚本的检查点,哪些是通过的,哪些是失败的,以及有几

个警告讯息。

由于 QuickTest 可以依照当初录制的操作执行测试脚本,所以执行结果是通过的。接下来你将观察 QuickTest 执行测试脚本的详细结果,以及当你点选某个测试步骤时,会出现什么样的详细信息。

1. 检视某个测试步骤的详细信息

- 20 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

在 test results tree,展开(+)【Test Recording Summary】>【Recording Iteration 1 (Row 1)】> 【Action1 Summary】>【Welcome Mercury Tours】>【Find a Flight: Mercury】。

选取 test results tree 中的【”fromPort":Select "New York”】。

则测试结果窗口会变成三个部份,分别显示:

左半边是 Test results tree:有一个测试步骤被选取

右上方是 Test results detail:被选取的测试步骤,其测试结果

右下方是 Active Screen:显示此测试步骤执行时撷取下来的画面

当你点选 test results tree 上的网页图示,你会在【Active Screen】中看到执行时的画面。当

你点选 test results tree 上的测试步骤(在某个对象上执行某个动作),除了显示当时的画面

外,此对象还会被粉红色的框框框住。在上面的例子中,点选 test results tree 上的

【”fromPort":Select "New York"】,【Active screen】会显示被框住的【Departing From】

下拉式清单。

2. 关闭测试结果窗口

- 21 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

点选【File】>【Exit】。

现在,你已经成功的建立并执行一个测试脚本了。

- 22 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

5. 建立检查点 在前一个课程,你建立了一个可以成功在 Mercury Tours 范例网站上执行的预定机票测试脚本。接

着你将会建立检查点,以验证网站的执行结果是正确的。

5.1 了解检查点的种类

QuickTest Professional 提供以下的检查点:

检查点类型 说明 范例

标准检查点 检查对象的属性 检查某个 radio button 是否被选取

图片检查点 检查图片的属性 检查图片的来源文件是正确的

表格检查点 检查表格的内容 检查表格内的字段内容是正确的

网页检查点 检查网页的属性 检查网页加载的时间或是网页是否含有不正确的连结

(link)

文字/ 文字区域检查点

检查网页上或是窗

口上该出现的文字

是否正确

检查订票后是否正确出现订票成功的文字

图像检查点 撷取网页或窗口的

画面检查画面是否

正确

检查网页 (或是网页的某一部份) 是否如预期的呈现

数据库检查点 检查数据库的内容

是否正确 检查数据库查询的值是否正确

Accessibility 检

查点 Identifies areas of a Web site to check for Section 508 compliancy

Check if the images on a Web page include ALT properties, required by the W3C Web Content Accessibility Guidelines.

XML 检查点 检查 XML 文件的

内容 注意:XML 档案检查点是用来检查特定的 XML 档案;

XML 应用程序检查点则是用来检查网页内所使用的

XML 文件。

你可以在录制过程中建立检查点,也可以在录制完成后再建立检查点。接下来的课程,要教导你如

何在「录制测试脚本」课程的测试脚本上建立检查点。

- 23 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

注意:When QuickTest creates a checkpoint, it assigns a name based on information inside the checkpoint—the checked value, for example. The checkpoint name remains unchanged, even if you subsequently modify the information on which it was based. Keep this in mind when looking for checkpoints displayed in the Tree View. However, note that QuickTest may shorten the name displayed in the Tree View.

要进一步了解如何建立检查点,请参考 QuickTest Professional User’s Guide。

- 24 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

5.2 检查对象

在这个课程,你会在 Book a Flight 网页建立标准检查点。这个检查点是用来检查旅客姓氏。

1. 执行 QuickTest 并开启「Recording」测试脚本

假如 QuickTest 没开启,点选【开始】>【程序集】>【QuickTest Professional】>【QuickTest Professional】。

假如开启欢迎窗口,点选【Open Existing】。

假如没开启欢迎窗口,点选【File】>【Open】或是点选工具列上的【Open】按钮。

在【Open Test】对话窗口,选择刚刚录制的「Recording」测试脚本,然后点选【Open】。

2. 将测试脚本另存成名为「Checkpoint」测试脚本

点选【File】>【Save As】。将测试脚本存档成「Checkpoint」。

3. 确认【Active Screen】是开启的

假如你没有看到 QuickTest 右下方的【Active Screen】,点选工具列上的【Active Screen】按钮,或是点选【View】>【Active Screen】。

4. 选取要建立检查点的网页

你想要在使用者输入姓氏后,建立一个检查点检查 First Name edit box 的属性。

在 Keyword View 中,展开(+)【Action1】>【"Welcome: Mercury Tours"】>【"Book a Flight: Mercury"】。

由于输入使用者姓氏的测试步骤是【"passFirst0" Set...】这个步骤,所以你要选取

【"passFirst0" Set...】下面的测试步骤以便建立检查点。

选取这个测试步骤后,在【Active screen】会显示【Book a Flight】网页,而且被选取的对

象也会被框起来。你也可以看到旅客的姓氏出现在 First Name edit box 中。

5. 建立一个标准检查点

对【Active Screen】中的 First Name edit box 点选鼠标右键,选取【Insert Standard Checkpoint】。会开启【Object Selection – Checkpoint Properties】对话窗口。

- 25 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

确认【WebEdit: passFirst0】被选取后,点选【OK】。

会开启【Checkpoint Properties】对话窗口。

对话窗口会显示对象的属性:

【name】是这个对象的名称

【Class】是这个对象的类别。WebEdit 表示这个对象是个 edit box。

- 26 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

在【Type】字段中的【ABC】图标表示这个属性的值是个常数。

对每个对象,QuickTest 会使用预设的属性作为检查的属性。以下说明这些预设的属性:

属性 值 说明

html tag INPUT INPUT 就是 HTML 原始码中的 INPUT 标

签。

innertext 在这个范例中,innertext 的值是空的。检查

点会检查执行时这个属性值是不是空的。

name passFirst0 passFirst0 这个 edit box 的名称。

type text text 是 HTML 原始码中这个 INPUT 对象的

类型。

value <姓氏>

(录制测试脚本时你输入的姓氏)

在这个 edit box 输入的文字。

接受预设的设定值,然后点选【OK】。QuickTest 会在你选取的步骤之前建立一个标准的检

查点。

6. 储存测试脚本

点选【File】>【Save】或是点选工具列上的【Save】按钮。

接下来你会按照以上的步骤建立其它类型的检查点。

- 27 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

5.3 检查网页

在这个课程,你将会建立一个网页检查点。网页检查点会检查网页的连结(link)以及图片的数量

是否与当初录制时的数量一样。

1. 选取要建立检查点的网页

在 Keyword View 中,展开(+)【Action1】>【"Welcome: Mercury Tours"】。

选取 Keyword View 中的【"Book a Flight: Mercury"】网页。在【Active Screen】会显示这个

网页的画面。

2. 建立一个网页检查点

在【Active Screen】上任一地方按下鼠标右键,选取【Insert Standard Checkpoint】,会开

启【Object Selection – Checkpoint Properties】对话窗口。由于你点选的位置不同,对话窗

口显示被选取的对象可能会不一样。

点选【Page: Book a Flight: Mercury】(在最上层)然后点选【OK】。

接着开启【Page Checkpoint Properties】对话窗口。

- 28 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

当你执行测试时,QuickTest 会检查网页的连结与图片的数量,以及加载的时间,就如同对话

窗口上方所显示的。

QuickTest 也检查每个 link 的 URL 以及每个图片的原始文件是否存在。

接受默认值,点选【OK】。

QuickTest 会在 Book a Flight: Mercury 网页下方加上一个网页检查点。

3. 储存测试脚本

点选【File】>【Save】或是点选工具列上的【Save】按钮。

- 29 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

5.4 检查文字

在这个课程,你将会建立一个文字检查点,检查在【"Flight Confirmation"】网页中是否出现

【"New York"】。

1. 选取要建立检查点的网页

在 Keyword View 中,展开(+)【Action1】>【"Welcome: Mercury Tours"】。

选取 Keyword View 中的【"Flight Confirmation: Mercury"】网页。在【Active Screen】会显

示网页的画面。

2. 建立文字检查点

在【Active Screen】中,选取在「Departing,」下方的「New York」。

对选取的文字按下鼠标右键,点选【Insert Text Checkpoint】开启【Text Checkpoint Properties】对话窗口。

当【Checked Text】出现在下拉式清单中时,在【Constant】字段会显示你刚刚选取的文

字。这也就是 QuickTest 在执行测试脚本时所要检查的文字。

- 30 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

点选【OK】关闭对话窗口。

QuickTest 会在测试脚本上加上一个文字检查点,这个文字检查点会出现在【"Flight Confirmation: Mercury"】网页下方。

3. 储存测试脚本

点选【File】>【Save】或是点选工具列上的【Save】按钮。

- 31 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

5.5 检查表格

在这个课程,你将会建立一个表格检查点,检查【Book a Flight: Mercury】网页上出国航班的价

钱。

1. 选取要建立检查点的网页

在 Keyword View 中,展开(+)【Action1】>【"Welcome: Mercury Tours"】。

选取 Keyword View 中的【"Book a Flight: Mercury"】网页。在【Active Screen】会显示网页

的画面。

2. 建立表格检查点

在【Active Screen】中,在第一个航班的价钱上(New York to San Francisco)—270—点

选鼠标右键,然后选取【Insert Standard Checkpoint】。

会开启【Object Selection – Checkpoint Properties】对话窗口。

一开始被选取的是 WebElement: 270,这时你要点选上一层的 WebTable 对象,选取

WebTable: New York to San Fransisco。

注意,你会看到在【Active Screen】上,你选取的表格也会被框起来。点选【OK】。

接着开启【Table Checkpoint Properties】对话窗口,显示整个表格的内容。

- 32 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

预设是每个字段都会被勾选,表示所有字段都会做检查。你可以对某个字段点二下,取消检

查字段,或是选取整个栏或列,执行选取或取消的动作。

在每个字段的标题列点二下,取消勾选的图示,然后在第 3 行、第 3 列点二下,会在 270 左

边出现勾选的图示。则执行时 QuickTest 会对此字段值做检查。

建议:你可以拖曳的方式改变字段的宽度与高度,以便检视表格内的数据。

点选【OK】关闭对话窗口。

QuickTest 会在测试脚本中,【"Book a Flight: Mercury"】页面下加上一个表格检查点。

- 33 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

3. 储存测试脚本

点选【File】>【Save】或是点选工具列上的【Save】按钮。

- 34 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

5.6 执行并分析使用检查点的测试脚本

在这个课程,你将会执行使用检查点的测试脚本,并且分析执行的结果。

1. 展开整个 Keyword View 检视整个测试脚本

选取【View】>【Expand All】或是使用【*】这个快速键。整个 Keyword View 就会展开如

下所示:

2. 开始执行测试脚本

点选【Run】或是选取【Test】>【Run】,会开启【Run】对话窗口。勾选【New run results folder】,接受默认值。

点选【OK】。当测试执行完毕,QuickTest 会自动开启测试结果窗口。

3. 检视测试结果

- 35 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

当 QuickTest 执行完测试脚本,测试执行结果窗口会自动开启,而且此次的测试执行结果应

该是 Passed,也就是说,所有的检查点都是 Passed。假如你的测试结果是 Failed,表示有

检查点 Failed。

4. 检视网页检查点的结果

在 test tree 展开(+)【Checkpoint Iteration 1 (Row 1)】>【Action1 Summary】> 【Welcome: Mercury Tours】>【Book a Flight: Mercury】。

并选取【Checkpoint:"Book a Flight: Mercury"】。

在右边的【Details】窗格,你可以看到网页检查点的详细结果,例如网页检查点检查了哪些

项目。

建议:你可以拖曳【Details】窗格下方的边缘,以便能更清楚的看到整个测试的结果。

由于所有网页检查的项目,其实际值与预期值相符,所以这个网页检查点的结果是 passed。

- 36 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

5. 检视表格检查点的结果

在 test tree 的【Book a Flight: Mercury】网页展开(+)【New York to San Francisco】。

并选取【Checkpoint:"New York to San Francisco"】。

在【Details】窗格你可以看到表格检查点的详细结果,也可以在下方看到整个表格的内容

(有被检查的字段以黑色粗体文字显示,没有被检查的字段以灰色文字显示)。由于这个表

格检查点检查的字段值,其实际值与预期值相符,所以检查点的结果为 passed。

- 37 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

6. 检视标准检查点的结果

在 test tree 的【Book a Flight: Mercury】网页 展开(+)【passFirst0】。

并选取【Checkpoint:"passFirst0"】。

在【Details】窗格你可以看到标准检查点的详细结果,如检查了哪些属性,以及属性值为

何。由于这个检查点所有属性值的实际值与预期值都一样,所以检查点的结果是 passed。

- 38 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

7. 检视文字检查点的结果

在 test tree 的展开(+)【Checkpoint Iteration 1 (Row 1)】>【Action1 Summary】>【Welcome: Mercury Tours】>【Flight Confirmation: Mercury】。

并选取【Checkpoint:"New York"】。

在【Details】窗格你可以看到文字检查点的详细结果,由于这个文字检查点的实际值与预期

值都一样,所以检查点的结果是 passed。

8. 关闭测试结果窗口

点选 【File】>【Exit】关闭测试结果窗口。

- 39 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

6. 参数化 当你在作测试时,你可能会想要使用多种不同的测试数据,针对同样的操作或功能进行测试。

举例来说,当你想要使用 10 组不同的订单数据,来验证新增订单的功能。最简单的方式是你可以

直接将这 10 组不同数据的操作录制下来;另一个聪明的选择是,你可以将新增订单的操作录制下

来,然后透过 QuickTest 的参数化功能,建立这 10 组不同的数据,如此一来,QuickTest 执行测

试脚本时,就会分别使用这 10 组数据,执行 10 次新增订单的测试了。

6.1 定义数据表参数

在之前的课程,您录制的测试脚本预订了从纽约到旧金山的机票,在测试脚本中,纽约是个常数

值,也就是说,每次执行测试脚本预定机票时,出发地点都是纽约。在这次课程,您将会学习到,

如何将测试脚本中的出发地点参数化,如此一来,执行测试脚本时就会以不同的出发地点去预订机

票了。

1. 执行 QuickTest 并开启「Checkpoint」测试脚本

假如 QuickTest 没开启,点选【开始】>【程序集】>【QuickTest Professional】>【QuickTest Professional】。

假如开启欢迎窗口,点选【Open Existing】。

假如没开启欢迎窗口,点选【File】>【Open】或是点选工具列上的【Open】按钮。

在【Open QuickTest Test】对话窗口,选择刚刚录制的「Checkpoint」测试脚本,然后点选

【Open】。

2. 将测试脚本另存成名为「Parameter」测试脚本

点选【File】>【Save As】。将测试脚本存档成「Parameter」。

3. 确认【Active Screen】是开启的

假如你没有看到 QuickTest 右下方的【Active Screen】,点选工具列上的【Active Screen】按钮,或是点选【View】>【Active Screen】。

4. 确认【Data Table】是开启的

假如在 QuickTest 下方没有出现【Data Table】,请点选工具列上的【Data Table】按钮,或

是点选【View】>【Data Table】。

5. 选取要参数化的文字

在 Keyword View 中,展开(+)【Action1】>【"Welcome: Mercury Tour"】>【"Find a Flight: Mercury"】。

- 40 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

在 Keyword View 中点选"fromPort"右边的【Value】字段,然后再点选参数化图示 。会开

启【Value Configuration Options】对话窗口。

6. 设定要参数化的属性

点选 Parameter。如此一来,你就可以使用参数值来取代纽约(New York)这个常数值。

请选择【Data Table】这个选项,这个选项表示此参数的值会从 QuickTest 的 Data Table 中

取得。

而且【Name】字段会出现 p_Item,请将其修改成 departure。

点选【OK】关闭窗口。QuickTest 会在 Data Table 中新增 departure 参数字段,并且插入一

行 New York 的值。则 New York 会成为测试脚本执行时所用的的第一个值。

- 41 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

同时请特别注意一下在 Keyword View 中的变化。在参数化之前,此测试步骤是显示

【"fromPort" Select "New York"】。现在,这个测试步骤变成了【fromPort Select DataTable(“departure”, DTGlobalSheet)】。而且当您点选【Value】字段时,【Value】字段

会变成如下图所示,表示此测试步骤已经被参数化了,而且其值是从 Data Table 中的

departure 字段中取得。

6.2 在数据表中输入参数

如您所见,QuickTest 会在 Data Table 中显示参数值。在此课程,你会在 Data Table 中加入更多

笔出发地点的资料,让 QuickTest 可以使用这些资料执行测试脚本。

1. 在 departure 字段输入更多数据

点选 departure 字段的第二行,并输入「Portland」。

点选第三行,并输入「Seattle」。

按下【Enter】。

2. 储存测试脚本

点选【File】>【Save】或是点选工具列上的【Save】按钮。

6.3 修正受到参数化影响的测试步骤

当某个测试步骤被参数化后,有可能会影响到其它的测试步骤也需要作参数化的动作。接下来,您

将会对出发地点的文字检查点作参数化,以符合您对出发地点作参数化的预期结果。

1. 修改文字检查点

- 42 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

在 Keyword View 中,展开(+)【"Welcome: Mercury Tours"】>【"Flight Confirmation: Mercury"】。

然后点选鼠标右键,选取【Checkpoint Properties】,开启【Text Checkpoint Properties】对话窗口。

2. 对文字检查点作参数化

在【Checked Text】的【Constant】字段中会显示「New York」,表示测试脚本每次执行

时,这个文字检查点的预期值为「New York」。

点选【Parameter】。

点选【Parameter Options】按钮,开启【Parameter Options】对话窗口。

- 43 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

在【Name】下拉列表中选取「departure」,指定这个文字检查点使用 departure 字段中的

值,当成是检查点的预期值。

点选【OK】关闭对话窗口,此文字检查点也被参数化了。

3. 储存测试脚本

点选【File】>【Save】或是点选工具列上的【Save】按钮。

6.4 执行并分析使用参数的测试步骤

现在,您可以执行修改完成后的「Parameter」测试脚本了。QuickTest 会使用 Data Table 中

departure 字段的值,执行三次测试脚本。

1. 执行「Parameter」测试脚本

点选工具列上的【Run】或是点选【Test】>【Run】,开启【Run】对话窗口。

选取【New run results folder】,其余为默认值。

点选【OK】开始执行测试脚本。当执行完毕,会自动开启测试结果窗口。

2. 检视测试结果

Iteration 2:

在 results tree 中,展开(+)【Parameter Iteration 2】>【Action1 Summary】>【Welcome Mercury Tours】>【Flight Confirmation: Mercury】。

选取【Checkpoint:"New York"】。

- 44 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

在检查点的【Details】窗格中,显示 Portland 为预期结果同时也是实际值,所以此文字

检查点为通过。你也可以看到在下方的【Application】窗格中,显示机票的出发地点也

是 Portland。

Iteration 3:

在 results tree 中,展开(+)【Parameter Iteration 3】>【Action1 Summary】 > 【Welcome Mercury Tours】>【Flight Confirmation: Mercury】。

选取【Checkpoint:"New York"】。

在检查点的【Details】窗格中,显示 Seattle 为预期结果同时也是实际值,所以此文字

检查点为通过。你也可以看到在下方的【Application】窗格中,显示机票的出发地点也

是 Seattle。

以下的表格显示每次执行时,此文字检查点的结果:

Iteration Expected Text Actual Text Result

#1 New York New York Checkpoint Passed

#2 Portland Portland Checkpoint Passed

#3 Seattle Seattle Checkpoint Passed

- 45 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

注意:虽然每次执行时,文字检查点的结果是通过的,但是第二次与第三次的执行结果仍然

为失败。这是因为出发地点改变,造成在表格检查点中的机票价钱改变,导致表格检查点失

败。在「建立输出值」的课程,您将会修正表格检查点,让 QuickTest 自动更新表格检查点

的预期结果,就可以检查正确的票价了。

3. 关闭测试结果窗口

点选【File】>【Exit】关闭测试结果窗口。

- 46 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

7. 建立输出值 在「参数化」课程中,你透过使用参数与 Data Table 让测试脚本可以使用不同的测试资料。同样

地,你也可以从应用程序输出数据到 Data Table,而且此数据还可以在测试脚本的后面阶段被使用

到。QuickTest 会将取得的数据显示在 Runtime Data Table。

举例来说,你可以透过输出值验证二个不同网页上的航班是一样的,首先你先以输出值将一个网页

上的航班编号输出到 Data Table,然后用此输出值当成另一个网页上航班编号的预期结果。

7.1 建立一个输出值

在「参数化」课程中,因为在表格检查点中机票价钱的预期结果,并未随着出发地点的改变而变

动,导致第二、三次的执行结果是失败的。

接下来,你将会从【Select a Flight: Mercury】网页上取得机票价钱,并且以取得的机票价钱更新

表格检查点的预期结果。如此一来,测试脚本就可以利用在【Select a Flight: Mercury】网页上取

得的机票价钱,去验证【Book a Flight: Mercury】上显示的机票价钱。

1. 执行 QuickTest 并开启「Parameter」测试脚本

假如 QuickTest 没开启,点选【开始】>【程序集】>【QuickTest Professional】>【QuickTest Professional】。

假如开启欢迎窗口,点选【Open Existing】。

假如没开启欢迎窗口,点选【File】>【Open】或是点选工具列上的【Open】按钮。

在【Open QuickTest Test】对话窗口,选择刚刚录制的「Parameter」测试脚本,然后点选

【Open】。

2. 将测试脚本另存成名为「Output」测试脚本

点选【File】>【Save As】,将测试脚本存档成「Output」。

3. 确认【Active Screen】是开启的

假如你没有看到 QuickTest 右下方的【Active Screen】,点选工具列上的【Active Screen】按钮,或是点选【View】>【Active Screen】。

4. 选取要输出的文字

在 Keyword View 中,展开(+)【"Welcome: Mercury Toirs"】并且点选【"Select a Flight: Mercury"】网页,则这个网页会出现在【Active Screen】。

在「Active Screen」中,选取框住 270,但是不包含$符号。然后点选鼠标右键,然后选取

【Insert Text Output】,会开启【Text Output Value Properties】对话窗口。

- 47 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

5. 设定输出值

点选【Modify】按钮,开启【Output Options】对话窗口。

在【Name】字段会显示 Select_a_FlightOutput_Text_out,将其改成 depart_flight_price。

- 48 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

接受其它默认值,点选【OK】,QuickTest 会在 Data Table 中加入 depart_flight_price 字

段。

注意:在 Data Table 上 depart_flight_price 字段的第一行会显示从应用程序上取得的输出

值—270。在执行时,第一次 QuickTest 还是会取得一样的值—270,但是接下去第二、三

次,就会从应用程序上取得实际值,并存放到 Data Table 中。

QuickTest 会在你选取的测试步骤之前加上一个输出值步骤。

6. 修正表格检查点的预期值

在 Keyword View 中,展开 (+)【"Welcome:Mercury Tour"】>【"Book a Flight: Mercury"】。

在【Checkpoint "New York to San Francisco"】上点选鼠标右键,选取【Checkpoint Properties】,开启【Table Checkpoint Properties】对话窗口。

点选第三行,第三列(被勾选的字段),在【Configure value】中点选【Parameter】,然后

按下【Parameter Options】按钮,开启【Parameter Options】对话窗口。

并从【Name】下拉列表中选取 depart_flight_price。

点选【OK】,回到【Table Checkpoint Properties】对话窗口,可以看到这个检查点的预期

结果已经被参数化。

- 49 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

按下【OK】关闭【Table Checkpoint Properties】对话窗口。

7. 储存测试脚本

点选【File】>【Save】或是点选工具列上的【Save】按钮。

7.2 执行并分析使用输出值的测试脚本

接下来,你会执行测试脚本并分析其结果。

1. 执行「Output」测试脚本

点选工具列上的【Run】或试点选【Test】>【Run】,开启【Run】对话窗口。

选取【New run results folder】,其余为默认值。

点选【OK】开始执行测试脚本。当执行完毕,会自动开启测试结果窗口。

2. 检验执行时期的数据(run-time data)

在测试结果窗口中,点选 results tree 上的 Run-Time Data,可以在表格中看到测试执行时撷

取到的输出值,而且在 depart_flight_price 字段中显示不同的机票价钱。

- 50 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

3. 检视检查点的结果

点选【View】>【Expand All】。

选取【Output Iteration 1 (Row 1)】>【"Book a Flight: Mercury"】>【Checkpoint:"New York to San Francisco"】。

注意:在【Details】窗格中,显示检查点的结果是通过的。

同样地,也检视 Iterations 2 以及 3,在【Details】窗格中,检查点的结果也是通过的。

4. 关闭测试结果窗口

点选【File】>【Exit】关闭测试结果窗口。

- 51 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

8. 使用万用字符表示法 在「建立检查点」课程中,你建立了文字检查点,以检查某个特定文字。在 QuickTest 你可以使用

万用字符表示法,让测试脚本更有弹性、更能适应应用程序的变化。

8.1 万用字符的表示法

透过万用字符表示法,QuickTest 可以利用不同的属性识别对象,也可以检查不同的文字。不管是

对象的属性、方法的参数、测试步骤的参数、检查点都可以使用万用字符表示法。

万用字符表示法透过一些特殊字符如点(.)、星号(*)、脱字符号(^)、以及中括号([]),组合搜寻的规

则。要进一步了解如何使用万用字符表示法,请参考 QuickTest Professional User’s Guide。

8.2 使用万用字符表示法

接下来,你将会建立一个文字检查点,用来检查飞机出发日期,而此日期会依照你选取的航班不同

而改变。你可以透过万用字符表示法,设定文字检查点止检查此日期文字的格式,而不是检查其日

期。

为此,你将会使用万用字符表示法,设定检查日期的范围是否正确。

1. 执行 QuickTest 并开启「Recording」测试脚本

假如 QuickTest 没开启,点选【开始】>【程序集】>【QuickTest Professional】>【QuickTest Professional】。

假如开启欢迎窗口,点选【Open Existing】。

假如没开启欢迎窗口,点选【File】>【Open】或是点选工具列上的【Open】按钮。

在【Open QuickTest Test】对话窗口,选择刚刚录制的「Recording」测试脚本,然后点选

【Open】。

2. 将测试脚本另存成名为【RegExpression】测试脚本

点选【File】>【Save As】,将测试脚本存档成「RegExpression」。

3. 确认【Active Screen】是开启的

假如你没有看到 QuickTest 右下方的【Active Screen】,点选工具列上的【Active Screen】按钮,或是点选【View】>【Active Screen】。

4. 选取要建立检查点的文字

在 Keyword View 中,展开(+)【"Welcome: Mercury Tours"】并且点选【"Select a Flight: Mercury"】网页,则这个网页会出现在【Active Screen】。

- 52 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

在【Active Screen】,以鼠标框住出发班机的日期 12/29/2004,再以鼠标右键点选并选取

【Insert Text Checkpoint】,开启【Text Checkpoint Properties】对话窗口。

5. 使用万用字符表示要检查的文字

在【Checked Text】点选【Edit Constant Value Options】按钮,开启【Constant Value Options】对话窗口。

在【Value】字段,输入[0-1][0-9]/[0-3][0-9]/200[0-9]。设定 QuickTest 以 MM/DD/200Y 文字

格式检查此文字检查点。

勾选【Regular expression】选项,会出现讯息问你要不要在每个特殊字符前加上反斜线,点

选【No】。

注意:假如你点选【Yes】QuickTest 会将特殊字符,如([)、(-)以及(])视作一般字

符,而非万用字符了。

接受其它默认值,点选【OK】关闭【Constant Value Options】对话窗口,回到【Text Checkpoint Properties】对话窗口。

- 53 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

点选【OK】关闭【Text Checkpoint Properties】对话窗口。

QuickTest 会在测试脚本中,【"Select a Flight: Mercury"】网页的下方加入文字检查点。

6. 储存测试脚本

点选【File】>【Save】或是点选工具列上的【Save】按钮。

8.3 执行并分析使用万用字符表示法的测试脚本

接下来将执行测试脚本,并分析其执行结果。

1. 执行「RegExpression」测试脚本

点选工具列上的【Run】按钮,或是点选【Test】>【Run】,开启【Run】对话窗口。

选取【New run results folder】并接受预设的执行结果目录名称。

点选【OK】,开始执行测试脚本。当执行完毕,会自动开启测试结果窗口。

2. 检视检查点的执行结果

- 54 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

在 results tree,展开(+)【Test RegExpression Summary】>【RegExpression Iteration 1 (Row 1)】>【Action1 Summary】>【Welcome: Mercury Tours】>【Select a Flight: Mercury】。

选取【CheckPoint:"[0-1][0-9]/[0-3][0-9"】。

你可能会注意到检查点的显示名称比你输入的万用字符表示法还短,如果要了解更多的信

息,请参考「了解检查点的种类」。

由于实际值与万用字符表示法的格式是一致的,所以此文字检查点结果为通过。

3. 关闭测试结果窗口

点选【File】>【Exit】关闭测试结果窗口。

- 55 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

9. 将测试脚本切割成多个动作 在 QuickTest 中 Action 是一个可以被重复使用(reuse)的最小单位,当你建立一个全新的测试脚

本时,测试脚本中只有一个 Action 名为 Action1,你可以将整个测试脚本切割成多个 Actions,让

测试脚本更为模块化且更容易被重复使用。

9.1 使用多个动作

假如你检视一下之前录制的测试脚本,你将会发现其实整个测试脚本可以分割成几个特别的业务流

程:

登入网站

搜寻并预定机票

注销

假如您要建立可以预订五张不同机票的测试脚本,就如同我们在「参数化」课程中所学到的,您可

以将整个测试脚本参数化。或者,您也可以透过将测试脚本切割成三个动作:登入网站、搜寻并预

定机票、注销,然后将第二个动作参数化,以仿真一个用户登入,然后预定五张机票,最后再注

销。

要将测试脚本切割成动作,你可以插入新的动作、将一个动作切割成二个动作、插入已经存在的动

作、或是呼叫已经存在的动作。

你可以使用以下的菜单选项或工具列上的按钮,在录制测试脚本时或是录制完测试脚本后,插入动

作:

点选【Insert】>【New Action】或是工具列上的【Insert New Action】按钮。

点选【Step】>【Split Action】或是工具列上的【Split Action】按钮。

点选【Insert】>【Copy of Action】或是在 Action 上点选鼠标右键,选取【Insert Copy of Action】。

点选【Insert】>【Call to Action】或是在 Action 上点选鼠标右键,选取【Insert Call to Action】。

9.2 建立新动作

接下来,你会建立一个分割成三个动作的测试脚本。

9.2.1 录制测试脚本

1. 执行 QuickTest 并开启一个全新的测试脚本

- 56 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

请参考「录制测试脚本」的步骤 1。

2. 开始录制 Mercury Tours 范例网站

接下来课程,你会录制一个与「录制测试脚本」课程中类似的测试脚本。不过为了练习如何

使用多个 actions,这个测试脚本的执行步骤有稍微的经过安排。

首先先关闭所有的浏览器。

点选【Test】>【Record】或是点选工具列上的【Record】按钮,将开启【Record and Run Settings】对话窗口。

在【Web】页签,点选【Open the following browser when a record or run session begins】。

在【Type】清单中选择使用的浏览器,并在【Address】字段中输入

http://newtours.mercuryinteractive.com。

勾选【Do not record and run on browsers that are already open】以及【Close the browser when the test is closed】选项。

在【Windows Applications】页签,勾选【Record and run on these applications (opened on session start)】,而且请确认清单中没有任何应用程序。

点选【OK】。

QuickTest 会开启浏览器,显示 Mercury Tours 首页,并开始录制测试脚本。

- 57 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

3. 登入 Mercury Tours

在【User Name】以及【Password】输入你之前注册的账号与密码。

点选【Sign-In】。

开启【Flight Finder】网页。

4. 输入航班信息

输入下列数据:

【Departing From】:New York

【On】:Dec 29

【Arriving In】:San Francisco

【Returning】:Dec 31

其余为默认值,点选【CONTINUE】,开启【Select Flight】网页。

5. 选择航班

接受默认值,点选【CONTINUE】,开启【Book a Flight】网页。

6. 输入必要的旅客信息

输入旅客姓名与信用卡号。

点选网页下方的【SECURE PURCHASE】,开启【Flight Confirmation】网页。

7. 回到【Flight Finder】网页

在【Flight Confirmation】网页下方,点选【BACK TO FLIGHTS】,回到【Flight Finder】网页。

回到【Flight Finder】网页后再停止录制,让开始与结束都是同一页面,这样才可以让测试脚

本可以重复执行。

8. 停止录制

点选工具列上的【Stop】按钮停止录制。

9. 将测试脚本储存成「ActionA」

点选【File】>【Save As】,将测试脚本储存成「ActionA」。

9.2.2 将测试脚本分成二个动作

因为你的测试脚本包含了二个主要的业务流程:登入与订票,所以将整个测试流程分成二个动作便

相当合理。

- 58 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

1. 选择第二个动作要开始的网页

在 Keyword View,展开(+)【Action1】>【"Welcome: Mercury Tours"】。

2. 将测试脚本分成二个动作

选取【”Find a Flight: Mercury”】网页,并点选【Step】>【Split Action】或是点选工具列上

的【Split Action】按钮,开启【Split Action】对话窗口。

3. 输入动作的名称与说明

在【1st action】中的【Name】字段输入:Sign_in。

在【1st action】中的【Description】字段输入:Enters user name and password to sign in。

在【2nd action】中的【Name】字段输入: FlightOrder。

在【2nd action】中的【Description】字段输入:Chooses and purchases a flight。

其余字段保留默认值,点选【OK】关闭【Split Action】对话窗口。在 Keyword View 中会出

现二个动作。

点选【View】>【Expand All】检视每个动作的内容。注意,【FlightOrder】动作的开始与结

束应该都是【Find a Flight: Mercury】网页。

- 59 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

9.3 插入新动作

接下来,你将会插入一个新的动作,并且录制回到 Mercury Tours 首页的步骤,让整个测试脚本的

起始与结束都是在同一页面。

1. 插入新的动作

点选【Insert】>【New Action】或是点选工具列上的【Insert New Action】按钮,开启

【Insert New Action】对话窗口。

在【Name】字段中输入动作名称 ReturnHome,并选取【At the end of the test】然后点选

【OK】。关闭对话窗口后,在测试脚本最后面会显示刚刚新增的 ReturnHome 动作。

2. 准备录制测试脚本

启动浏览器并开启【Flight Finder】网页。

输入 Mercury Tours 的网址(http://newtours.mercuryinteractive.com)并登入,则会开启

【Flight Finder】网页。

调整一下浏览器与 QuickTest 的位置,以便可以同时看到二个窗口。

3. 变更【Record and Run settings】

目前你的【Record and Run settings】是设定在【Open the following browser when a record or run session begins】,所以 QuickTest 会自动开启浏览器到你指定的网址。不过你现在是

要在已开启的浏览器上,录制的新的动作,所以你必须变更设定。

点选【Test】>【Record and Run Settings】,开启【Record and Run Settings】对话窗

口。

- 60 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

在【Web】页签,选取【Record and run test on any open Web browser】,然后点选

【OK】。

4. 录制 ReturnHome 动作

在 Keyword View 中,选取新的 ReturnHome 动作。

点选【Test】>【Record】或是点选工具列上的【Record】按钮。

在【Flight Finder】网页上,点选左边目录区的【Home】,回到 Mercury Tours 的首页。

然后点选工具列上的【Stop】按钮停止录制。

5. 回复【Record and Run Settings】设定

由于你为了录制 ReturnHome 动作而变更了【Record and Run Settings】的设定,但是这样

的变更会影响 QuickTest 执行测试脚本的方式。对这个测试脚本来说,你需要 QuickTest 帮你自动开启浏览器并浏览 Mercury Tours 首页,所以你必须将【Record and Run Settings】设定改回原本的设定。

点选【Test】>【Run and Record Settings】,开启【Run and Record Settings】对话窗

口。

同样在【Web】页签,勾选【Open the following browser when a record or run session begins】,并确认 http://newtours.mercuryinteractive.com 显示在【Address】字段中,点选

【OK】。

- 61 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

6. 储存测试脚本

点选【File】>【Save】或是点选工具列上的【Save】按钮,储存测试脚本。

9.3.1 将动作设定成可再使用的动作 (Reusable Actions)

所谓的可再使用的动作(Reusable Actions)相当于程序设计中的函数(function)。当你有个业

务流程,在很多测试脚本中都会用到时,你可以将这个业务流程录制成一个可再使用的动作

(Reusable Actions)。然后就可以在需要用到此业务流程的测试脚本中,呼叫使用它。

要让一个动作可以被其它的测试脚本呼叫使用,这个动作必须是一个可再使用的动作(Reusable Actions)。例如,您在这个课程中所建立的 Sign_in 以及 ReturnHome 动作,在其它的测试脚本

中,通常也会有相同的动作,所以就可以将其设定为可再使用的动作(Reusable Actions)。

1. 将 Sign_in 动作设定成可再使用的动作(Reusable Actions)

在 Keyword View 以鼠标右键点选 Sign_in 然后选取【Action Properties】,会开启【Action Properties】对话窗口。点选【Reusable action】然后按下【OK】。假如出现讯息窗口,注

意一下显示的讯息,然后点选【Do not show this dialog box again】,然后按下【OK】。则

此动作的图示会变成 ,而且动作的名称会变成蓝色的文字。

2. 检视 Sign_in 动作

注意,你现在已经无法在 Keyword View 上展开 Sign_in 动作了。

当你将某个动作转换成可再使用的动作(Reusable Actions)后,你会发现在 Keyword View上方出现了一个动作清单,清单中显示在这个测试脚本中的所有可再使用的动作(Reusable Actions),以及所呼叫的外部动作。

要检视 Sign_in 动作的内容,只要在下拉列表中选取 Sign_in 动作就可以了。

在【Action】下拉列表中,选取【Test Flow】就可以回到原本的 Keyword View 了。

3. 将 ReturnHome 也设定成可再使用的动作(Reusable Actions)

对 ReturnHome 动作,重复步骤 1 与 2。

4. 储存测试脚本

点选【File】>【Save】或是点选工具列上的【Save】按钮。

- 62 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

9.4 插入已存在的动作

当你在规划一系列的测试个案时,可能会发现有些动作,如登入,可能在很多的测试个案中都会用

到,则当你在一个测试脚本中,已经建立好登入的动作后,你可以透过复制或是呼叫方式,在其它

的测试脚本中使用登入的动作。

当你以复制的方式插入动作,则你可以修改这个动作的复本,而且你的修改不会影响原来的动作,

原来动作的改变也不会影响这个复本。当你以呼叫的方式插入动作,这个动作会变成只读的动作,

你只能在原来的测试脚本中,才能修改被呼叫的动作。使用呼叫的方式,测试脚本可以有比较好的

可维护性,因为当被测系统改变时,你只要修改原始的测试脚本就可以了。

在接下来的课程中,你会建立一个类似 ActionA 的测试脚本,其中 Sign_in 以及 ReturnHome 动作

将来自外部的测试脚本(以呼叫的方式使用其它测试脚本中的动作)而且 FlightOrder 动作会作稍

微的修改。

9.4.1 插入呼叫(call)的动作

首先,你将以呼叫的方式,把 ActionA 中的 Sign_in 与 ReturnHome 动作,插入 ActionB 中。

1. 开启一个新的测试脚本存成 ActionB

假如你忘记怎么作,请参考「录制测试脚本」的步骤 1。

2. 插入呼叫的 Sign_in 动作

点选【Insert】>【Call to Existing Action】,开启【Select Action】对话窗口。

- 63 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

点选【From test】右边的【浏览】按钮,选取【ActionA】测试脚本后点选【Open】,只有

可再使用的动作(reusable actions)会显示在【Select Action】对话窗口中。

选取 Sign_in 动作后,按下【OK】,Sign_in[ActionA]动作会出现在测试脚本的最下方,而且

图示变成 。

注意,你无法在 Keyword View 中展开 Sign_in 动作,要检视 Sign_in 动作,你可以在

【Action】清单中选取 Sign_in 动作。由于此动作目前是只读的,假如你要修改的话,只有开

启原来的测试脚本(ActionA)才能够修改它。

选取【Action】清单中的 Test Flow 回到原来的 Keyword View。

3. 插入呼叫的 ReturnHome 动作

依照步骤 2,将 ActionA 测试脚本中的 ReturnHome 动作,插入测试脚本的最下方。

4. 储存测试脚本

点选【File】>【Save】或是点选工具列上的【Save】按钮。

5. 修改原始的 ReturnHome 动作

点选【File】>【Open】,选取 ActionA 测试脚本,然后按下【Open】。

对 ReturnHome 动作点二下以便检视其内容。

- 64 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

在 Keyword View,选取 ReturnHome 动作的图示,然后点选【Insert】>【Step】>【Comment】,开启【Insert Comment】对话窗口,并加入批注。

输入:Return to page used in first step of the test,后按下【OK】。

加入批注如下:

6. 储存测试脚本

点选【File】>【Save】或是点选工具列上的【Save】按钮。

7. 检查原始 ReturnHome 动作的修改也影响到呼叫它的测试脚本

点选【File】>【Open】,选取 ActionB 测试脚本,按下【Open】。

对 ReturnHome[ActionA]动作的图示点二下以便检视其内容,可以看到你在原始测试脚本

(ActionA)中加入的批注也出现在呼叫它的测试脚本(ActionB)中。

在【Action】工具列,点选【Action】清单并选取 Test Flow 回到原本的 Keyword View。

9.4.2 插入一个动作的复本

接下来,你会插入 FlightOrder 动作的复本。

1. 开启一个新的测试脚本

假如你忘记怎么作,请参考「录制测试脚本」的步骤 1。

2. 插入 FlightOrder 动作的复本

点选【Insert】>【Call to Copy of Action】,开启【Select Action】对话窗口。

- 65 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

点选【From test】字段右边的【浏览】按钮,选取【ActionA】测试脚本后点选【Open】,

则在【ActionA】测试脚本中可以被使用的动作会显示在【Action】清单中。注意,被选取的

动作的说明会显示在【Action description】中。

选取 FlightOrder 动作,确认【Location】为【At the end of the test】后按下【OK】。

【Sign_in [ActionA]】动作会出现在测试脚本的最下方。注意,你刚刚插入的动作,与其它的

动作一样,你可以修改动作中的步骤。

3. 修改 Copy of FlightOrder 动作

在 Keyword View 中,展开(+)【Copy of FlightOrder】>【"Welcome: Mercury Tours"】>【"Find a Flight: Mercury"】,点选在"fromPort"的【Value】字段,将字段中的值改成

London 后,在点选 Keyword View 其它列。

4. 将 Copy of FlightOrder 动作放到 Sign_in 动作之后

你希望测试脚本执行的顺序是做完 Sign_in 动作之后再执行 Copy of FlightOrder 动作,但是

你不能将任一个动作拖放到一个可再使用的动作(Reusable Actions)之后,因为可再使用的

动作(Reusable Actions)在被呼叫的脚本中是只读的,所以你必须执行下列步骤,才能变动

这些动作的顺序。

在 Keyword View 上选取 Copy of FlightOrder 动作,将它拖放到 Action1 动作之后,然后再

把 Sign_in 动作也拖放到 Action1 动作之后,这样一来,你已经将 Copy of FlightOrder 动作

放到 Sign_in 动作之后了。

- 66 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

5. 删除测试脚本中的 Action1

每当开启新的测试脚本都会有预设的 Action1 动作。由于测试脚本中一定要有至少一个的动

作,所以你必须先插入 Copy of FlightOrder 动作,然后才能删除 Action1 动作。现在,你可

以将 Action1 删除了。

在 Keyword View 中,点选 Action1 然后选取【Edit】>【Delete】或是按下键盘上的

【Delete】按键。出现确认讯息,按下【Yes】。

6. 储存测试脚本

点选【File】>【Save As】或是点选工具列上的【Save】按钮,将测试脚本存成

【ActionB】。

7. 检查原始的 FlightOrder 动作是否也被修改

点选【File】>【Open】,选取 ActionA,点选【Open】。

展开【FlightOrder】>【"Welcome: Mercury Tours"】>【"Find a Flight: Mercury"】,检查一

下你在 ActionB 测试脚本中修改的出发地点,在 ActionA 测试脚本中是否有被修改到

(ActionA 的出发地点应该还是 New York)。

9.5 对动作作参数化

当你看到 ActionB 测试脚本下方的资料表(Data Table)时,你会发现有四个工作表:Global、Copy of FlightOrder、Sign_in [ActionA]以及 ReturnHome [ActionA]。

注意:假如你没看到资料表(Data Table),点选【View】>【Data Table】就会显示数据表。

在 Global 工作表中的数据是给整个测试脚本使用的。假如 Global 数据表中有 5 笔数据,则整个测

试脚本会执行 5 次。另外,你也可以使用每个动作所属的工作表。假如某个动作所属的资料表中有

5 笔数据,表示当整个测试脚本执行 1 次时,此动作会执行 5 次。

注意:Sign_in [ActionA]与 ReturnHome [ActionA]工作表显示为灰色的,表示这二个工作表是只读

的,因为这二个工作表示属于被呼叫的测试脚本的,你只能开启原始的测试脚本才能修改。

接下来,你会为 FlightOrder 动作建立一个数据表,以用来验证应用程序如何处理单一使用者预订

多张机票的动作。

1. 开启 ActionB 测试脚本

假如 ActionB 还没开启,点选【File】>【Open】并选取 ActionB 测试脚本,然后按下

【Open】。

2. 选取要参数化的步骤

展开(+)【Copy of FlightOrder】>【"Welcome: Mercury Tours"】>【"Find a Flight: Mercury"】。

- 67 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

在 Keyword View 中,点选【"toPort"】右边的【Value】字段,然后按下参数化按钮 ,会

开启【Value Configuration Options】对话窗口。

输入参数数据

选择 Parameter,并确认下拉列表中是【DataTable】。然后在【Name】字段,输入

ArrivalCity。

你现在建立的参数数据,是给 Copy of FlightOrder 动作使用的参数数据,所以在【Location in Data Table】中必须选取【Current action sheet(local)】。

按下【OK】关闭,【Value Configuration Options】对话窗口。

QuickTest 会自动在 Copy of FlightOrder 工作表中加入 ArrivalCity 字段,而且第一笔数据就

是 San Francisco。

3. 参数化其它步骤

同一位旅客在同一天出发到二个不同的地点是很不合理的,所以你也要对出发与到达的日期

作参数化。

在 Keyword View 中,选取【"fromMonth"】,依照步骤 2 的说明,对出发日期作参数化。请

确认当【Value Configuration Options】对话窗口开启后,再按下【OK】前,必须选取

【Current action sheet(local)】。

- 68 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

在 Keyword View 中,选取【"toMonth"】,同样依照步骤 2 的说明,对到达日期作参数化。

请确认当【Value Configuration Options】对话窗口开启后,再按下【OK】前,必须选取

【Current action sheet(local)】。

4. 在数据表中输入参数化数据

在资料表中,点选 Copy of FlightOrder 页签。

在 ArrivalCity 字段的第二列输入 Portland 后按下【Enter】。

在出发(departure)与到达(arrival)字段中,输入 Oct。

5. 设定以数据表中的所有数据重复执行动作

默认值,QuickTest 只会执行一次测试脚本中的动作,而你想要 QuickTest 使用 Copy of FlightOrder 数据表中的所有数据为参数执行测试脚本。

对 Copy of FlightOrder 动作点选鼠标右键,选取【Action Call Properties】,开启【Action Call Properties】对话窗口。

点选 Run 页签。

选取【Run on all rows】,假如有出现讯息窗口,点选【OK】关闭它。最后再点选【OK】关

闭【Action Call Properties】对话窗口。

6. 储存测试脚本

- 69 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

选取【File】>【Save】或是点选工具列上的【Save】按钮。

现在你已经建立一个测试脚本,先登入 Mercury Tours 网站,并且预定二张机票:第一张机票是在

Dec 29 - Dec 31 从 London 到 San Francisco;第二张机票是在 Oct 29 - Oct 31 从 London 到

Portland。最后在点选 Home 连结注销网站。

9.6 执行并分析多个动作的测试脚本

接下来,你会执行 ActionB 测试脚本,整个测试脚本只会执行一次,但是 FlightOrder 动作会执行

二次,而且二次的数据分别是以 Copy of FlightOrder 数据表中的二笔资料。

1. 执行 ActionB 测试脚本

关闭所有的浏览器。

点选工具列上的【Run】或是选取【Test】>【Run】,开启【Run】对话窗口。

选取【New run results folder】并接受预设的测试结果目录名称。

点选【OK】,当测试脚本执行完毕,开启测试结果窗口。

2. 检视测试结果

检视测试结果,可以看到测试结果标示为 Done,这表示整个测试执行没有发生任何错误(也

没有任何检查点可以通过检查)。

展开【Test ActionB Summary】>【ActionB Iteration 1 (Row 1)】,选取 Copy of FlightOrder Summary 动作,你可以看到下面显示了二个动作执行的结果,表示这个动作执行了二次。

- 70 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

3. 关闭测试结果窗口

点选【File】>【Exit】关闭测试结果窗口。

- 71 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

10. 从这里出发 现在你已经完成本手册中的所有练习,准备好使用 QuickTest 测试你的应用程序了。

10.1 开始测试你的应用程序

透过本学习手册,你已经学到如何使用 QuickTest 测试一般窗口应用程序以及网站。

我们建议你可以依照以下的程序对你的应用软件进行自动化测试:

1. 规划测试个案

决定如何组织你的测试。考虑使用者如何操作你的应用程序或网站,以便决定录制哪些操

作。并且在测试前需要先确认你的应用程序以及 QuickTest 是符合你的测试需求的。

决定使用哪种 object repository 模式,你所选择的 object repository 模式,关系着 QuickTest如何储存与应用程序有关的数据。你可以使用预设的模式,每个测试脚本有自己的 object repository,也可以使用共享的(shared)object repository 模式,让多个测试脚本共享同一

个 object repository。

假如你是初学者,你可以使用预设的模式。

假如你已经很熟悉 QuickTest,则你可以使用共享的(shared)object repository 模式,让多

个测试脚本共享一个 object repository。当你的应用程序的使用者操作接口有变动,你只需要

修改一个 object repository 中的数据就可以了。

如需要详细的数据,请参考 QuickTest Professional User’s Guide。

2. 录制你的测试脚本

依照你规划的操作步骤,录制测试脚本(请参考录制测试脚本)。

3. 修改你录制的测试脚本

加入检查点(请参考建立检查点)以验证网页、GUI 对象、表格以及文字的值是否正确。

将测试脚本中的固定数据以参数取代(请参考参数化)以使用不同的数据验证你的应用程

序。

建立输出值(请参考建立输出值)以便在测试执行过程中取得输出值。

假如需要,可以使用万用字符表示法(请参考使用万用字符表示法)。

你还可以在测试脚本中以程序代码的方式加上条件判断式。如需要详细的数据,请参考

QuickTest Professional User’s Guide。

4. 除错(假如需要的话)

- 72 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

对测试脚本进行除错,以确保测试脚本可以正常的执行,不会中断。如需要详细的数据,请

参考 QuickTest Professional User’s Guide。

5. 执行测试脚本

在你的应用程序或网站执行测试脚本(请参考 执行并分析测试脚本)以验证应用程序或网站

的功能如你预期的。

6. 分析测试结果

检视测试脚本执行的结果,指出你的应用程序或网站,可能出现问题的所在。

7. 回报发现的问题(defects)

假如你有使用 Quality Center(TestDirector),你可以提报问题单到 Quality Center(TestDirector)中(Quality Center(TestDirector)是 Mercury Interactive 的测试管理工

具,如需要详细的数据,请参考 QuickTest Professional User’s Guide 以及 Quality Center(TestDirector)的文件)。

10.2 取得额外的信息

要取得更多关于 QuickTest Professional 的信息,你可以参考印好的文件,或是在线资源。

10.2.1 印好的文件

除了本手册,QuickTest Professional 也提供以下的文件:

QuickTest Professional Installation Guide

说明如何安装 QuickTest Professional。

QuickTest Professional User’s Guide

以 step-by-step 的方式提供使用 QuickTest Professional 执行自动化测试的指引。此使用手册

(User’s Guide)提供比本手册(Tutorial)更详细的信息。

QuickTest Professional Object Model Reference

说明 QuickTest Professional 的对象、VBScript 语法、methods 以及范例。

QuickTest Professional Shortcut Key Reference Card

详列可以用快速键执行的指令。

10.2.2 在线资源

除了本学习手册之外,你还可以参考以下的文件与资源:

ReadMe (available from the QuickTest Professional Start menu program folder)

- 73 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

Provides the latest news and information about QuickTest Professional.

What’s New in QuickTest Professional (available from Help > What’s New in QuickTest)

Describes the newest features, enhancements, and supported environments in the current version of QuickTest Professional.

QuickTest Professional Context-Sensitive Help (available from dialog boxes and windows)

Describes specific QuickTest dialog boxes and windows.

QuickTest Professional User’s Guide (available from Help > QuickTest Professional Help)

Provides step-by-step instructions for using QuickTest Professional to test your application or Web site. The User’s Guide describes many useful testing tasks and options not covered in this tutorial.

QuickTest Professional Object Model Reference (available from Help > QuickTest Professional Help)

Describes QuickTest Professional test objects, lists the methods and properties associated with each object, and provides syntax information and examples for the methods.

QuickTest Professional Automation Object Model Reference (available from the QuickTest Professional Start menu program folder and from Help > QuickTest Automation Object Model Reference)

Provides syntax, descriptive information, and examples for automation objects, methods, and properties. It also contains a detailed overview to help you get started writing QuickTest automation scripts. The automation object model assists you in automating test management, by providing objects, methods and properties that enable you to control virtually every QuickTest feature and capability.

Microsoft VBScript Reference (available from Help > QuickTest Professional Help)

Includes Microsoft’s VBScript User's Guide and VBScript Language Reference.

Mercury Tours sample Web site (available from the QuickTest Professional Start menu program folder and also from the QuickTest Professional Record and Run Settings dialog box) and the Mercury Tours Windows sample flight application (available from the QuickTest Professional Start menu program folder)

The demonstration applications for QuickTest Professional and the basis for many of the examples in the documentation. The examples and instructions in this tutorial are based on the Mercury Tours Web site (http://newtours.mercuryinteractive.com).

Technical Support Online (available from Help >Technical Support Online)

- 74 -

oldsidney 学习笔记 http://www.oldsidney.idv.tw

Opens Mercury Interactive’s Customer Support Web site in your default Web browser. This site enables you to browse the knowledge base and add your own articles, post to and search user discussion forums, submit support requests, download patches and latest documentation, and more.The URL for this Web site is http://support.mercuryinteractive.com.

Support Information (available from Help >Support Information)

Presents Mercury Interactive's Web site and Customer Support site, information on user discussion forums, and links to information on Mercury Interactive's offices worldwide.

Mercury Interactive on the Web (available from Help > Mercury Interactive on the Web)

Opens Mercury Interactive’s home page in your default Web browser. This site provides you with the latest information about Mercury Interactive and its products, including new software releases, seminars and trade shows, customer support, and educational services. The URL of this Web site is http://www.mercuryinteractive.com.

- 75 -