如果无法或不想部署消息代理(推荐方法;在录制来自消息代理的通讯报文中有所说明),您可以使用录制代理“动态”录制 HTTP、JMS 和 MQ 通讯报文。与消息代理一样,这些代理可以同时捕获通过多个端点的活动 HTTP、JMS 和 MQ 通讯报文。
当应用程序运行时,录制代理监控指定传输上的通讯报文。Virtualize“监听”通讯报文请求和响应,然后构建一个合法请求/响应对的通讯报文文件。然后使用改通讯报文生成和部署虚拟化捕获到的行为的虚拟资产(根据捕获到的通讯报文,返回与传入请求消息相关联的虚拟化响应)。
支持 JMS、MQ、HTTP、HTTPS (SSL)、Basic、Digest 和 Kerberos 身份验证;不支持 NTLM。
不支持 HTTP 分块和 continu 头。
在虚拟化应用程序行为中存在三个主要步骤:
- 捕获文件中的通讯报文。告诉 Virtualize 如何连接以及希望它监控什么。启用监控后,Virtualize 将从捕获的请求和响应构建一个通讯报文文件。
- 从该通讯报文文件中创建消息响应器。
- 验证这些消息响应器是否自动部署为虚拟资产。
录制通讯报文
若要同时捕获跨一个或多个端点的实时通讯报文,请完成以下步骤:
- 打开录制通讯报文向导。该向导的几种访问方法如下:
- 前往文件 > 新建 > 录制通讯报文。
- 前往文件 > 新建 > 其他> Virtualize> 通讯报文> 通讯报文录制。
- 从新建按钮的菜单选择录制通讯报文。
- 对于要录制通讯报文的每个端点,请执行以下操作:
- 在“录制通讯报文的配置代理”对话框中,点击添加。打开的向导将预先填充您已配置的任何连接。
- 在代理类型下,选择所需传输(HTTP、JMS、MQ)。
- 完成所选传输的代理设置。
- JMS 和 MQ 设置与消息代理中使用的设置相同。有关详细信息,请参阅 JMS 配置和 MQ 配置。
- HTTP 设置与消息代理中使用的设置不同;详情请参阅Configuring Recording Proxies for HTTP。
- 在通讯报文文件字段中,指定为捕捉通讯报文而创建的通讯报文文件的保存位置。稍后可以使用该通讯报文文件生成表示捕获到的实时通讯报文的虚拟资产。 在指定文件名时,可以使用 %d(表示当前日期)和 %t(表示当前时间)等变量。
- 指定要如何在通讯报文文件中录制通讯报文数据:
- 附加通讯报文数据将新的通讯报文数据添加至现有通讯报文文件中(在通讯报文文件字段中指定的文件)。如果指定文件早就不存在了,则将创建一个新的文件。
覆盖会话数据覆盖现有通讯报文文件中的通讯报文数据(在通讯报文文件字段中指定的文件)。如果指定文件早就不存在了,则将创建一个新的文件。
- 然后点击 OK。
- 从被测应用程序中,生成您想要录制的通讯报文。
- 点击完成。
当实时通讯报文被捕获时,您可以在可用选项卡之间切换,以查看每个端点上的请求和响应。下面的屏幕截图显示了在 3 个不同端点并发捕获的通讯报文。
虚拟化录制的通讯报文
一旦录制了通讯报文,便可以创建和部署虚拟资产,如下所示:
- 从创建的通讯报文文件中创建消息响应器,请参阅从通讯报文文件中创建消息响应器 - 概述。
- 验证这些消息响应器是否已作为虚拟资产自动部署——请参阅部署虚拟资产。
为 HTTP 配置录制代理
本节解释如何为 HTTP 配置录制代理。这与可部署消息代理的 HTTP 配置不同(在 HTTP 反向代理配置中有所说明)。章节目录:
注意,支持 HTTP、HTTPS (SSL)、Basic、Digest 和 Kerberos 身份验证;不支持 NTLM。
指定录制代理的 HTTP 设置
在录制代理向导(与已部署的消息代理相反)中,您可以指定如下 HTTP 设置:
- 在代理连接设置对话框中选择 HTTP 作为代理类型。
- 完成相应 HTTP 设置。
- 对于服务器端 SSL,请勾选启用服务端 SSL。
- 对于双向 SSL,请勾选启用客户端 SSL,并完成证书和私有密钥设置。启用客户端 SSL 将默认启用服务端 SSL。
服务端 SSL 设置
由于 SSL 的性质,Virtualize 的 HTTP 录制代理生成由其自己的证书颁发机构签名的动态服务器证书。为了接受这个动态服务器证书,需要将通过 HTTPS 生成请求的客户端设置为信任所有证书。操作步骤:
- 确保 Virtualize 服务器证书设置已启用信任所有证书(Parasoft> 首选项> 安全性),或者服务的服务器证书已正确添加到 Virtualize cacerts 文件中(更多详情,请参阅配置部署在 HTTPS 上的服务)。
双向 SSL 设置
由于 SSL 的性质,Virtualize 的 HTTP 录制代理生成由其自己的证书颁发机构签名的动态服务器证书。为了接受这个动态服务器证书,需要将通过 HTTPS 生成请求的客户端设置为信任所有证书。操作步骤:
- 确保 Virtualize 服务器证书设置已启用信任所有证书(Parasoft> 首选项> 安全性),或者服务的服务器证书已正确添加到 Virtualize cacerts 文件中(更多详情,请参阅配置部署在 HTTPS 上的服务)。
- 确保您有客户端证书密钥库文件(并且,如果客户端证书和私钥存储在不同密匙库 — 私钥密钥库文件)以及相关的密钥库的密码、密钥库类型信息、私钥密码和名称的别名用于证书/私钥。
捕获通讯报文
若要生成从使用服务器端 SSL 或双向 SSL 的服务捕获 HTTPS 通讯报文的通讯报文文件,请根据捕获通讯报文的说明完成向导。
在 HTTP 向导页面中,请确保启用适当的 SSL 选项:
- 对于服务器端 SSL,请勾选启用服务端 SSL。
- 对于双向 SSL,请勾选启用客户端 SSL,并完成证书和私有密钥设置。启用客户端 SSL 将默认启用服务端 SSL。
配置 AUT
若要配置正在测试的应用程序以访问将代表这个录制的通讯报文的虚拟资产:
- 如果客户端应用程序不是浏览器:请修改客户端应用程序,使其指向运行 Virtualize 录制代理的主机和端口。例如,假设您的应用程序在
realapp.parasoft.com:80
上运行,而您的代理在mymachine.parasoft.com:44
上(遵循向导中的设置)运行。您可以将客户端应用程序指向mymachine.parasoft.com:44
,而不是realapp.parasoft.com:80
,从而迫使通讯报文通过代理。 - 如果使用浏览器来产生针对 web 应用程序的通讯报文:
- 如果应用程序不需要身份验证,或者使用 Basic 或 Kerberos 身份验证,请将
mymachine.parasoft.com:44
设置为浏览器中的代理。这将把通讯报文重定向到录制向导代理,并将录制通讯报文。 如果应用程序需要摘要认证,请不要在浏览器中设置代理;相反,修改浏览器所指向的 URL。换言之,不要使用
http://realapp.parasoft.com/mypage.html
,而是使用http://mymachine.parasoft.com:44/mypage.html
。这将导致通讯报文通过录制代理路由。
- 如果应用程序不需要身份验证,或者使用 Basic 或 Kerberos 身份验证,请将