Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

单元测试创建后,可以利用到无需任何附加工作的基于场景的测试中。场景测试允许你模仿在正常使用 单元测试创建后,可以利用到无需任何附加工作的基于场景的测试中。场景测试允许您模仿在正常使用 web 服务过程中可能发生的业务逻辑或事务。还允许你找到仅在特定事件序列之后才出现的 服务过程中可能发生的业务逻辑或事务。还允许您找到仅在特定事件序列之后才出现的 bug。

Parasoft SOAtest 允许创建多个步骤场景,每个步骤执行相同的服务或完全不同的应用程序接口。这允许你自动化业务用例场景的建模(如 允许创建多个步骤场景,每个步骤执行相同的服务或完全不同的应用程序接口。这允许ji您自动化业务用例场景的建模(如 End-to-End Business Process Testing中所述)。这还允许你发现只有在特定的事件序列之后才会出现的意外行为。中所述)。这还允许您发现只有在特定的事件序列之后才会出现的意外行为。

“Scenario Test - Search, Add to Cart, and Remove from Cart”测试套件中给出的场景测试示例表示了客户在使用书店 web 服务时可能调用的典型操作序列。在本例中,它表示这样一种情况:客户搜索一本书,为那本书下订单,然后删除先前下的订单。

此场景测试引入了一个名为 XML 数据库的工具。该工具允许提取 XML 元素值并将这些值存储在内存中,以便在以后的测试中使用。在本例中,你将存储服务在搜索一本书之后返回的图书 元素值并将这些值存储在内存中,以便在以后的测试中使用。在本例中,您将存储服务在搜索一本书之后返回的图书 Id,然后在接下来的测试中,使用该 ID 购买图书。你还将存储在为该书下了订单之后返回的订单号。然后,在接下来的测试中,使用该订单号从系统中删除订单。购买图书。您还将存储在为该书下了订单之后返回的订单号。然后,在接下来的测试中,使用该订单号从系统中删除订单。

当完成本教程这个部分时,你的测试套件应类似 当完成本教程这个部分时,您的测试套件应类似 SOAtestTutorial.tst 文件中的 "Scenario Test - Search, Add to Cart, and Remove from Cart” 测试套件。

注意,本节课假设你已经完成了前面的课程。为了跟上这堂课,请确保你已经完成了之前的课程。 注意,本节课假设您已经完成了前面的课程。为了跟上这堂课,请确保您已经完成了之前的课程。 

创建场景测试套件

若要创建该场景:

  1. 请选择上次练习的 Test Suite:Functional Tests 节点,然后单击 Add Test Suite 按钮。



  2. Add Test Suite 向导中选择 Empty ,然后单击 Finish 按钮。
  3. 双击新建的 Test Suite:Test Suite 节点被添加到测试套件树中。
  4. 在测试套件配置面板中,将 Scenario Test - Search, Add to Cart, and Remove from Cart 输入到 Name 字段中,然后单击 Save 工具栏按钮。
  5. 从前面创建的 CartServicePort 测试套件中复制积极的 测试套件中复制正向的 getItemByTitleaddItemToCartupdateItemInCart SOAP 客户机测试节点,并将它们粘贴到 Scenario Test - Search, Add to Cart, and Remove from Cart 测试套件中。如果需要,可以拖放来重新排序。

...

存储将在后续测试中使用的结果
Anchor
Storing Results to Be Used in Subsequent Tests
Storing Results to Be Used in Subsequent Tests

你可以通过如下配置 您可以通过如下配置 XML 数据库来存储结果:

  1. 双击 Test 1: getItemByTitle 节点,该节点位于 Scenario:Scenario Test - Search, Add to Cart, and Remove from Cart 测试套件中。
  2. 在测试配置面板中,从右上角的 Data Source 下拉菜单中选择 Books



  3. 选择 titleKeyword,然后从 itemId 元素下拉菜单中选择 ParameterizedKeywords



  4. 双击 Test 2: addItemToCart 节点,该节点位于 Scenario Test - Search, Add to Cart, and Remove from Cart 测试套件中。
  5. 对于 itemID,从下拉菜单中选择 ParameterizedUse Data Source Wizard



  6. 如下所示完成 Parameterize with Value From Existing Message 对话框,以便在运行此测试时,将自动插入 Test 1 中存储的值作为 itemId 元素的值:
    1. 从对话框顶部的 现有 消息 菜单中选择 Test 1: getItemByTitle
    2. 预期的 消息 树中选择 id 元素,并单击 Add 按钮。这个 id 显示在 所选 元素 列表中,并带有与所选测试对应的 Data Source Column Name 。 



    3. 单击 OK 按钮。
      Test 1:id[1] 现在作为 itemId的参数化值显示在右边的 GUI 面板中。你还将注意到,在场景测试中, 面板中。您还将注意到,在场景测试中, Response SOAP Envelope> XML Data Bank 节点现在出现在 Scenario Test - Search, Add to Cart, and Remove from Cart 测试套件的 Test 1: getItemByTitle 节点中。
  7. 在“测试配置”面板中,为 quantity 元素输入固定值 3,然后单击 Save 工具栏按钮。



  8. 双击 Test 3: updateItemInCart 节点。
  9. 对于 cartId,从下拉菜单中选择 ParameterizedUse Data Source Wizard
  10. 如下所示完成 Parameterize with Value From Existing Message 对话框,以便在运行此测试时,将自动插入 Test 2 中存储的元素值 cartId 作为这里 cartID 元素的值:
    1. 从对话框顶部的 现有 消息 菜单中选择 Test 2: addItemtoCart
    2. 预期的 消息 树中选择 cartId 元素,并单击 Add 按钮。 cartID 元素显示在 所选 元素 列表中,并带有与所选测试对应的 Data Source column name



    3. 单击 OK 按钮。
      Test 2:cartId[1] 现在在测试配置面板中显示 cartId的参数化值。你还将注意到,在场景测试中, 的参数化值。您还将注意到,在场景测试中, Response SOAP Envelope> XML Data Bank 节点现在出现在 Scenario Test - Search, Add to Cart, and Remove from Cart 测试套件的 Test 2: addItemtoCart 节点中。
  11. 配置 itemId 以使用测试 1 中的 ID。



  12. 单击 保存 工具栏按钮。
  13. 选择 Scenario:Scenario Test - Search, Add to Cart, and Remove from Cart 节点,然后单击 Test 工具栏按钮。当这个测试运行时,存储在 Test 1 中的 id 元素值将自动插入 Test2Test3中的 itemID 元素。此外, Test2 中的 cartId 将在 Test3中使用。
  14. 探索流量,方法是展开 Scenario:Scenario Test - Search, Add to Cart, and Remove from Cart 并双击每个测试的 Traffic Object> Traffic Viewer 节点。
  15. 注意, Test1 返回的图书 id 被用作 Test2的输入。同时, Test2 放置的订单 cartId 被用作 Test3的输入。
  16. 右键单击 Scenario:Scenario Test - Search, Add to Cart, and Remove from Cart 节点,然后选择 Create/Update Regression Controls
  17. 在响应验证向导中,选择 Create Regression Controls, click Next,选择 Create Multiple Controls,然后单击 Finish 按钮。运行测试并将回归控制添加到每个 SOAP 客户机测试中。
  18. 选择 Scenario:Scenario Test - Search, Add to Cart, and Remove from Cart 节点,然后单击 Test 工具栏按钮。注意报告的测试失败。
  19. 检查出现在质量任务视图中的错误消息。这些回归失败是由于响应消息中出现的动态内容造成的。在下面的步骤中,我们将忽略具有这种类型的动态数据的元素。
  20. 在质量任务视图中,右键单击每个 TestSuite 节点下报告的第一个错误,并从快捷菜单中选择 IgnoreXPath 。在显示的 IgnoreXPathSettings 对话框中,单击 OK 按钮。在此步骤中,你应该忽略两个 按钮。在此步骤中,您应该忽略两个 XPath。
  21. 请选择上次练习的 Test Suite:Scenario Test - Search, Add to Cart, and Remove from Cart 节点,然后单击 Test 工具栏按钮。现在所有的测试都应该成功了。

现在,你已经创建了一个功能齐全的场景测试,测试在正常使用书店服务期间可能发生的一个可能的业务事务。对于其他练习,你可以尝试创建可能发生的其他场景。还可以为扩展的测试覆盖率创建负面测试用例。现在,您已经创建了一个功能齐全的场景测试,测试在正常使用书店服务期间可能发生的一个可能的业务事务。对于其他练习,您可以尝试创建可能发生的其他场景。还可以为扩展的测试覆盖率创建负面测试用例。