创建并运行 REST 服务 API 测试

本课程介绍如何使用 UFT One 中服务的原型模型来创建和运行 REST 服务 API 测试。

创建 REST 服务测试

将 REST 服务测试添加到 MyFlight 应用程序解决方案中,以测试 MyFlights 应用程序的 Web (API)。

创建 API 测试:

  1. 使用 UFT One 启动将打开 MyFlight 应用程序解决方案。

    有关更多详细信息,请参阅启动 UFT One 并创建解决方案

  2. 选择工具栏中的“新建”下拉列表 ,然后选择“新建测试”
  3. 在“新建测试”对话框中:

    • 选择“API 测试”
    • 在“名称”字段中,输入 MyFlightRESTService
    • 在“位置”字段中,确保将测试保存在 C:%HOMEPATH%\UFT One 目录中。

    单击“创建”将测试添加到解决方案中。

  4. 继续学习创建 REST 服务结构

返回页首

创建 REST 服务结构

本练习介绍如何在 UFT One 中创建 REST 方法和属性的模型,以供 UFT One 在测试 REST 服务性能时用于测试步骤中。

此部分包括以下部分: 

创建服务、资源和方法

  1. 启动 Flight API 应用程序。有关详细信息,请参阅Flight API 层

    备注: 在学习本课程时,请保持“OpenText Flights 服务 API”对话框处于打开状态,以确保 Flights API 服务在 UFT One 运行测试时处于运行状态。

  2. 在“OpenText Flights 服务 API”对话框中,单击“帮助”以显示包含所有方法详细信息的浏览器窗口。

  3. UFT One 中,单击“添加 REST 服务” 工具栏按钮。

  4. 在“添加 REST 服务”对话框中,执行以下操作:

    • 将“新建服务”名称替换为“航班 REST 服务”
    • 单击“添加资源”工具栏按钮

    新的 Resource 节点将添加到树中。将此资源的名称更改为 FlightOrders

  5. 在“添加 REST 服务”对话框中,单击“添加方法”工具栏按钮

    新的 Method 节点将添加到树中。将此方法名称更改为 ReserveOrder

  6. 继续学习配置 REST 服务方法模型 URL

配置 REST 服务方法模型 URL

在服务、资源和方法级别为 UFT One 提供应用程序的服务 URL:

  1. 仍在“添加 REST 服务”对话框中,选择树中的 Flights REST Service 节点。

  2. 在右侧的“常规”选项卡中,将“URL”属性值定义为:

    http://localhost:8000

  3. 在左侧树中选择 FlightOrders 节点。请注意,您刚才输入的 URL 在此处显示为 URL 值。

    在右侧的“常规”选项卡中,将“相对 URL”属性值定义为:

    Flights_REST

  4. 继续学习为 ReserveOrder 方法模型添加请求信息

为 ReserveOrder 方法模型添加请求信息

定义 ReserveOrder 方法的属性值:

  1. 仍在“添加 REST 服务”对话框中,从左侧的树中选择 ReserveOrder 节点。

  2. 在右侧,单击“HTTP 输入/检查点”选项卡 ,并定义以下属性值:

    相对 URL /FlightOrders
    HTTP 方法 POST
  3. 单击右侧的“HTTP”选项卡 ,然后执行以下操作:

    • 从“请求正文”和“响应正文”下拉列表中,选择“XML”

    • 在“请求正文”文本编辑器区域中,输入以下代码:

      <FlightOrderDetails xmlns="HP.SOAQ.SampleApp">
        <Class>Business</Class>
        <CustomerName>John Parker</CustomerName>
        <DepartureDate>2115-02-28</DepartureDate>
        <FlightNumber>3233</FlightNumber>
        <NumberOfTickets>1</NumberOfTickets>
        </FlightOrderDetails>

      单击 以查看在网格视图中输入的属性。

  4. 再次单击“HTTP 输入/检查点”选项卡

  5. 在“输入”区域中,向下滚动到 RequestHeaders > RequestHeaders [1] 节点并将其展开。

    请记录此响应的设置,因为在后续步骤中需要使用它们。

  6. 继续学习为 ReserveOrder 方法模型创建输出属性

