使用功能消息代理配置组件实例时,可以选择一个现有的消息代理,也可以创建一个新的消息代理。一旦启用了代理,则可以通过 CTP 启用或停止录制。
使用现有代理配置组件实例
- 编辑环境图,然后从组件下拉菜单中选择 New Instance 。悬停时菜单变为可见。有关更多详情,请查阅 添加组件实例 。
- 指定名称并点击 Select a message proxy link。
- 如果希望选择可用代理的所有连接,请单击 Select。
- 如果希望选择可用代理的特定连接(比如,您配置了 3 个 HTTP 连接,1 个 MQ 连接和 1 个 JMS 连接,但现在您只使用 MQ 连接),则将鼠标悬停在代理上,单击出现的 Connections 链接,然后单击要添加连接的 Select 链接。还可以单击 Select All 已选择所有显示的连接。将显示每个可用连接的监听器/代理路径和转发/目标路径。
- 如果希望选择可用代理的特定连接(比如,您配置了 3 个 HTTP 连接,1 个 MQ 连接和 1 个 JMS 连接,但现在您只使用 MQ 连接),则将鼠标悬停在代理上,单击出现的 Connections 链接,然后单击要添加连接的 Select 链接。还可以单击 Select All 已选择所有显示的连接。将显示每个可用连接的监听器/代理路径和转发/目标路径。
- 如果希望调整代理设置(取自代理的当前状态),则单击 Edit 图标,然后进行所需的修改;选项如 Proxy Configuration Details中所述。
- 如果希望添加消息代理连接,则单击 + 图标,然后指定连接设置,如 Proxy Configuration Details中所述。
创建新代理
若要在配置组件实例
- 请编辑环境图,然后从组件下拉菜单中选择 New Instance 。悬停时菜单变为可见。有关更多详情,请查阅 添加组件实例 。
- 单击要在其上部署新代理的 Virtualize 服务器右侧的 Create new proxy 链接。
- 指定代理设置。注意, Target Application 连接必须匹配当前实例指定的真实或虚拟端点。有关更多详情信息,请查阅 Proxy Settings Details。
- 单击 Apply 图标。
一旦组件被保存,则代理将添加至指定的 Virtualize 服务器中(并可在 CTP 中使用)。代理名称将由 Virtualize 服务器分配(比如,Proxy-2)。若要查看 Virtualize UI 中的新代理,请刷新 Virtualize UI 中的 Virtualize 服务器视图。
新代理将被禁用,直到您使用此组件实例提供了一个环境。在这一点上,它将被启用并配置。任何从该代理创建的通讯报文文件都将默认保存在 Virtualize 的 VirtualAssets 项目中。
启用代理
启用代理有几种方法:
- 为环境提供使用该代理的组件实例。
- 从代理的页面级操作菜单中选择 Enable 操作。
- 启用 Virtualize UI中的代理。
- 从 Virtualize API 中调用合适的操作。
启用和停止代理录制
在 CTP 启用录制之前必须启用代理。代理可在 CTP 中启用(比如,通过使用代理提供的实例,或者启用详情页面的代理),也可在 Virtualize 中启动(比如,来自 Virtualize 服务器视图)。代理录制必须从 Virtualize Ui 中启用和停止。
若要从 CTP 启用录制:
- 在编辑模式下,鼠标悬停在组件集上以使用已启用的代理,然后从下拉菜单中选择 Start Recording 。
右下角的一个框将确定录制是否已被启用。
希望停止录制时:
- 在编辑模式下,从组建的下拉菜单中选择 Stop Recording 。
录制结束后,将看到一个询问框,询问您是否希望现在或稍后为此记录的通讯报文创建虚拟资产。
如果选择 Now,CTP 将使用该通讯报文的虚拟资产自动预配置新组件实例。您将只需确定该设置,(可选项)重命名实例,单击 Finish,然后将创建并部署新的虚拟资产。
代理设置详情
"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。 不要同时配置多个代理连接以对同一个通讯报文文件进行编写。这可能会损坏通讯报文文件。 |
附加通讯报文数据 | 启用此选项以 将新的通讯报文数据添加至现有通讯报文文件中(如 Traffic file字段中所指定)。如果指定文件早就不存在了,则将创建一个新的文件。 |
使用 HTTP 监听器 | 启用此选项指定特定于代理的端口。 如果客户端通过 SSL 发送通讯报文,则启用 Secure 选项并指定验证选项:
版本兼容性 使用 HTTP 监听器要求 9.10.4 或更高版本的 Virtualize。 可以为每个代理配置一个监听器。如果希望监听器使用多个 HTTP,则必须创建多个组件并分别配置它们。 关于 HTTP 监听器的其他信息,请查阅 Virtualize Desktop documentation。 |
代理监听路径 | 启用代理应该监听传入连接的路径。任何两个消息代理都不能具有具有相同代理路径或与现有虚拟资产的 HTTP 路径匹配的路径的 HTTP 连接。 在最简单的情况下,可以将 Proxy listen path 设置为服务路径并保留 Service forward path 设置为空。使用此配置,代理将把它在该路径上所接收的所有消息自动转发到服务主机和服务端口上的相同路径。 如果需要代理监听与服务不同的路径,则将 Service forward path 设置为要发送接受消息的实际路径。代理将把路径和任何查询部分转发到目标服务中。 如果 Proxy listen path 和 Service forward path 不同,则请求中 Proxy listen path 之后的任何段都将附加到转发的请求中。 Proxy listen path 本质上被 Service forward path 替换,以便将整个路径(由代理接收)发送到服务。 |
代理 URL | 显示应该被测试应用程序(AUT)的 URL。 |
服务主机 | 输入服务所在机器的主机名。这是代理将发送消息的机器。 如果希望代理在无需使用 HTTP 连接的情况下在本地 Virtualize 服务器上转发虚拟资产,则输入 localhost 或 127.0.0.1(而不是实际主机名称)。 |
服务端口 | 输入服务正在监听的端口。这是代理将发送消息的端口。 |
服务转发路径 | (可选项)输入代理应该其接收到的消息转发到的路径。如果为空,则默认为 Proxy listen path 字段中的值。如果 HTTP 代理正在向 localhost 发送消息,则必须输入一个 Service forward path ,因为代理不允许转发其自身。如果 Service forward path 发送重定向后,代理将跟随重定向并进行响应。它将不会把重定向传递回客户端。 |
其他选项 |
|
指向虚拟资产或实际端点
代理可以使用 Virtualize 服务器上的虚拟资产作为其目标服务。为此:
- 将服务主机和端口设置为部署虚拟资产的 Virtualize 服务器的主机和端口。如果希望代理在无需使用 HTTP 连接的情况下在本地 Virtualize 服务器上转发虚拟资产,则输入 localhost 或 127.0.0.1(而不是实际主机名称)。
- 将代理连接的 Service forward path 设置为虚拟资产路径。
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。 Append traffic data 将新的通讯报文数据添加至现有通讯报文文件中(其在 Traffic file 字段中指定)。如果指定文件早就不存在了,则将创建一个新的文件。 |
Provider URL | 指定 JMS 受管理对象的位置。 |
Initial context | 指定包含所有 JMS 属性映射的 Java 类。 |
Connection factory | 指定用于从初始上下文查找特定于 MOM 的工厂的键。这可以是 Queue Connection Factory,也可以是 Topic Connection Factory。 |
Username/password | 输入身份验证所需的用户名和密码。 |
Queue/Topic | 对于 Queues(点到点):Virtualize 将捕获发送给客户端 Destination 队列的消息,然后将其转发到服务器 Reply 队列,以进行处理。服务器 Destination 队列是服务器将在其上放置响应消息的队列(处理请求消息之后)。Virtualize 将捕获这些消息并将其转发至客户端 Reply to 队列。 |
使用 JMS ReplyTo | 指定是否使用消息的 JMSReplyToQueueName 数据头来确定代理发送响应的位置。如果启用了该选项,来自传入请求的值将用于确定将响应发送到何处。如果未启用该选项,响应将发送值 UI 中指定的队列;JMS 消息数据头中的值将被忽略。 |
Worker count | 工作人员数量影响创建的监听器工作线程的数量。增加工作人员数量可以帮助提高并发性下的性能。 |
其他初始上下文 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。 Append traffic data 将新的通讯报文数据添加至现有通讯报文文件中(其在 Traffic file 字段中指定)。如果指定文件早就不存在了,则将创建一个新的文件。 |
Host | 指定运行 MQ 的主机名。 |
Port | 指定运行 MQ 的端口。 |
Queue manager | 指定队列管理器。 |
Channel | 指定服务端定义的通道的名称。 |
Username/password | 输入身份验证所需的用户名和密码。 |
使用 replyToQueueName | 该选项指定是否使用消息的 replyToQueueName 数据头来确定代理发送响应的位置。它影响 MQMT_REQUEST 类型的 MQ 消息的响应。 |
Client and server queues | 指定客户端和服务端队列。"put” 队列始终是 AUT/client 放置/发送请求消息的地方。"get” 队列是 client/AUT 获得响应消息的地方。 |
Worker count | 工作人员数量影响创建的监听器工作线程的数量的数量。增加工作人员数量可以帮助提高并发下的性能。 |
MQ Queue Managers
如果希望在单个代理连接中配置部署在不同 MQ 服务器上的队列(比如,希望使用部署在两个不同 MQ 服务器上的两个队列的特定代理连接),则可以在 Virtualize 中对它们进行全局定义并在 CTP 中配置代理时引用它们。
指定回滚连接/第二端点(仅适用于 HTTP/S 代理)
如果希望通讯报文在首次连接失败或响应程序/虚拟资产不可用时,重定向到回滚连接(比如,第二代理端口),则启用 Use fallback connection 选项,然后提供关于可选端点的更多连接详情。如果响应码为 400 或更高级别,则该连接被视为“失败”。
例如,如果希望在实时端点不可用时使用虚拟资产,则可能指定第二端点。或者,如果虚拟资产不能处理给定的用例时,可以使用第二端点将通讯报文重定向到实时端点中。然后可以选择性地记录实时通讯报文,以便创建新的虚拟资产来覆盖用例。
对于主从连接,可以使用这些按钮快速切换录制或关闭。必须启用至少一个连接才能进行记录。
- 使用两个连接进行记录:记录主从连接的通讯报文。首次连接的错误信息将不会被记录;相反地,消息将被发送至第二连接,并且响应将被录制。第二连接报告的错误将被录制。
- 仅使用首次连接进行记录:记录首次连接的通讯报文。不录制错误。
- 仅使用第二连接进行记录:记录第二连接的通讯报文,包括错误。
代理配置注意事项
目标应用程序连接设置必须匹配端点设置
目标应用程序连接必须匹配当前示例指定的真实或虚拟端点。连接设置派生自各种代理字段。它将显示在 Target Application 区域。
例如,如果有了 HTTP 代理,则代理的 Service host、 Service port和 Service forward paths 必须匹配真实或虚拟资产的 Host、 Port和 Path 。
端点和代理设置的自动化更新
Proxy> Endpoint
如果在创建代理时没有定义端点,则在应用代理设置时,代理设置将自动复制到端点区域。
如果您输入的代理设置值与相应的值不匹配,则在应用代理设置时将自动更新端点值。
Endpoint> Proxy
如果已经定义了代理,并且编辑端点设置,则将自动更新相应的代理值。
具有虚拟资产和代理的实例
如果使用虚拟资产配置了组件实例,则只有编辑以下代理字段:
- 对于 HTTP: 监听路径
- 对于具有队列的 JMS:客户端队列、使用 JMSReplyTo、Worker Count、JNDI 属性
- 对于具有主题的 JMS:使用 JMSReplyTo、Worker Count、JNDI 属性,使用 JMSReplyTo
- 对于 MQ:客户端 get 和 put 队列、Worker Count、使用 replyToQueueName
关于其他代理配置详情和技巧,请查阅 Virtualize 的用户指南。