本主题解释创建消息代理的一般过程。
在本章节中:
创建代理
若要创建消息代理:
- 请在 Virtualize 服务器树中,右键单击要部署代理的服务器(Local machine 或远程服务器),然后选择 Add Message Proxy.
。新的 Proxy 节点将被添加到 Message Proxies 文件夹下(如果还没有创建该文件,则创建它)。添加的代理最初将被设置为禁用状态。 - 双击添加的节点以打开其配置面板。
- 在 General 选项卡,重命名代理并输入描述(可选)。
- 单击 Http Listeners 选项卡,以便您可以配置您的 HTTP(S) 侦听器应该侦听的端口。HTTP 监听器简化了记录 HTTP 通讯报文的连接配置:
- 单击 Add Listener 并为该侦听器指定一个名称。
- 单击 Add Port 并输入端口号。
- 如果客户端通过 SSL 发送通讯报文,则启用 Secure 选项并启用验证选项:有关更多详情,请查看 SSL Settings for Listener Ports 。
- 单击 OK ,退出端口编辑器。
- 单击 Add 向侦听器添加其他端口,或再次单击 OK 以添加侦听器。
- 打开 Connections 选项卡,指定代理应该侦听消息的端点和接收到的消息应该指向的端点。对于每个要使用代理的端点,请执行以下操作:
- 单击 Add。
- 选择适当的传输类型。
- 如下完成代理设置:
- 在 Traffic file 字段中,指定当代理设置为录制模式时,要将捕获的通讯报文数据保存的位置。稍后可以使用该通讯报文生成表示以录制模式捕获到的实时通讯报文的虚拟资产。请查阅 Transferring Files Between the Remote Server and the Local Machine 以获得访问记录的通讯报文的简单方法。
- 默认情况下,通讯报文将记录在一个名为
%n_%d_%t.txt
(<proxy_name>_<current_date>_<current_time>.txt
)的文件中。它将存储在recorded_traffic
文件夹中(如果它不存在,将创建该文件夹)。可以修改文件名,但不能修改文件夹。该文件夹始终位于 VirtualAssets 项目中。 - 指定文件名称时,可以使用类似 %d (当前日期) %t (当前时间), %n (代理名称)和 %u (独特的基于时间的 id)的变量。通配符可以一起使用,并与名称混合使用。例如,可以使用
%nProxyTraffic%d
或%u_%d%nTraffic
- 不要同时配置多个代理连接以对同一个通讯报文进行编写。这可能会损坏通讯报文。
- 默认情况下,通讯报文将记录在一个名为
- 在录制会话区域,指定希望如何在通讯报文中记录通讯报文数据:
- Append new session data 将新的通讯报文数据添加至现有通讯报文中(其在 Traffic file 字段中指定)。如果指定文件早就不存在了,则将创建一个新的文件。有关其他信息,请查阅下面的 More on Recording Session Options 。
- Overwrite session data 重写现有通讯报文中的通讯报文数据(其在 Traffic file 字段中指定)。如果指定文件早就不存在了,则将创建一个新的文件。有关其他信息,请查阅下面的 More on Recording Session Options 。
- 每New session file for each message pair (HTTP and internal only) 为每个请求/响应对创建单独的通讯报文。有关其他信息,请查阅下面的 More on Recording Session Options 。
- 然后单击 OK。
现在,您可以按照 启用和禁用代理 中的描述启用代理,然后按照 记录来自消息代理的通讯报文中的描述开始记录。
配置 HTTP 消息代理视频教程
本视频描述了如何设置一个消息代理来捕获实时通讯报文。
更多关于记录会话选项的信息
下表解释了 Virtualize 如何使用不同的通讯报文名值组合和记录会话选项来记录通讯报文数据:
通讯报文名 | 录音选项 | 结果 |
---|---|---|
Default / parameterized | 添加新的会话数据 | 创建一个新文件,其中包含记录会话中的所有请求/响应对。 |
静态 | 添加新的会话数据 | 将新的通讯报文数据添加到指定的通讯报文中(如果存在)。否则,创建一个新文件,其中包含记录会话中的所有请求/响应对。 |
Default / parameterized | 重写会话数据 | 创建一个新文件,其中包含记录会话中的所有请求/响应对。 |
静态 | 重写会话数据 | 重写指定通讯报文中的现有通讯报文数据(如果存在)。否则,创建一个新文件,其中包含记录会话中的所有请求/响应对。 |
Default / parameterized | 为每个消息对创建新的会话文件 | 在记录会话中为每个请求/响应对创建一个新文件。如果检测到多个请求/响应对,则创建多个文件。 |
静态 | 为每个消息对创建新的会话文件 | 如果指定的文件存在,则在每次检测到额外的请求/响应对时重写现有的通讯报文数据。 如果指定的文件不存在,则为第一个请求/响应对创建一个新文件,然后在每次检测到额外的请求/响应对时重写现有的通讯报文数据。 在这两种情况下,结果文件只包含最近的请求/响应对。 |
如果代理使用内部协议并在记录时接收 MQ 通讯报文,则不支持 New session file for each message pair 选项。如果选择此选项,Virtualize 将默认 Overwrite session data 行为。
跨服务器移动代理
若要将代理从一个 Virtualize 服务器移动到另一个 Virtualzie 服务器,只需拖放(或复制/粘贴)它。
防止无限循环
如果您的代理和/或 消息转换 工具无意中设置了一个转发闭环,如 A> B> C> A,这可能导致无限循环。为了防止这种循环,Virtualize 被配置为在 10 次跳之后停止转发。您可以通过设置系统属性 parasoft.proxy.loop.max.limit
(比如, parasoft.proxy.loop.max.limit=5
)来更改这一点。
注意,此循环检测仅适用于内部路由转发(例如,它适用于路由到本地主机,而不是路由到主机名)。