为 ReserveOrder 方法模型创建输出属性

  1. 仍在“添加 REST 服务”对话框中,在左侧树中的 ReserveOrder 节点处于选中的情况下,选择右侧的“自定义输入/检查点”选项卡

  2. 单击“添加”>“添加输出属性”

  3. 在“添加输出属性”对话框中,输入以下值:

    • 名称。Total_Price
    • 类型。整型

    单击确定以添加属性。

  4. 重复上一步以添加另一个名为 Order_Number 且类型为“整型”的输出属性。

  5. 继续学习测试 ReserveOrder 方法模型

测试 ReserveOrder 方法模型

先测试在之前的步骤中创建的模型,然后再将其添加到测试中:

  1. 在“添加 REST 服务”对话框中,在左侧的 ReserveOrder 方法节点处于选中的情况下,单击“运行方法” 工具栏按钮。

    可能需要展开左侧窗格才能看到该按钮。

    UFT One 将运行该方法以对其进行测试,并在“添加 REST 服务”对话框的底部显示结果。

    例如:

  2. 单击“确定”将已创建的服务模型添加到“工具箱”中。
  3. 继续学习将方法添加到 REST Service Test中

返回页首

将方法添加到 REST Service Test

将在上面的 REST 服务模型中创建的方法添加到 REST API 测试中。

导入数据源,然后添加链接到数据源的步骤以及该步骤的检查点。

将数据源导入到测试中:

  1. 将用于测试的数据源导入。在“数据”窗格 (“查看”>“数据”) 中,单击“新建数据源”,然后选择“Excel”

  2. 在“新建 Excel 数据源”对话框的“数据源名称”字段中,输入 Flights_REST

  3. 浏览到保存在“<UFT One 安装文件夹>\samples\Flights Application”目录中的 Excel 文件并选择该文件。

  4. 选择“链接到 Excel 文件的原始位置”,然后单击“确定”以将 Excel 文件中的数据添加到测试中。

  5. 继续学习添加步骤并将其属性链接到数据源:

添加步骤并将其属性链接到数据源:

  1. 在“工具箱”窗格中,展开 Local Activities > Flights REST Service 节点,并将 ReserveOrder 步骤拖到画布中。

  2. 选择画布中的 ReserveOrder 步骤以显示“属性”窗格。

  3. 单击右侧的“HTTP”选项卡

    单击“网格”按钮,并使用“数据源列”中的值来定义以下值:

    • Class
    • CustomerName
    • DepartureDate
    • FlightNumber
    • NumberofTickets

    对于每个属性,执行以下操作:

    1. 单击“值”单元格或将鼠标悬停在其上方,然后单击“链接至数据源”
    2. 在“选择链接源”对话框中,选择“数据源列”,然后选择左侧的 Flights_REST! 输入节点。
    3. 在右侧,为要参数化的属性选择相关列。
  4. 继续学习为 ReserveOrder 步骤设置检查点

为 ReserveOrder 步骤设置检查点

将检查点添加到测试中以验证 API 响应值:

  1. 选择画布中的 ReserveOrder 步骤以显示“属性”窗格,然后选择“HTTP”选项卡

  2. 将以下代码保存到 UFT One 计算机上名为 response.xml 的文件中:

    <?xml version="1.0"?>
    <CreatedOrderParams xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="HP.SOAQ.SampleApp">
    	<OrderNumber>93</OrderNumber>
    	<TotalPrice>374.400024</TotalPrice>
    </CreatedOrderParams>
  3. 在“HTTP”选项卡 底部的“响应”区域中,确保已选择“XML”作为“响应正文”

  4. 单击 ,然后浏览到刚才创建的 response.xml 文件并选择该文件。

    UFT One 将加载 XML 架构。

  5. 在加载的新架构中,更新以下值:

    OrderNumber > 10
    TotalPrice < 500
  6. 继续学习运行 REST 服务测试

