Versions Compared

Key

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

本主题解释如何记录 HTTP、JMS 和 MQ 流量,以用于测试生成目的。通讯报文,以用于测试生成目的。

本章包含:

Table of Contents
maxLevel1

...

如果没有 Parasoft Virtualize,那便可以使用 SOAtest 的记录代理在应用程序运行时监视和捕获来自服务的实时 HTTP、JMS 或 MQ 流量。  这些代理可以同时捕获通过多个端点的实时流量。通讯报文。  这些代理可以同时捕获通过多个端点的实时通讯报文。

当应用程序运行时,记录代理监视指定传输上的通信。SOAtest“监听”流量请求和响应,然后构建一个合法请求当应用程序运行时,记录代理监视指定传输上的通信。SOAtest“监听”通讯报文请求和响应,然后构建一个合法请求/响应对的通讯报文。然后,将该流量用来生成测试套件,该套件表示在预配置的工具中捕获到的行为。响应对的通讯报文。然后,将该通讯报文用来生成测试套件,该套件表示在预配置的工具中捕获到的行为。

支持 JMS、MQ、HTTP、HTTPS (SSL)、Basic、Digest 和 Kerberos 身份验证;不支持 NTLM。

不支持 HTTP 分块和 continu 数据头。

使用这种方法记录和生成流量测试涉及两个主要步骤:使用这种方法记录和生成通讯报文测试涉及两个主要步骤:

  1. 捕获文件中的流量。告诉 捕获文件中的通讯报文。告诉 SOAtest 如何连接以及希望它监视什么。启用监视后,SOAtest 将从捕获的请求和响应构建一个通讯报文。
    • 有关更多详情,请查阅以下内容。
  2. 从该通讯报文中创建测试。

使用 SOAtest

...

录制通讯报文

