创建并运行 WADL 服务 API 测试

本课程介绍如何使用从 Web 应用程序描述语言 (WADL) 文件导入到 UFT One 中的自定义活动来创建和运行 Web 应用程序服务 API 测试。

WADL 文件可以存储服务描述,以定义服务元数据和操作或方法。UFT One 可以读取 WADL 并在“工具箱”窗格中创建服务的方法和活动。

当标准活动与您的应用程序执行的流程不匹配时,请使用导入的自定义服务。

为 Web 应用程序服务测试创建测试

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

执行以下操作:

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

    有关更多详细信息,请参阅计划测试并创建解决方案

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

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

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

  4. 继续学习导入 MyFlight Web 应用程序服务模型

返回页首

导入 MyFlight Web 应用程序服务模型

将 MyFlight WADL 服务描述及其方法导入到 UFT One 中。

执行以下操作:

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

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

  2. 在“Micro Focus 服务 API”对话框中,单击“复制 WADL 路径”以将服务路径复制到剪贴板。
  3. UFT One 中,选择“添加 REST 服务” 工具栏下拉列表,然后选择“从 URL 导入 WADL”

  4. 在“从 URL 导入 WADL”对话框中,将该 URL 粘贴到您已从“Micro Focus 服务 API”对话框复制的 WADL 路径。

  5. 单击“确定” 将服务导入到 UFT One

    现在,方法将显示在“工具箱”窗格中。

  6. 继续学习编辑测试中的 Web 应用程序服务方法

返回页首

编辑测试中的 Web 应用程序服务方法

本练习介绍如何将其他属性添加到从 WADL 文件导入的服务描述中,这些属性在您将方法添加到测试中时用作原型。

从 WADL 文件导入的原始数据为只读数据,且在导入后无法修改。

执行以下操作:

  1. 将以下代码行复制到文本编辑器,然后将文件另存为 response.xml

    <ArrayOfFlight xmlns="HP.SOAQ.SampleApp" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
     <Flight>
       <Airlines>AA</Airlines>
       <ArrivalCity>Denver</ArrivalCity>
       <ArrivalTime>01:23 PM</ArrivalTime>
       <DepartureCity>London</DepartureCity>
       <DepartureTime>06:12 AM</DepartureTime>
       <FlightNumber>20279</FlightNumber>
       <Price>112.2</Price>
     </Flight>
    </ArrayOfFlight>
    
  2. 在“工具箱”窗格中,右键单击 Flight Service 节点,然后选择“编辑服务”

  3. 在“编辑 REST 服务”对话框中,选择左侧的 Flight Service > Flights_REST > Flights > GetFlights 节点。

  4. 选择右侧的“HTTP” 选项卡,然后将“响应正文”定义为“XML”

  5. 在“响应正文”部分中,单击 ,然后浏览到在步骤 1 中创建的 response.xml 文件并选择该文件。

    导入的属性将显示在网格中。

  6. 单击 以显示您在网格视图中复制的属性。这些属性是您将在此测试中使用的部分属性。

  7. 在“编辑 REST 服务”对话框中,选择 Flight Service > Flights_REST > FlightOrders > ReserveOrder 节点。

  8. 选择右侧的“HTTP” 选项卡,然后将“请求正文”定义为“XML”

  9. 选择 视图后,将以下代码复制到 XML 编辑框中:

    <?xml version="1.0" encoding="utf-8"?>
    <FlightOrderDetails xmlns="HP.SOAQ.SampleApp">
     <Class>Business</Class>
     <CustomerName>John Doe</CustomerName>
     <DepartureDate>2019/12/12</DepartureDate>
     <FlightNumber>1304</FlightNumber>
     <NumberOfTickets>21</NumberOfTickets>
    </FlightOrderDetails>
  10. 单击 以显示您在网格视图中复制的属性。以下属性是您将在此测试中使用的其余属性。

  11. 单击“确定”,然后保存测试以保存对从 WADL 文件导入的服务模型进行的更改。
  12. 继续学习构建 MyFlight Web 应用程序服务测试

返回页首

构建 MyFlight Web 应用程序服务测试

本练习介绍如何使用在测试中导入和修改的 MyFlight 服务方法来构建 Web 应用程序服务测试。完成后,您的测试将包括用于获取航班和创建航班订单的步骤。

API 服务测试流应尽可能匹配应用程序流中的步骤。您应该已经熟悉在应用程序中为 GUI 层创建测试的步骤。有关更多详细信息,请参阅创建和运行 GUI 测试

