本主题解释创建消息代理的一般过程。
在本章节中:
添加代理
右键单击
Virtualize 服务器视图、
中的服务器,然后选择 Add Message Proxy。Proxy 节点将添加到 Message Proxies 文件夹下。添加的代理最初将被设置为禁用状态。在使用代理之前,需要对其进行配置。
要删除代理或文件夹,请右键单击该节点并选择 Delete。
如果删除包含代理的文件夹,代理将被取消部署并从服务器中删除。
还可以通过在服务器视图中的节点上单击鼠标右键并选择 Add Message Proxy,直接在消息代理文件夹或子文件夹中创建代理。
系统化消息代理
您可以在服务器上的消息代理文件夹中创建子文件夹并组织其内容。
创建新文件夹
- 右键单击节点,然后选择 New Folder。
- 在提示时为该文件夹指定一个名称。
重命名文件夹
右键单击文件夹并 Rename。不能在服务器视图中重命名默认文件夹(例如,虚拟资产、消息代理等)。
移动文件夹
可以从右键单击菜单将文件夹或代理复制并粘贴到消息代理文件夹中的另一个文件夹中。
也可以将子文件夹和代理拖到其他子文件夹中。
配置代理
双击添加的节点以打开其配置面板。
在 General 选项卡,重命名代理并输入描述(可选)。
单击 Http Listeners 选项卡,以便您可以配置您的 HTTP(S) 侦听器应该侦听的端口。HTTP 监听器简化了录制 HTTP 通讯报文的连接配置:
单击 Add Listener 并为该侦听器指定一个名称。
单击 Add Port 并输入端口号。通过指定 0
作为端口号,可以使消息代理自动分配端口。启用代理后,分配的端口号将显示在控制台中。每次更改/启用消息代理时,都会随机分配端口。您还可以向 messageProxies
API 端点发送 GET 请求,以返回自动分配的端口号。查阅 通过 REST API 进行测试 以获得其他信息。
如果客户端通过 SSL 发送通讯报文,则启用 Secure 选项并启用验证选项:有关更多详情,请查看 SSL Settings for Listener Ports 。
单击 OK ,退出端口编辑器。
单击 Add 向侦听器添加其他端口,或再次单击 OK 以添加侦听器。
打开 Connections 选项卡,指定代理应该侦听消息的端点和接收到的消息应该指向的端点。对于每个要使用代理的端点,请执行以下操作:
单击 Add。
选择适当的传输类型。
如下完成代理设置:
HTTP/HTTPS: 请查阅 HTTP 配置。
JMS: 请查阅 JMS 配置。
MQ: 请查阅 MQ 配置。
Internal: 请查阅 内部传输配置。内部代理可以将通讯报文导向虚拟资产或其他内部传输代理。这可以在部署复杂虚拟资产时减少队列的数量,并在内部路由时提高虚拟资产的性能。
在 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 消息代理视频教程
本视频描述了如何设置一个消息代理来捕获实时通讯报文。
更多关于录制会话选项的信息
下表解释了如何使用不同的通讯报文文件名值组合和录制会话选项来录制通讯报文数据:
通讯报文文件名 | 录音选项 | 结果 |
---|---|---|
Default / parameterized | Append new session data | 创建一个新文件,其中包含录制会话中的所有请求/响应对。 |
Static | Append new session data | 将新的通讯报文数据添加到指定的通讯报文文件中(如果存在)。否则,创建一个新文件,其中包含录制会话中的所有请求/响应对。 |
默认 / 参数化 | Overwrite session data | 创建一个新文件,其中包含录制会话中的所有请求/响应对。 |
Static | Overwrite session data | 重写指定通讯报文文件中的现有通讯报文数据(如果存在)。否则,创建一个新文件,其中包含录制会话中的所有请求/响应对。 |
Default / parameterized | New session file for each message pair | 在录制会话中为每个请求/响应对创建一个新文件。如果检测到多个请求/响应对,则创建多个文件。 |
Static | New session file for each message pair | 如果指定的文件存在,则在每次检测到额外的请求/响应对时重写现有的通讯报文数据。 如果指定的文件不存在,则为第一个请求/响应对创建一个新文件,然后在每次检测到额外的请求/响应对时重写现有的通讯报文数据。 在这两种情况下,结果文件只包含最近的请求/响应对。 |
如果代理使用内部协议并在录制时接收 MQ 通讯报文,则不支持 New session file for each message pair 选项。如果选择此选项,将默认使用 Overwrite session data 行为。
跨服务器移动代理
可以将代理从一个服务器拖到另一个服务器以移动它。或者,可以从一台服务器复制并粘贴到另一台服务器。
代理可以使用全局配置或本地配置连接到 MQ 管理器。全局配置是为每个 Virtualize 服务器定义的,可由部署到服务器的虚拟资产和代理使用(请参阅 连接选项)。本地配置是为单个代理或资产定义的。
如果目标 Virtualize 服务器上不存在 MQ 管理器连接配置,则无法部署连接到全局 MQ 管理器的代理或资产。如果需要将代理/资产移动或复制到另一个 Virtualize 服务器,可以手动定义 MQ 管理器连接,或使用复制功能将连接设置添加到目标服务器(请参阅 复制 MQ 管理器连接)。
防止无限循环
如果您的代理和/或 消息转发 工具无意中设置了一个转发周期,如 A> B> C> A,这可能导致无限循环。为了防止这种循环,Virtualize、 会配置为在 10 次跳转后停止转发。您可以通过设置系统属性 parasoft.proxy.loop.max.limit
(比如, parasoft.proxy.loop.max.limit=5
)来更改这一点。
内置循环检测仅适用于内部路由转发(例如,路由到本机,而不是路由到主机名)。