如要跨一个或多个端点捕获实时流量,请完成以下步骤:如要跨一个或多个端点捕获实时通讯报文,请完成以下步骤:

  1. 选择 File> New> Other> SOAtest> Traffic> Record Traffic
  2. 对于要记录通讯报文的每个端点,请执行以下操作:对于要记录流量的每个端点,请执行以下操作:
    1. 在 Configure Proxies for Recording Traffic 对话框汇总,单击 Add



      打开的向导将预先填充您已配置的任何连接。
    2. Proxy Type下,选择所需传输(HTTP、JMS、MQ)。
    3. 完成所选传输的代理设置。请查阅 自定义分组标准 1录制测试生成的 HTTP、JMS 和 MQ 流量MQ Recording Configuration 以获得更多详情。
    4. Traffic file 字段中,指定要保存将创建来捕获此流量的通讯报文的位置。稍后可以使用该通讯报文生成表示捕获到的实时流量的资产。 字段中,指定要保存将创建来捕获此通讯报文的通讯报文的位置。稍后可以使用该通讯报文生成表示捕获到的实时通讯报文的资产。
    5. 指定要如何在通讯报文中记录通讯报文数据:指定要如何在通讯报文中记录流量数据:
      • Append new session data 将新的流量数据添加至现有通讯报文中(其在 将新的通讯报文数据添加至现有通讯报文中(其在 Traffic file 字段中指定)。如果指定文件早就不存在了,则将创建一个新的文件。
      • Overwrite session data 重写现有通讯报文中的流量数据(其在 重写现有通讯报文中的通讯报文数据(其在 Traffic file 字段中指定)。如果指定文件早就不存在了,则将创建一个新的文件。
  3. 然后单击 OK



  4. 在主向导面板中,单击 Next
  5. 将被测试应用程序的主机和端口设置为向导中指定的位置。



  6. 从被测试的应用程序中,生成您想要记录的流量。从被测试的应用程序中,生成您想要记录的通讯报文。
  7. 单击 Finish

当实时通信被捕获时,您可以在可用选项卡之间切换,以查看每个端点上的请求和响应。

一旦流量被捕获,您便有两个选项来生成测试:一旦通讯报文被捕获,您便有两个选项来生成测试:

HTTP 录制配置

本节解释如何配置通过 HTTP 传输发送和接收消息的记录代理。

...

  1. 确保 SOAtest 服务器证书设置启用了 Trust all certificates (在 Parasoft> Preferences> Parasoft> Security中),或者服务的服务器证书被正确地添加到 SOAtest cacerts 文件中(关于更多详情,请查阅 配置部署在 HTTPS 上的服务 )。
  2. 确保您有客户端证书密钥存储库文件(并且,如果客户端证书和私钥存储在不同密匙库 — 私钥密钥存储库文件)以及相关的密钥存储库的密码、密钥存储库类型信息、私钥密码和名称的别名用于证书/私钥。

...

捕获通讯报文
Anchor
Capturing the Traffic
Capturing the Traffic

若要生成从使用服务器端 SSL 或双向 SSL 的服务捕获 HTTPS 流量的通讯报文,请完成向导,如 通讯报文的通讯报文,请完成向导,如 Capturing the Traffic (上述)中所述。

...

JMS 前提条件
Anchor
JMS Prerequisites
JMS Prerequisites

JNDI

请查阅 JMS 前提条件

队列分配

当在队列上交换流量时,假设有一个客户机应用程序向客户机目标队列发送请求,而服务器应用程序从队列接收该消息,然后将另一条(应答)消息发送到第二个队列,以便客户机接收。当在队列上交换通讯报文时,假设有一个客户机应用程序向客户机目标队列发送请求,而服务器应用程序从队列接收该消息,然后将另一条(应答)消息发送到第二个队列,以便客户机接收。

考虑到这个场景,Parasoft SOAtest 在客户机和服务器之间使用“中间人”(也称为代理)方法,因此消息传递提供者上需要两个额外的队列来促进该中介。SOAtest 代理将从客户机放置消息的位置接收消息,记录消息内容(如果启用了记录功能),然后将消息放在服务器将从其接收消息的队列中。类似地,服务器将消息发送到一个队列,在这个队列中代理接收它,并记录它(如果启用了记录功能),然后将它放回客户机期待应答响应的队列中。

...

  1. 在 Proxy (Client) and Target Application (Server) Connection Settings 对话框中,选择 JMS 作为 Proxy Type



  2. 指定您是使用 JMS 队列还是主题、提供者 URL、初始上下文或连接工厂(请确保将相关 jar 添加到 SOAtest 类路径中),以及任何附加的初始上下文 JNDI 属性、身份验证,以及您希望监视以收集流量的队列属性、身份验证,以及您希望监视以收集通讯报文的队列/主题。

    Info
    iconfalse
    title使用 JMSReplyTo 作为响应

    该选项指定是否使用消息的 JMSReplyToQueueName 数据头来确定代理发送响应的位置。如果启用了 Use JMSReplyToQueueName for Response 选项,来自传入请求的值将用于确定将响应发送到何处。  如果未启用该选项,响应将发送值 UI 中指定的队列;JMS 消息数据头中的值将被忽略。


    • For Queues: SOAtest 将捕获发送给客户端 Destination queue 的消息,然后将其转发到服务器 Reply to queue 队列,以进行处理。服务器 Destination queue 是服务器将在其上放置响应消息的队列(处理请求消息之后)。SOAtest 将捕获这些消息并将其转发至客户端 Reply to queue。有关更多详情,请查阅 Configuring Queues for Recording



    • For Topics: SOAtest 监控客户端 Subscribe topic 上传入的请求,以及服务端 Publish topic上输出的响应。

...

查阅Adding Necessary Jar Files to the Classpath

队列分配

当在队列上交换流量时,假设有一个客户机应用程序将请求放到客户机目标队列中,而服务器应用程序从队列中获取消息,然后将另一条(应答)消息放到第二个队列中,以便客户机获取。当在队列上交换通讯报文时,假设有一个客户机应用程序将请求放到客户机目标队列中,而服务器应用程序从队列中获取消息,然后将另一条(应答)消息放到第二个队列中,以便客户机获取。

考虑到这个场景,Parasoft SOAtest 在客户机和服务器之间使用“中间人”(也称为代理)方法,因此消息传递提供者上需要两个额外的队列来促进该中介。SOAtest 代理将从客户机放置消息的位置接收消息,记录消息内容(如果启用了记录功能),然后将消息放在服务器将从其接收消息的队列中。类似地,服务器将消息发送到一个队列,在这个队列中代理接收它,并记录它(如果启用了记录功能),然后将它放回客户机期待应答响应的队列中。

...

假设有一个客户机/消费者应用程序(我们将其称为“客户机”)在目标队列 REQUEST_QUEUE 上 sends/puts/pushs 请求消息,并从 RESPONSE_QUEUE 上 receives/gets/pulls 响应消息或应答消息。还假设有一个服务器/提供者应用程序(我们将其称为“服务器”)从 REQUEST_QUEUE 中 receives/gets/pulls 消息,并将响应 sends/puts/pushes 到 RESPONSE_QUEUE。


有两种记录流量的可能配置方案。其中一种方法是修改客户端应用程序端使用的队列。另一种方法是修改服务器上使用的队列。有两种记录通讯报文的可能配置方案。其中一种方法是修改客户端应用程序端使用的队列。另一种方法是修改服务器上使用的队列。

使用的最佳方法取决于您访问和修改每个终端的能力。在这两种情况下,您需要创建两个额外的队列来启用记录过程。这里,我们把它们标记为 PROXY_REQUEST_QUEUE 和 PROXY_RESPONSE_QUEUE。

...