使用功能消息代理配置组件实例时,可以选择一个现有的消息代理,也可以创建一个新的消息代理。一旦启用了代理,则可以通过 CTP 启用或停止录制。
使用现有代理配置组件实例
- 编辑环境图,然后从组件下拉菜单中选择新建实例。悬停时菜单变为可见。详情请参阅添加组件实例。
- 指定名称并点击选择消息代理。
- 如果希望选择可用代理的所有连接,请点击选择。
- 如果想要选择可用代理的特定连接(例如,您配置了三个 HTTP 连接,一个 MQ 连接和一个 JMS 连接,但现在您只使用 MQ 连接),则将鼠标悬停在代理上,点击出现的连接链接,然后点击要添加连接的选择链接。还可以点击选择全部以选择所有显示的连接。将显示每个可用连接的监听器/代理路径和转发/目标路径。
- 如果想要选择可用代理的特定连接(例如,您配置了三个 HTTP 连接,一个 MQ 连接和一个 JMS 连接,但现在您只使用 MQ 连接),则将鼠标悬停在代理上,点击出现的连接链接,然后点击要添加连接的选择链接。还可以点击选择全部以选择所有显示的连接。将显示每个可用连接的监听器/代理路径和转发/目标路径。
- 如果希望调整代理设置(取自代理的当前状态),则点击编辑图标,然后进行所需的修改;具体选项在代理配置详情中说明。
- 如果希望添加消息代理连接,则点击 + 图标,然后根据代理配置详情中的说明指定连接设置。
创建新代理
若要在配置组件实例:
- 请编辑环境图,然后从组件下拉菜单中选择新建实例。悬停时菜单变为可见。详情请参阅添加组件实例。
- 点击要部署新代理的 Virtualize 服务器右侧的创建新的代理链接。
- 在代理名称字段中输入易识别的代理名称。默认情况下,代理保存在
VirtualAssets
文件夹中。要指定VirtualAssets
文件夹的子文件夹来保存此代理,请在文件夹字段中输入。无需在开头添加 "/"。例如,输入“parasoft/proxies”可将代理保存在/VirtualAssets/parasoft/proxies
中。如果未指定文件夹,代理将保存在VirtualAssets
根目录中。 - 指定代理设置。注意,目标应用连接必须匹配当前实例指定的真实或虚拟端点。详情请参阅Proxy Settings Details。
- 点击应用图标。
一旦组件被保存,代理将添加至指定的 Virtualize 服务器中(并可在 CTP 中使用)。代理名称将由 Virtualize 服务器分配(比如,Proxy-2)。若要查看 Virtualize UI 中的新代理,请刷新 Virtualize UI 中的 Virtualize 服务器视图。
在您为该组件实例提供一个环境前,新的代理将保持禁用。提供环境后,将启用并配置该代理。任何从该代理创建的通讯报文文件都将默认保存在 Virtualize 的 VirtualAssets 项目中。
启用代理
启用代理有几种方法:
- 为环境提供使用该代理的组件实例。
- 从代理的页面级操作菜单中选择启用操作。
- 启用 Virtualize UI 中的代理。
- 从 Virtualize API 中调用合适的操作。
启用和停止代理录制
在 CTP 启用录制之前必须启用代理。代理可在 CTP 中启用(比如,通过使用代理提供的实例,或者启用详情页面的代理),也可在 Virtualize 中启动(比如,来自 Virtualize 服务器视图)。代理录制必须通过 Virtualize UI、Virtualize API 或 CTP 启用和停止。
若要从 CTP 启用录制:
- 在编辑模式下,鼠标悬停在组件集上以使用已启用的代理,然后从下拉菜单中选择开始录制。
右下角的方框将确认录制已开始。
希望停止录制时:
- 在编辑模式下,从组建的下拉菜单中选择停止录制。
录制结束后,将看到一个询问框,询问您是否希望现在或稍后为此记录的通讯报文创建虚拟资产。
如果选择现在,CTP 将使用该通讯报文的虚拟资产自动预配置新组件实例。您将只需确定该设置,(可选项)重命名实例,点击完成,然后将创建并部署新的虚拟资产。
代理设置详情
“put”队列始终是 AUT/client 放置/发送请求消息的地方。“get”队列是 client/AUT 获得响应消息的地方。Virtualize 将捕获发送给客户端 Put 队列的请求消息,然后将其转发到服务器 Put 队列,以进行处理。服务器 Get 队列是服务器将在其上放置响应消息的队列(处理请求消息之后)。Virtualize 将捕获消息并将其转发至客户端 Get 队列。
HTTP 选项
从代理(Proxy)类型下拉菜单选择 HTTP,以配置通过 HTTP 连接的消息代理。
选项 | 说明 |
---|---|
通讯报文文件 | 指定当代理设置为录制模式时,要将捕获的通讯报文数据保存的位置。稍后可以使用该通讯报文文件生成表示以录制模式捕获到的实时通讯报文的虚拟资产。 默认情况下,通讯报文将被录制在名为 %n_%d_%t.txt (<proxy_name>_<current_date>_<current_time>.txt) 的文件中,并将被存储在 recorded_trffic 文件夹内(如果不存在,将会创建)。提供包含消息代理的实例时,通讯报文文件必须位于 VirtualizeAssets 项目中。如果将位置设置在 VirtualAssets 项目外,则提供请求(PUT 请求)将失败。然而,当使用 Virtualize 配置代理时,CTP 可以读取 VirtualAssets 项目外的通讯报文文件(GET 请求)。 指定文件名称时,可以使用类似 %d(当前日期)%t(当前时间)、%n(代理名称)和 %u(独特的基于时间的 id)的变量。通配符可以一起使用,并与名称混合使用。例如,可以使用 %nProxyTraffic%d 或 %u_%d%nTraffic。 不要同时配置多个代理连接以对同一个通讯报文文件进行编写。这可能会损坏通讯报文文件。 |
附加通讯报文数据 | 启用此选项以将新的通讯报文数据添加至现有通讯报文文件中(如通讯报文文件字段中所指定)。如果指定文件早就不存在了,则将创建一个新的文件 |
使用 HTTP 监听器 | 启用此选项指定特定于代理的端口。 如果客户端通过 SSL 发送通讯报文,则启用安全选项并指定验证选项:
版本兼容性 使用 HTTP 监听器要求 9.10.4 或更高版本的 Virtualize。 可以为每个代理配置一个监听器。如果希望监听器使用多个 HTTP,则必须创建多个组件并分别配置。 有关 HTTP 监听器的更多信息,请参阅 Virtualize 桌面端文档。 |
代理监听路径 | 启用代理应该监听传入连接的路径。任何两个消息代理的 HTTP 连接都不能使用相同的代理路径,也不能使用与现有虚拟资产 HTTP 路径相匹配的路径。 在最简单的情况下,可以将代理监听路径设置为服务路径并保留服务转发路径设置为空。使用此配置,代理将把它在该路径上所接收的所有消息自动转发到服务主机和服务端口上的相同路径。 如果需要代理监听与服务不同的路径,则将服务转发路径设置为接收信息的实际发送路径。代理将把路径和任何查询部分转发到目标服务中。 如果代理监听路径和服务转发路径不同,则请求中代理监听路径之后的任何段都将附加到转发的请求中。代理监听路径本质上被服务转发路径替换,以便将整个路径(由代理接收)发送到服务。 |
模式 | 当主要转发连接和次要转发连接都存在时,确定让主要转发连接还是次要转发连接处于活动状态。如果活动连接出现故障,非活动连接可用作后备连接(见下文“使用后备连接”)。例如,在录制会话期间,您可能希望将消息代理转发到实时服务作为主要连接,并将回退到虚拟服务作为次要连接。在这种情况下,您可以将模式设置为主要并启用使用后备连接,CTP 将在主要模式失效时使用次要连接。 |
用于录制 | 当同时定义了主要连接和次要连接时,确定使用哪个转发连接进行录制。必须为其中一个连接启用,但可以同时启用。受具体使用哪个或哪些连接进行录制的影响,该精确行为会略有不同:
|
服务主机 | 输入服务所在机器的主机名。这是代理将发送消息的机器。 如果希望代理在无需使用 HTTP 连接的情况下在本地 Virtualize 服务器上转发虚拟资产,则输入 localhost 或 127.0.0.1(而不是实际主机名称)。 |
服务端口 | 输入服务正在监听的端口。这是代理将发送消息的端口。 |
服务转发路径 | (可选项)输入代理应该其接收到的消息转发到的路径。如果为空,则默认为代理监听路径字段中的值。如果 HTTP 代理正在向 localhost 发送消息,则必须输入一个服务转发路径,因为不允许代理转发给自身。如果服务转发路径发送重定向,代理将跟随重定向并进行响应。它不会将重定向传递回客户端。 |
其他选项 |
|
指向虚拟资产或实际端点
代理可以使用 Virtualize 服务器上的虚拟资产作为其目标服务。操作步骤:
- 将服务主机和端口设置为部署虚拟资产的 Virtualize 服务器的主机和端口。如果希望代理在无需使用 HTTP 连接的情况下在本地 Virtualize 服务器上转发虚拟资产,则输入 localhost 或 127.0.0.1(而不是实际主机名称)。
- 将代理连接的服务转发路径设置为虚拟资产路径。
JMS 选项
选项 | 说明 |
---|---|
通讯报文文件 | 指定当代理设置为录制模式时,要将捕获的通讯报文数据保存的位置。稍后可以使用该通讯报文文件生成表示以录制模式捕获到的实时通讯报文的虚拟资产。 默认情况下,通讯报文将被录制在名为 %n_%d_%t.txt (<proxy_name>_<current_date>_<current_time>.txt) 的文件中,并将被存储在 recorded_trffic 文件夹内(如果不存在,将会创建)。提供包含消息代理的实例时,通讯报文文件必须位于 VirtualizeAssets 项目中。如果将位置设置在 VirtualAssets 项目外,则提供请求(PUT 请求)将失败。然而,当使用 Virtualize 配置代理时,CTP 可以读取 VirtualAssets 项目外的通讯报文文件(GET 请求)。 指定文件名称时,可以使用类似 %d(当前日期)%t(当前时间)、%n(代理名称)和 %u(独特的基于时间的 id)的变量。通配符可以一起使用,并与名称混合使用。例如,可以使用 %nProxyTraffic%d 或 %u_%d%nTraffic。 附加通讯报文数据将新的通讯报文数据添加至现有通讯报文文件中(其在通讯报文文件字段中指定)。如果指定文件早就不存在了,则将创建一个新的文件 |
提供者 URL | 指定 JMS 受管理对象的位置。 |
初始上下文 | 指定包含所有 JMS 属性映射的 Java 类。 |
连接工厂 | 指定用于从初始上下文查找特定于 MOM 的工厂的键。这可以是队列连接工厂,也可以是主题连接工厂。 |
用户名/密码 | 输入身份验证所需的用户名和密码。 |
队列/主题 | 针对队列(点到点):Virtualize 将捕获发送给客户端 Destination 队列的消息,然后将其转发到服务器回复队列,以进行处理。服务器目标队列是服务器将在其上放置响应消息的队列(处理请求消息之后)。Virtualize 将捕获这些消息并将其转发至客户端回复队列。 |
使用 JMS ReplyTo | 指定是否使用消息的 JMSReplyToQueueName 头部来确定代理发送响应的位置。如果启用了该选项,来自传入请求的值将用于确定将响应发送到何处。如果未启用该选项,响应将发送值 UI 中指定的队列;JMS 消息头中的值将被忽略。 |
线程数 | 线程数影响创建的监听器工作线程的数量。增加线程数可以帮助提高并发性下的性能。 |
其他初始上下文 JNDI 属性 | 指定要应用于该属性的任何其他 JNDI 属性。 |
MQ 选项
选项 | 说明 |
---|---|
通讯报文文件 | 指定当代理设置为录制模式时,要将捕获的通讯报文数据保存的位置。稍后可以使用该通讯报文文件生成表示以录制模式捕获到的实时通讯报文的虚拟资产。 默认情况下,通讯报文将被录制在名为 %n_%d_%t.txt (<proxy_name>_<current_date>_<current_time>.txt) 的文件中,并将被存储在 recorded_trffic 文件夹内(如果不存在,将会创建)。提供包含消息代理的实例时,通讯报文文件必须位于 VirtualizeAssets 项目中。如果将位置设置在 VirtualAssets 项目外,则提供请求(PUT 请求)将失败。然而,当使用 Virtualize 配置代理时,CTP 可以读取 VirtualAssets 项目外的通讯报文文件(GET 请求)。 指定文件名称时,可以使用类似 %d(当前日期)%t(当前时间)、%n(代理名称)和 %u(独特的基于时间的 id)的变量。通配符可以一起使用,并与名称混合使用。例如,可以使用 %nProxyTraffic%d 或 %u_%d%nTraffic。 附加通讯报文数据将新的通讯报文数据添加至现有通讯报文文件中(其在通讯报文文件字段中指定)。如果指定文件早就不存在了,则将创建一个新的文件 |
主机 | 指定运行 MQ 的主机名。 |
端口 | 指定运行 MQ 的端口。 |
队列管理器 | 指定队列管理器。 |
通道 | 指定服务端定义的通道的名称。 |
用户名/密码 | 输入身份验证所需的用户名和密码。 |
使用 replyToQueueName | 该选项指定是否使用消息的 replyToQueueName 头来确定代理发送响应的位置。它影响 MQMT_REQUEST 类型的 MQ 消息的响应。 |
客户端和服务器队列 | 指定客户端和服务端队列。“put”队列始终是 AUT/client 放置/发送请求消息的地方。“get”队列是 client/AUT 获得响应消息的地方。 |
线程数 | 线程数影响创建的监听器工作线程的数量。增加工作线程数量可以帮助提高并发下的性能。 |
MQ 队列管理器
如果希望在单个代理连接中配置部署在不同 MQ 服务器上的队列(比如,希望使用部署在两个不同 MQ 服务器上的两个队列的特定代理连接),则可以在 Virtualize 中对它们进行全局定义并在 CTP 中配置代理时引用它们。
指定回滚连接/第二端点(仅适用于 HTTP/S 代理)
如果希望通讯报文在首次连接失败或响应器/虚拟资产不可用时,重定向到回滚连接(比如,第二代理端口),则启用使用后备连接选项,然后提供关于可选端点的连接详情。如果响应码为 400 或更高级别,则该连接被视为“失败”。
例如,如果希望在实时端点不可用时使用虚拟资产,则可能指定第二端点。或者,如果虚拟资产不能处理给定的用例时,可以使用第二端点将通讯报文重定向到实时端点中。然后可以选择性地录制实时通讯报文,以便创建新的虚拟资产来覆盖用例。
对于主要连接和次要连接,您都可以使用按钮快速打开或关闭录制。必须启用至少一个连接才能进行录制。
- 使用两个连接进行录制:录制主要和次要连接的通讯报文。不录制来自主要连接的错误消息,而是将信消息发送到次要连接并录制响应。录制次要连接报告的错误。
- 仅使用主要连接进行录制:录制主要连接的通讯报文。不录制错误。
- 仅使用次要连接进行录制:录制次要连接的通讯报文,包括错误。
代理配置注意事项
目标应用程序连接设置必须匹配端点设置
目标应用程序连接必须匹配当前示例指定的真实或虚拟端点。连接设置派生自各种代理字段。它将显示在目标应用区域。
例如,如果有了 HTTP 代理,则代理的服务主机、服务端口和服务转发路径必须匹配真实或虚拟资产的主机、端口和路径。
端点和代理设置的自动化更新
代理> 端点
如果在创建代理时没有定义端点,则在应用代理设置时,代理设置将自动复制到端点区域。
如果您输入的代理设置值与相应的值不匹配,则在应用代理设置时将自动更新端点值。
端点> 代理
如果已经定义了代理,并且编辑端点设置,则将自动更新相应的代理值。
具有虚拟资产和代理的实例
如果使用虚拟资产配置了组件实例,则只有编辑以下代理字段:
- 针对 HTTP:监听路径
- 针对具有队列的 JMS:客户端队列、使用 JMSReplyTo、线程数、JNDI 属性
- 针对具有主题的 JMS:使用 JMSReplyTo、线程数、JNDI 属性,使用 JMSReplyTo
- 针对 MQ:客户端 get 和 put 队列、线程数、使用 replyToQueueName
更多有关代理配置的详情和技巧,请参阅 Virtualize 的用户指南。