创建测试结构

  1. 在“工具箱”窗格中,展开 Local Activities > REST Services > Flight Server > Flights_REST > Flights 节点。

  2. GetFlights 方法拖到画布上以创建第一个步骤。

  3. 在“工具箱”窗格中,展开 FlightOrders 节点,然后将 ReserveOrder 方法拖到画布上以添加第二个步骤。

  4. 继续学习将 FlightNumber 值链接到 GetFlights 输出

将 FlightNumber 值链接到 GetFlights 输出

执行以下操作:

  1. 在画布中,选择 ReserveOrder 步骤以在右侧显示“属性”窗格。
  2. 在“属性”窗格中,选择 HTTP 选项卡

  3. 将鼠标悬停在 FlightNumber 值单元格上方或单击该单元格,然后单击“链接至数据源”按钮

  4. 在“为 'FlightNumber' 选择链接源”对话框中,执行以下操作:

    • 在顶部选择“可用步骤”
    • 在左侧选择 GetFlights 步骤。
    • 在右侧选择 FlightNumber 属性。

  5. 单击“确定”,使 UFT One 更新从 GetFlights 步骤输出参数化的 FlightNumber 值。

  6. 继续学习添加要在测试中使用的数据源

添加要在测试中使用的数据源

执行以下操作:

  1. 显示“数据”窗格 (如果尚未显示) (“查看”>“数据”)。
  2. 在“数据”窗格中,单击“新建数据源”,然后选择“Excel”

  3. 在“新建数据源”对话框中:

    • 在“名称”字段中,输入 WADL_Flight
    • 浏览到存储在“<UFT One 安装文件夹>\samples\Flights Application”目录中的 Excel 文件并选择该文件。
    • 选择“链接到 Excel 文件的原始位置”

    单击“确定”将 Excel 数据添加到测试中。

  4. 继续学习将测试步骤链接到数据源

将测试步骤链接到数据源

执行以下操作:

  1. 在画布中,选择 GetFlights 步骤以在右侧显示“属性”窗格。

  2. 在“属性”窗格的“输入/检查点” 选项卡中,将鼠标悬停在“DepartureCity 值”单元格上方或单击该单元格,然后单击“链接至数据源”按钮

  3. 在“选择链接源”对话框中,执行以下操作:

    1. 在顶部选择“数据源列”
    2. 在左侧选择 WADL_Flights!Input
    3. 在右侧选择 DepartureCity

  4. 单击“确定”DepartureCity 属性值链接到数据表的 DepartureCity 列。

  5. ArrivalCityDate 值重复前面的步骤。

    对于 Date 值,请选择 DepartureDate

  6. 返回到画布中,选择 ReserveOrder 步骤以在右侧显示“属性”窗格。

  7. 在“HTTP”选项卡 中,再次重复这些步骤以参数化下列值:

    • Class
    • CustomerName
    • DepartureDate
    • NumberofTickets

    完成后,“属性”窗格应如下所示:

  8. 保存测试,然后继续学习设置数据源导航设置

设置数据源导航设置

配置 UFT One 在测试运行期间处理数据的方式。执行以下操作:

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

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

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

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

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

  6. 继续学习运行 MyFlight WADL 服务测试

返回页首

运行 MyFlight WADL 服务测试

运行您在前面的步骤中创建的 WADL Web 应用程序服务测试。

执行以下操作:

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

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

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

    • 选择“'For' 循环”选项。
    • 在“迭代次数”字段中,输入 8
  4. 单击“运行”工具栏按钮

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

  5. 测试完成并显示运行结果后,在“测试流”中向下导航到 ReserveOrder 节点。运行结果将显示步骤的摘要。

  6. 在捕获的数据中,请注意“请求”和“响应”信息。

    单击“请求正文”和“响应正文”单元格中的链接,以在浏览器窗口中打开 XML 响应和请求信息。

    请求正文

    <FlightOrderDetails xmlns="HP.SOAQ.SampleApp">
    	<Class>Economy</Class>
    	<CustomerName>Clark Frank</CustomerName>
    	<DepartureDate>2115/6/1</DepartureDate>
    	<FlightNumber>1089</FlightNumber>
    	<NumberOfTickets>3</NumberOfTickets>
    </FlightOrderDetails>
    

    响应正文

    <CreatedOrderParams xmlns="HP.SOAQ.SampleApp" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    	<OrderNumber>87</OrderNumber>
    	<TotalPrice>1767.6</TotalPrice>
    </CreatedOrderParams>
    
  7. 继续进行本教程中的某个其他练习。

返回页首

后续步骤: