本主题解释了如何访问和操作测试用例输出。

本章包含:

了解输出

通过将多个输出添加到适当的工具节点,可以让多个工具对一个工具的结果执行操作。或者,您可以让一个输出对另一个输出的结果执行操作,方法是向现有输出节点添加额外的输出。为添加到测试套件中的工具指定一个或多个输出。

基于 SOAP 客户机工具的测试套件测试通常使用输出来操作 SOAP 客户机工具返回的消息。

例如,如果希望测试某个 SOAP 远程过程调用是否始终返回给定输入的相同响应,则可能要创建一个发送特定输出的 SOAP 客户端工具,然后使用 Diff 工具验证该响应。还可以使用输出将 HTTP 流量从这个测试发送到 Results 窗口,以便查看流量。

或者,如果希望测试 Web 服务返回值的格式是否正确,则可能要创建一个 SOAP 客户端工具,然后使用编码标准(Coding Standards)输出来应用规则集,检查输出是否匹配特定的所需模式。如果这样,则可以将回归控制附加到编码标准汇总;然后,如果 Web 服务在随后的测试中未能匹配所需的模式,则 SOAtest 将向您发出警告。

或者,如果您有一个检索 XML 格式数据的扩展工具,则可以自定义该工具,以便它总是将其输出发送到一个 RuleWizard 规则,该规则将验证数据是否正确。如果希望应用 XSLT 之类的转换工具,并希望将转换后的源代码保存在文件中,则需要将文件编写器工具链接到原始工具。

您还可以使用输出来保存文件转换的结果。例如,您可以使用 XSLT 工具转换一组文件,然后将结果文件发送到写文件输出,以便保存它们。

您可以一次添加一个输出,或者一次添加多个输出(例如,快速地将 XML 签名器工具添加到测试套件中的大量 SOAP 客户机工具中)。

添加单个输出

若要添加单个输出:

  1. 选择表示要为其添加输出的测试的测试用例资源管理器树节点。



  2. 单击 Add Test or Output 工具栏按钮。
    • 将打开 Add Test 向导,并显示可用工具列表。
    • 若想了解特定的工具,则选择它并查看显示的描述。
  3. (仅用于 Web 测试)指定是否要使用来自浏览器内容(呈现的 HTML)或原始 HTTP 流量的数据,然后单击 Next
    • Browser contents 指的是浏览器从其加载的所有 HTML、JS、CSS 和其他文件构建的实时数据模型。如果想验证浏览器中出现的值(即,使用浏览器从服务器代码构造的最终 DOM),请选择 Browser contents 。此选项允许您:
      • 添加浏览器验证工具来验证浏览器中出现的值。
      • 为需要重要脚本的复杂验证添加扩展工具。
      • 添加一个浏览器数据库,提取浏览器中出现的值。
    • HTTP traffic 指的是浏览器为构造其数据模型而生成的单个 HTTP 消息。如果希望按原样使用服务器返回的内容(在任何浏览器处理之前),请选择 HTTP traffic  。此选项允许验证一个 http requests/responses。
  4. 在 Add Output 向导的左窗格中,请选择要用作添加输出工具输入的输出类型(来自原始工具)的节点。
  5. 在右窗格中,选择要使用的工具:
  6. 单击 Finish
  7. 双击为该工具所添加的节点,然后在右侧打开的工具配置面板中查看并根据需求进行修改。

添加多个输出

若要添加多个输出:

  1. 请选择适当的节点,以指示应该在何处添加输出。您可以选择任意数量的测试套件和/或工具。
  2. 请进行下列其中一项操作:
    • 右键单击选择项,然后选择 Add Multiple Outputs
    • 单击 Add test or output 工具栏按钮。
  3. 完成打开的向导,然后单击 Finish
    • 使用 For each 下拉菜单指示输出应附加到的工具。
  4. 在工具名称下方的面板中,选择指定要用作添加输出工具输入的输出类型(来自原始工具)的节点。



    • 若要添加可以彼此独立配置的多个输出工具,请从 New tools 选项卡中选择所需的输出工具类型。这将为每个输出工具创建多个唯一的实例。如果其中一个工具被修改,其他工具将不会受到影响。



    • 若要在所有情况下应用完全相同的工具配置,请确保输出作为全局工具存在(如 添加全局测试组件属性中所讨论),然后从“现有工具”选项卡中选择该全局工具。这将创建对单个全局工具的多个引用。如果修改了这个全局工具,那么将修改所有引用的输出。

SOAP 客户机输出选项

Add Output 向导的左窗格中有三个子菜单:Response, RequestBoth。在 Add Output 向导的右窗格中,您可以选择新的或现有的输出工具

  • Response: 发送 SOAP 响应到以下选项:
    • Transport Header: 允许将所需的 New/Existing Output 工具添加到指定为 SOAP 客户机工具传输的 HTTP Header 或 JMS 属性。
    • SOAP Envelope: 允许将所需的 New/Existing Output 工具添加到 SOAP envelope:
    • Attachment: 允许将 Attachment Handler 工具添加为输出。
  • Request: 将 SOAP 请求发送到以下选项:
    • Transport Header: 允许将所需的 New/Existing Output 工具添加到指定为 SOAP 客户机工具传输的 HTTP Header 或 JMS 属性。
    • SOAP Envelope: 允许将所需的 New/Existing Output 工具添加到 SOAP envelope:
  • Both: 将 SOAP 响应和 SOAP 请求发送到以下选项:
    • Traffic Object: 允许您添加扩展名、流量查看器或 WS-I 工具作为输出。
    • Traffic Stream: 将 HTTP 通信(SOAP 请求和 SOAP 响应)发送到所选位置。可用选项包括:
      • File: 将输出发送到文件。如果选择此选项,请确保选择新的 FileStreamWriter 输出模式,然后指定要在打开的控制面板中写入文件的位置。此外,如果要保证该文件路径始终相对于您的测试文件,则在同一面板中启用 Persist as Relative Path to Test 选项。
      • Results: 将输出发送到 GUI 消息面板。
      • stderr: 将标准错误发送到控制台窗口。
      • stdout: 将标准输出发送到控制台窗口。

消息传递客户机输出选项

Add Output 向导的左窗格中有三个子菜单:Response, RequestBoth。在 Add Output 向导的右窗格中,您可以选择新的或现有的输出工具

  • Response: 将 SOAP 响应发送到以下选项:
    • Transport Header: 允许将所需的 New/Existing Output 工具添加到指定为消息传递客户机工具传输的 HTTP Header 或 JMS 属性。
    • HTTP Response: 允许添加所需的 New/Existing Output 工具。
  • Request: 将 HTTP 请求发送到以下选项:
    • Transport Header: 允许将所需的 New/Existing Output 工具添加到指定为 SOAP 客户机工具传输的 HTTP Header 或 JMS 属性。
    • SOAP Envelope: 允许将所需的 New/Existing Output 工具添加到 SOAP envelope:
  • Both: 将 HTTP 响应和 HTTP 请求发送到以下选项:
    • Traffic Object: 允许您添加扩展名、流量查看器或 WS-I 工具作为输出。
    • Traffic Stream: 将 HTTP 流量(HTTP 请求和 HTTP 响应)发送到所选位置。可用选项包括:
      • File: 将输出发送到文件。如果选择此选项,请确保选择新的 FileStreamWriter 输出模式,然后指定要在打开的控制面板中写入文件的位置。此外,如果要保证该文件路径始终相对于您的测试文件,则在同一面板中启用 Persist as Relative Path to Test 选项。
      • Results: 将输出发送到 GUI 消息面板。
      • stderr: 将标准错误发送到控制台窗口。
      • stdout: 将标准输出发送到控制台窗口。

常规工具输出选项

通常,您可以将大多数工具(SOAP 客户机工具除外)的输出直接发送到您选择的工具。此外,如果首先选择 XML 请求输出选项,则可以将 SOAP 客户机输出发送到工具。

有些工具(如编码标准)有 2 个输出:

  • 关于测试的信息。
  • 在测试期间生成的转换后的源。

在这些情况下,您会看到以下选项:

  • Messages: 将前一个工具的结果消息发送到指定的工具。
  • Transformed Source:  将前一个工具创建/修改的源代码发送到下一个指定的工具。例如,如果希望将 XSLT 工具生成的文件发送到 Validate XML 工具,可以使用此选项。
  • No labels