返回页首

运行 REST 服务测试

运行在之前的练习中创建的测试并查看运行结果:

  1. 确保 Flight API 应用程序仍处于运行状态。有关更多详细信息,请参阅分析应用程序

  2. 定义测试迭代的次数。在画布中,选择“测试流”框。

  3. 在“属性”窗格上的“输入”选项卡 中:

    • 选择“'For' 循环”选项。
    • 在“迭代次数”字段中,输入 8
  4. 配置 UFT One 在测试运行期间处理数据的方式:

    1. 在画布中,选择“测试流”框以显示测试流程的“属性”窗格。

    2. 在“属性”窗格中,选择数据源选项卡

    3. 在表中选择 Flights_REST!Input 条目,然后单击“编辑”

    4. 在“数据导航”对话框中,按如下所示指定数据导航详细信息:

      开始于: 第一行
      移动行数: 向前 1 行
      结束于: 最后一行
      在到达最后一行时 环绕
    5. 单击“确定”,然后保存测试。

  5. 单击“运行”工具栏按钮

    确保 MyFlightRESTService 测试处于选中状态,然后单击“运行”以运行测试。

  6. 测试完成并显示运行结果后,在“测试流”中向下导航并选择任意 ReserveOrder 节点。

    在右侧的“已捕获数据”区域中,查看测试运行期间生成的“请求和响应”数据。

    • 单击表中的任意链接以查看完整的请求或响应代码。

      例如:

    • 一直向下滚动,以查看检查点数据。

      在以下示例中,其中一个检查点失败,因为包含大于 500 的价格。

  7. 继续学习解决 REST 服务冲突

返回页首

解决 REST 服务冲突

如果在创建测试后更改了服务模型的属性,请解决 REST 服务冲突。

在本练习中,您将创建冲突,然后使用 UFT One 的解决冲突向导来更新您的测试。

在 REST 服务中创建冲突

与更新后的服务模型进行比较时,编辑该服务模型的属性以在测试中创建冲突:

  1. 在“工具箱”窗格中,右键单击 Local Activities > Flights REST Service 节点,并选择“编辑服务”

  2. 在“编辑 REST 服务”对话框中,选择 ReserveOrder 节点。

  3. 在右侧选择“自定义输入/检查点”选项卡

  4. 选择 Total_Price 属性,然后单击顶部的“编辑属性”按钮

  5. 将名称更改为 TotalPrice (删除单词之间的下划线)。

  6. 重复执行先前的步骤,以将 Order_Number 属性名称更改为 OrderNumber

  7. 单击“确定”以更改服务并关闭对话框。

    UFT One 将保存更改,现在画布中会显示警报,指示值不再匹配。

  8. 继续学习解决已创建的冲突

解决已创建的冲突

现在,您的测试与 API 服务模型之间存在冲突,请解决该冲突以使用新值更新您的测试:

  1. 单击画布中的警报以显示其详细信息,然后单击警报文本以打开“解决 REST 冲突”向导。

  2. 在第一个屏幕“选择步骤”中,选中 ReserveOrder 步骤对应的复选框,并单击“下一步”

  3. 向导中的“解决冲突”屏幕将以红色突出显示含冲突的所有步骤。

    在底部的“输出属性”区域的“更改后”框中,选择 Total_Price 属性。

  4. 单击“..之前”和“..之后”框之间的“删除”按钮以删除 Total_Price 属性。

  5. 重复以上步骤将 Order_Number 属性也删除。

  6. 单击“下一步”。“完成”屏幕应确认您已成功删除所有冲突。

  7. 单击“完成”退出向导,并确认已从画布中删除警报。

    测试中的属性名称现已更新,以反映服务模型中的新名称。

  8. 保存测试,然后继续学习本教程中的其他课程。

返回页首

后续步骤: