点击这里给我发消息

我的ITblog我作主  关注→ 『伊波拉』→ 测试 SzDlinXie- ITblog     

·√· 本ITblog站点记录相关的软件技术文档、网络技术杂志、测试技术杂谈等技术文档的管理站点.联系方式:MSN:dowling@sunlike.cn QQ:94595885

统计

积分与排名

测试技术网站链接

最新评论

QuickTest使用正则表达式

QuickTest使用正则表达式

正则表达式语法

通过正则表达式,QuickTest 可以使用不同的值来标识对象和文本字符串。可以在下列三种情况下使用正则表达式:一是定义对象属性和参数方法时;二是对某步骤进行参数化时;三是使用不同值创建检查点时。

正则表达式是指定复杂搜索短语的字符串。使用特殊字符,如句点 (.)、星号 (*)、插字号 (^) 和方括号 ([ ]),可以定义搜索条件。有关正则表达式语法的详细信息,请参阅《QuickTest Professional 用户指南》。


使用正则表达式

在本教程中,将针对一个日期文本字符串创建文本检查点,该字符串随选定的航班日期而变化。可以将该日期定义为正则表达式,这样,检查点将检查捕获的文本字符串是否与期望的格式匹配,而不是检查准确的文本。

为此,您将使用一个正则表达式创建文本检查点,该表达式将与已定义范围内的某一单个字符相匹配。

  1. 启动 QuickTest 并打开“Recording”测试。
  2. 如果 QuickTest 尚未打开,请选择“开始”>“程序”>“QuickTest Professional”>“QuickTest Professional”。

    • 如果“欢迎使用”窗口打开,请单击“打开现有测试”。
    • 如果 QuickTest 打开时未显示“欢迎使用”窗口,请选择
      “文件”>“打开”,或单击“打开”按钮
    • 在“打开测试”对话框中,找到并选择“Recording”测试,然后单击“打开”。

  3. 将该测试另存为“RegExpression”。
  4. 选择“文件”>“另存为”。将该测试另存为“RegExpression”。

  5. 确认是否已启用“Active Screen”选项。
  6. 如果在 QuickTest 窗口底部看不到 Active Screen,请单击“Active Screen”按钮或选择“查看”>“Active Screen”。

  7. 选择要为其创建检查点的文本。
  8. 在关键字视图中,单击 (+) 展开“Welcome:Mercury:Tours”,然后单击“Select a Flight:Mercury”页。该页将显示在 Active Screen 中。

    在 Active Screen 中向上滚动,然后突出显示出发航班 New York to San Francisco (12/29/2004)。右键单击突出显示的字符串,然后选择“插入文本检查点”。将打开“文本检查点属性”对话框。

  9. 对于要检查的文本,输入正则表达式。
  10. 在“已检查的文本”区域中,单击“常量值选项”按钮 。将打开“常量值选项”对话框。



    在“值”框中,用 [0-1][0-9]/[0-3][0-9]/200[0-9] 替换当前日期。这将指示 QuickTest 检查选定文本中的每个字符与正则表达式定义的数字范围格式是否匹配。该表达式检查以下格式:MM/DD/200Y。

    选择“正则表达式”复选框。将出现一个消息框,提示您在每个特殊字符之前插入反斜杠字符。单击“否”。

    注意: 单击“是”会使 QuickTest 将特殊字符 ([)、(-) 和 (]) 作为文本字符而不是正则表达式处理。

    单击“确定”接受其他默认设置,然后关闭“常量值选项”对话框。将打开“文本检查点属性”对话框。



    单击“确定”关闭“文本检查点属性”对话框。

    QuickTest 将向您的测试中添加文本检查点。该检查点在关键字视图中的“Select a Flight:Mercury”页显示为检查操作。

  11. 保存测试。
  12. 选择“文件”>“保存”,或单击“保存”按钮


使用正则表达式运行并分析测试

在本练习中,您将运行测试并对检查点结果进行检查。

  1. 运行“RegExpression”测试。
  2. 单击“运行”按钮 ,或选择“测试”>“运行”。将打开“运行”对话框。

    选择“新建运行结果文件夹”并接受默认的结果文件夹名。

    单击“确定”。当完成测试运行时,将打开“测试结果”窗口。

  3. 对检查点结果进行检查。
  4. 在结果树中,单击 (+) 展开“Test RegExpression Summary”>“RegExpression Iteration 1 (Row 1)”>“Action1 Summary”>“Welcome: Mercury Tours”>“Select a Flight:Mercury”

    选择“检查点`[0-1][0-9]/[0-3][0-9]/200[0-9]'”。



    由于文本以正则表达式指定的格式显示,因此该检查点通过。

  5. 退出“测试结果”窗口。
  6. 选择“文件”>“退出”关闭“测试结果”窗口。


QuickTest将测试拆分为多操作

使用多操作

如果检查一下在以前课程中创建的某个测试,您将发现该测试可拆分为几个不同的过程:

    • 登录到 Mercury Tours 站点。
    • 提交航班订单。
    • 注销。

假设您要为五个不同的航班订单运行测试。正如我们在参数化测试中所见的,您可以对测试进行参数化,使其可以使用五组不同的数据运行五次测试。还可以组织测试,仅使第二个过程运行五次测试,模拟一个用户登录、预定五个航班以及注销的过程。可通过将测试拆分为对不同操作的调用,实现此目的。

要将测试拆分成对不同操作的调用,您可以插入对新操作的调用、将现有操作拆分为对两个操作的调用、插入一个对现有操作副本的调用或插入一个对现有操作的调用。

可以在录制会话期间或之后将对操作的调用插入测试中。使用下列菜单选项或工具栏按钮之一,向测试添加操作:

  • “插入”>“调用新建操作”,或使用“插入对新建操作的调用”按钮。
  • “步骤”>“拆分操作”,或使用“拆分操作”按钮。
  • “插入”>“调用操作副本”,或右键单击某项操作并选择“插入对操作副本的调用”。
  • “插入”>“调用现有操作”,或右键单击某项操作并选择“插入对现有操作的调用”。

新建操作

录制测试

  1. 启动 QuickTest并打开新测试。
  2. 有关详细信息,请参阅录制测试中的步骤 1

  3. 开始录制 Mercury Tours 网站。
  4. 在后面的步骤中,您需要录制一个与录制测试课程中所录制的测试相似的测试。但是,该测试为了优化多操作测试的测试,而设计得有些不同。

    请确认已关闭所有的 Web 浏览器。

    选择“测试”>“录制”,或单击“录制”按钮 。将打开“录制和运行设置”对话框。



    • 在“Web”选项卡中,选择“录制或运行会话开始时打开以下浏览器”。
    • 从“类型”列表中选择浏览器,并确认“地址”框中的 URL 为 http://newtours.mercuryinteractive.com

      请确认已选中“不在已经打开的浏览器上录制和运行”和“当测试关闭时关闭浏览器”选项。

    • 在“Windows 应用程序”选项卡中,确认已选中“在以下应用程序(会话开始时打开的)上录制并运行”,而且没有列出任何应用程序。
    • 单击“确定”。

      QuickTest 开始进行录制,浏览器将打开 Mercury Tours 网站。

  5. 签入 Mercury Tours 网站。
  6. 在“User Name”和“Password”框中,键入在 Mercury Tours 中注册过的名称和密码。

    单击“Sign-In”。

    将打开“Flight Finder”页。

  7. 输入航班详细信息。
  8. 更改下列选项:

    • Departing From:New York
    • On:Dec 29
    • Arriving In:San Francisco
    • Returning:Dec 31
    • 单击“CONTINUE”接受其他默认选项。将打开“Select Flight”页。

  9. 选择一个航班。
  10. 单击“CONTINUE”接受其他默认航班选项。将打开“Book a Flight”页。

  11. 输入必需的乘客信息和购买信息。
  12. 在“Passengers”和“Credit Card”部分输入必需的信息(带有红色文本标签的字段)。

    在该页的底部,单击“SECURE PURCHASE”。将打开“Flight Confirmation”页。

  13. 将浏览器返回至“Flight Finder”页。
  14. 在“Flight Confirmation”页的底部,单击“BACK TO FLIGHTS”按钮。将打开“Flight Finder”页。

    通过结束在“Flight Finder”页上的录制,可以在同一页面上创建开始和结束操作,以便您可以根据需要多次调用操作。

  15. 停止录制。
  16. 在 QuickTest 中,单击“停止” 停止录制过程。

  17. 将测试另存为 ActionA。
  18. 选择“文件”>“另存为”。将测试另存为 ActionA


将测试拆分为两项操作

您的测试当前包含两个主要进程:签入和购买机票,因此将测试拆分为不同的操作非常有意义。

  1. 选择您希望第二个操作开始时所在的页面。
  2. 在关键字视图中,单击 (+) 展开“Action1”>“Welcome:Mercury Tours”。

  3. 将测试拆分为两个操作。
  4. 选择第一个“Find a Flight:Mercury”页并选择“步骤”>“拆分操作”,或单击“拆分操作”按钮 。将打开“Split Action”对话框。



  5. 输入这两项操作的名称和描述。
  6. 在“第一个操作”中的“名称”框中键入:Sign_in

    在“第一个操作”中的“描述”框中键入:Enters user name and password to sign in

    在“第二个操作”中的“名称”框中键入:FlightOrder

    在“第二个操作”中的“描述”框中键入:Chooses and purchases a flight

    单击“确定”关闭“拆分操作”对话框,并接受其他默认选项。这两项操作将显示在关键字视图中。

    选择“视图”>“全部展开”检查每项操作的内容。注意,“FlightOrder”操作是在“Find a Flight:Mercury”页中开始和结束的操作。


插入对新建操作的调用

现在您将插入一个对新操作的调用,并将录制返回 Mercury Tours 主页的步骤,以便整个测试在同一页面中开始和结束。

  1. 插入 ReturnHome 操作。
  2. 选择“插入>“调用新建操作”或单击“插入对新建操作的调用”按钮 。将打开“插入对新建操作的调用”对话框。



    在“名称”框中输入 ReturnHome,确认选择了“测试结尾处”,并单击“确定”。将关闭对话框,并将 ReturnHome 操作添加到测试的末尾。

  3. 为录制准备应用程序。
  4. 确认 Web 浏览器已打开“Flight Finder”页。

    如果未打开浏览器,请在 Mercury Tours 站点 (http://newtours.mercuryinteractive.com) 中打开并签入。将打开“Flight Finder”页。

    将应用程序放置在桌面上,以便可以同时看到 QuickTest 和 Web 浏览器。

  5. 更改录制和运行设置。
  6. 当前已设置了录制和运行设置,因此,每次开始录制测试时,即打开一个新的浏览器。但是,由于您想要在已打开并准备好的浏览器中录制步骤,因此您需要在开始录制之前更改录制和运行设置。

    在 QuickTest 中,选择“测试”>“录制和运行设置”。将打开“录制和运行设置”对话框。



    在“Web”选项卡中,选择“在任何打开的 Web 浏览器上录制和运行测试”并单击“确定”。

  7. 录制 ReturnHome 操作。
  8. 在关键字视图中,选择新的 ReturnHome 操作图标。

    选择“测试”>“录制”,或单击“录制”按钮

    单击“Flight Finder”页左侧的“Home”导航链接。将打开 Mercury Tours 主页。

    在 QuickTest 中,单击“停止” 停止录制过程。

  9. 将“录制和运行设置”还原为原始设置。
  10. 您为了录制 ReturnHome 操作而更改了录制和运行设置,但此更改也将影响 QuickTest 运行测试的方式。如果您希望在运行测试时 QuickTest 新打开一个浏览器访问 Mercury Tours 主页,则需要重新应用原始设置。

    选择“测试”>“运行和录制设置”。将打开“录制和运行设置”对话框。

    在“Web”选项卡中,选择“录制或运行会话开始时打开以下浏览器”。确认 http://newtours.mercuryinteractive.com 显示在“地址”框中并单击“确定”。

  11. 保存测试。
  12. 选择“文件”>“保存”,或单击“保存”按钮


将操作设置为可重用操作

可重用操作类似于编程中的函数。如果您需要将一个过程包含在几个测试中,请录制、修改并增强此过程的步骤并将它们保存在可重用操作中。然后即可从其他测试中调用该操作,而不必每次都进行录制、修改和增强这些同样的步骤。

要从另一个测试中调用某项操作,必须在存储该操作所用的测试中将其设置为可重用操作。您在本课中创建的“Sign_in”和“ReturnHome”操作几乎可以应于在 Mercury Tours 站点上创建的所有测试,因此将其设为可重用操作非常有意义。

  1. 将 Sign_in 变为可重用操作。
  2. 在关键字视图中,右键单击“Sign_in”操作并选择“操作属性”。将打开“操作属性”对话框。选择“可重用操作”复选框并单击“确定”。如果显示消息框,请阅读消息,然后单击“不再显示该对话框”,再单击“确定”。操作图标更改为可重用操作图标

  3. 查看 Sign_in 操作的详细信息。
  4. 注意,您将不再能够在关键字视图中展开“Sign_in”操作。

    如果此前关键字视图中并未显示操作列表,则操作列表将在您将操作转换为可重用操作之后进行显示。操作列表将显示测试中所有可重用操作和外部操作的列表。



    通过从操作列表中选择“Sign_in”,查看“Sign_in”操作的详细信息。将显示“Sign_in”操作的详细信息。

    在操作列表中,选择“测试流程”,将关键字视图中的测试返回到主流程。

  5. 将 ReturnHome 变为可重用操作。
  6. 为 ReturnHome 操作重复步骤 12

  7. 保存测试。
  8. 选择“文件”>“保存”,或单击“保存”按钮


插入现有操作

在设计一组测试时,您可能会发现每个测试都要求一个或多个同样的活动,例如签入。一旦创建了操作并使用一个测试将其保存,您即可将对现有操作副本的调用或对现有操作的调用插入到其他测试中。

在插入对现有操作副本的调用时,可以对复制的操作进行更改,您所做的更改不会影响其他测试,也不会受到其他测试的影响。但是,对现有操作的调用在调用测试中具有只读属性。只能在存储它们所使用的测试中对其进行修改。通过对现有操作的调用,您可以从多个测试中调用同一个操作,这使得维护测试变得很容易,因为当您的应用程序发生更改时,只需更新使用原始测试存储的现有操作。

在后面的练习中,您将新建一个类似于“ActionA”测试的测试,所不同的是,“Sign_in”和“ReturnHome”操作是外部操作(对使用其他测试存储的现有操作的调用),而且对“FlightOrder”操作进行了一点修改。


参数化操作

看一下 QuickTest 窗口底部的数据表,在 ActionB 测试中您将发现四个选项卡:“Global”“Copy of FlightOrder”、“Sign_in [ActionA]”以及“ReturnHome [ActionA]”。

注意: 如果没有显示数据表,请选择“查看”>“数据表”以显示数据表。

“Global”选项卡是一个数据表,其中的数据用于整个测试。如果“Global”表中显示有五行数据,则测试将运行五次。此外,可以使用相关操作表为每个操作创建数据集。如果使用操作参数对步骤进行参数化,并在相应的工作表中输入五行数据,则此操作将在每个测试循环中运行五次。

注意: “Sign_in [ActionA]”和“ReturnHome [ActionA]”数据表显示为灰色,无法进行编辑,因为每一个数据表都属于相应调用的操作,因此仅可以从所调用操作的原始测试进行编辑。

在本部分中,您将为“FlightOrder”操作创建一个数据集,以检查应用程序如何在单个用户会话中处理多个订单。

  1. 打开 ActionB 测试。
  2. 如果尚未打开“ActionB”测试,请选择“文件”>“打开”,浏览至“ActionB”。单击“打开”。

  3. 选择要参数化的步骤。
  4. 单击 (+) 展开“Copy of FlightOrder”>“Welcome:Mercury Tours”>“Find a Flight:Mercury”。

    在关键字视图的“toPort”行中,单击“值”单元格,再单击参数化图标 。将打开“值配置选项”对话框。



    输入参数信息。

    选择“参数”,并确认选择了“DataTable”选项。

    在“名称”框中,键入 ArrivalCity

    您正在专门为“Copy of FlightOrder”操作创建数据集。因此,选择“当前操作表(本地)”。单击“确定”关闭“值配置选项”对话框。

    QuickTest 自动将“ArrivalCity”列添加到“Copy of FlightOrder”数据表并将“San Francisco”添加到“ArrivalCity”列的第一个单元格中。

  5. 参数化其他步骤。
  6. 一个客户在同一天飞到两个不同的地点,这不太符合逻辑,因此对出发和到达时间进行参数化非常有意义。

    在关键字视图中,选择“fromMonth”。使用步骤 2 中的过程来参数化出发日期。确保选择“值配置选项”对话框中的“当前操作表(本地)”。

    在关键字视图中,选择“toMonth”。使用步骤 2 中的解释来参数化抵达日期。确保选择“值配置选项”对话框中的“当前操作表(本地)”。

  7. 在数据表中输入参数化数据。
  8. 在数据表中,单击“Copy of FlightOrder”选项卡。

    在“ArrivalCity”列的第二行键入 Portland。按 Enter 键。

    在出发日期和抵达日期列的第二行键入 Oct

  9. 将操作设置为在本地数据表中运行所有数据。
  10. 默认情况下,QuickTest 仅运行测试中的每个操作的一个循环。您想要 QuickTest 使用“Copy of FlightOrder”选项卡中的所有数据。

    右键单击关键字视图中的“Copy of FlightOrder”操作并选择“操作调用属性”。将打开“操作调用属性”对话框。



    选择“运行”选项卡上的“在所有行上运行”。如果打开消息框,请阅读消息,然后单击“确定”将其关闭。单击“确定”关闭“操作调用属性”对话框。

  1. 保存测试。
  2. 选择“文件”>“保存”,或单击“保存”按钮

    现在您已创建了一个测试,该测试可完成下列操作:签入到 Mercury Tours 站点;提交以下两个航班订单:12 月 29 日到 12 月 31 日 从 London 飞往 San Francisco 的航班和 10 月 29 日到 12 月 31 日从 London 飞往 Portland 的航班;以及通过单击“Home”链接,从系统注销。


运行和分析多操作测试

您将运行“ActionB”测试。整个测试只运行一次,而“FlightOrder”操作将运行两次,为“Copy of FlightOrder”数据表中的每组数据运行一次。

  1. 运行 ActionB 测试。
  2. 请确认已关闭所有的 Web 浏览器。

    单击“运行” 或选择“测试”> “运行”。将打开“运行”对话框。

    选择“新建运行结果文件夹”并接受默认的结果文件夹名。

    单击“确定”。当完成测试运行时,将打开“测试结果”窗口。

  3. 检查测试结果。
  4. 检查结果概要。该测试标记为“完成”。这表明测试运行中未发生任何故障(没有要“通过”的检查点)。

    展开“测试结果”窗口中的“Test ActionB Summary”>“ActionB Iteration 1 (Row 1)”。选择结果树中的“Copy of FlightOrder Summary”操作。注意,概要将显示所有两项循环的结果。



  5. 关闭“测试结果”窗口。
  6. 选择“文件”>“退出”关闭“测试结果”窗口。


posted on 2006-12-20 14:41 szdlinxie 阅读(350) 评论(0)  编辑 收藏 引用 所属分类: 测试技术杂志软件自动化测试测试工具技术

只有注册用户登录后才能发表评论。
点击这里给我发消息