...
Note | ||
---|---|---|
| ||
Virtualize 9.10.x 中记录的 HTTP 流量文件在 通讯报文文件在 Parasoft Virtualize 9.9.x 及更早版本上无法使用。 |
...
Scroll Table Layout | ||
---|---|---|
|
监听器Listener | 可以从下拉菜单中选择在创建代理时定义的 HTTP 监听器(请查阅 创建代理),或者使用默认的监听器。 可以在下面部分添加 HTTP 监听器:
|
---|---|
代理监听路径Proxy listen path | 输入代理应该监听传入连接的路径。 任何两个消息代理都不能存在这样的 HTTP 连接,它具有相同代理路径或与现有虚拟资产的 HTTP 路径匹配的路径。 有关更多详情,请查阅 Service Forward Path and Proxy Listen Path 。 |
代理 Proxy URL | 显示应该给 AUT 的 URL;有关更多详情,请查阅 将 AUT 指向代理 。 |
监听器端口的 SSL 设置
其员工 启用 Use keystore 选项,配置服务端 SSL 设置。
...
Scroll Table Layout | ||
---|---|---|
|
密匙库文件Key store file | 指定到密匙库文件的路径。可以手动输入路径,也可以浏览文件系统或工作区。 |
---|---|
密匙库密码Key store password | 指定访问密匙库的密码。 |
密匙库类型Key store type | 从下拉菜单中选择密匙库类型,然后单击 Load。 |
凭证Certificate | 从 Certificate 下拉框菜单中,选择显示给服务器的证书别名。如果存在配置错误(如不正确的密码或密匙库类型),菜单将为空。 |
...
Scroll Table Layout | ||
---|---|---|
|
密匙库文件Key store file | 指定到密匙库文件的路径。可以手动输入路径,也可以浏览文件系统或工作区。 |
---|---|
密匙库密码Key store password | 指定访问密匙库的密码。 |
密匙库类型Key store type | 从下拉菜单中选择密匙库类型,然后单击 Load。 |
主连接(输出)
服务 Service URL | 包含目标应用程序的整个路径(包括服务主机、服务端口和转发路径)。可以在此处输入完整 URL,和/或在下面字段中指定组件:在一个区域进行更新将传播给另一个(如,如果在 URL 中更改端口,则服务端字段的值将自动更新)。 |
---|---|
服务主机Service host | 输入服务所在机器的主机名。这是代理将向其发送消息的机器。 如果希望代理在不使用 HTTP 连接的情况下,将消息转发到本地 Virtualize 服务器上的虚拟资产,请输入 |
服务端口Service port | 输入服务器正在监听的端口。这是代理将向其发送消息的端口。 |
服务转发路径Service forward path | (可选项)输入代理应该向其转发接收到的消息的路径。如果为空,则默认为 Proxy listen path 字段中的值。 如果 HTTP 代理正在向本地服务器发送消息,则必须输入 Service forward 路径,因为代理不允许转发给自己。 如果 Service forward path 发送重定向,代理将遵循重定向,并做出响应。它不会将重定向传递回客户端。 有关更多详情,请查阅 Service Forward Path and Proxy Listen Path 。 |
二次连接(输出)
如果希望在主连接失败或响应程序不可用时,将流量重定向到第二代理端点,请启用 如果希望在主连接失败或响应程序不可用时,将通讯报文重定向到第二代理端点,请启用 Use secondary connection if primary fails 选项。如果响应状态码为 400 或更高,则连接将视为“失败”。
例如,如果希望在任何活动端点不可用时使用虚拟资产,则可能需要指定辅助端点。或者,如果虚拟资产无法处理给定的用例,则可能使用辅助端点以让流量重定向到活动端点。然后可以选择性地记录实时流量,以创建覆盖该用例的新的虚拟资产。例如,如果希望在任何活动端点不可用时使用虚拟资产,则可能需要指定辅助端点。或者,如果虚拟资产无法处理给定的用例,则可能使用辅助端点以让通讯报文重定向到活动端点。然后可以选择性地记录实时通讯报文,以创建覆盖该用例的新的虚拟资产。
如果没有启用此选项,则将不会使用主连接进行记录。
如果启用了该选项,则可以从可用的录制选项中(如下所述)进行选择。
录制选项
这些设置确定在指定辅助端点时如何记录流量。
这些设置确定在指定辅助端点时如何记录通讯报文。
- Record on both connections:记录主从连接的通讯报文。将不会记录来自主连接的错误信息;相反地,消息将被发送到次要服务器,并记录响应。将记录次要服务器报告的错误。
- Record on primary connection only:记录主连接的通讯报文。不会记录错误。
- Record on secondary connection only:记录二次连接的通讯报文,包括错误。
- 记录两个连接:记录主从连接的流量。将不会记录来自主连接的错误信息;相反地,消息将被发送到次要服务器,并记录响应。将记录次要服务器报告的错误。
- 只记录主连接:记录主连接的流量。不会记录错误。
- 只记录二次连接:记录二次连接的流量,包括错误。
安全选项设置
只有当正在虚拟化的服务使用 SSL 时,才需要完善服务 SSL 部分。
...
该选项允许在 Virtualize 消息代理级别指定代理服务器,这样就可以控制要哪个代理服务器来处理正在测试的应用程序和指定的 Virtualize 消息代理之间的流量。它允许配置不同的代理服务器,用于不同 消息代理之间的通讯报文。它允许配置不同的代理服务器,用于不同 Virtualize 消息代理之间的通信。
若要在该级别上指定代理设置,请在代理的代理服务器(Proxy Server)选项卡中提供合适的详细信息。
...
在最简单的情况下,可以将 Proxy listen path 设置为你的服务路径,并保留 设置为您的服务路径,并保留 Service forward path 为空。使用该配置,代理将它在该路径接收到的所有消息自动转发到 Service host 和 Service port上相同的路径。
如果需要代理监听与你的服务路径不同的路径,请将 如果需要代理监听与您的服务路径不同的路径,请将 Service forward path 设置为要将所接收消息发送到的实际路径。代理将会把路径和任何查询部分转发到目标服务。
...
可以将来自监听路径的动态段用作转发路径的一部分。实现这一点有两种不同的方式:
- 如果希望将流量转发到接收请求的路径,请保留转发路径为空。如果希望将通讯报文转发到接收请求的路径,请保留转发路径为空。
如果转发路径不同且需要使用动态值,则使用环境变量符号对其进行配置。例如:
监听路径:
listen path:
/path/*/service
转发路径:
forward path:
/asset/path/${1}/service
可以使用环境变量符号访问到通配符表示的动态监听路径段。将通配符的出现作为变量名;换句话说,第一次出现的通配符表示 ${1},第二次表示 ${2},第三次表示 ${3},等等。在下面的例子中,${2} 指的是第二次出现的通配符(代表请求路径中的“bank”):
监听路径:
listen path:
/path/*/service/*/account
转发路径:
forward path:
/asset/path/${2}/service/${1}/account
请求路径:
request path:
/Path/1/service/bank/account
转发路径:
forward path:
/asset/path/bank/service/1/account
...
- 将服务主机和端口设置为虚拟资产部署的 Vrtualize 服务器的主机和端口。如果希望代理在不使用 HTTP 连接的情况下,将消息转发到本地 Virtualize 服务器上的虚拟资产,请输入
localhost
或127.0.0.1
,代替实际的主机名。 - 将代理连接的 Service forward path 设置为虚拟资产的路径(在虚拟资产的 Transports> HTTP 选项卡中 HTTP endpoint下可找到)。
Chunking/Unchunking
...
行为
代理支持接收 chunked 请求和来自目标服务的 chunked 响应。如果服务响应使用 HTTP chunking,代理将在其返回原始调用者/AUT 之前 unchunk 响应。
...
embedded.ssl.includeProtocols | HTTPS 连接支持以逗号分割的 SSL 协议列表。如果设置了该属性,则 JVM 中的 SSL 实现只支持列表中的协议。如果该属性未设置,则 使用 JVM 支持的协议(如果 JVM 默认启用其中一个或同时启用了两个则不包括 SSLv2 和 SSLv3)。 |
---|---|
embedded.ssl.includeCipherSuites | HTTPS 连接支持以逗号分割的密码算法列表。使用 JSSE 算法命名规范来指定密码。如果设置了该属性,则 SSL 实现只支持列表中的密码。如果该属性未设置,则使用 JVM 的默认密码套件, 除了不考虑 安全的套件。 都将支持。因此, 默认情况下,只有非常有限的一组密码可用 于旧版本的 JVM。 |
embedded.ssl.useCipherSuitesOrder | 将该属性设置为 |
embedded.ssl.maxCertPathLength | 验证客户端证书时,允许最大中间证书数。默认为 5。 |
embedded.ssl.crlPath | 将路径设置为包含证书撤销列表的文件,该列表用于验证客户端证书。如果该属性未设置,则不会根据证书撤销列表检查客户端证书。 |
embedded.ssl.keyManagerAlgorithm | 设置要使用的证书编码算法。默认情况下,使用 KeyManagerFactory.getDefaultAlgorithm() ,它为 Sun JVMs 返回 SunX509 。IBM JVMs 返回 IbmX509 。 |
embedded.ssl.truststoreAlgorithm | 设置用于信任库的算法。如果该属性未设置,则使用 javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm() 反悔的默认值。 |
embedded.ssl.useKeyManagerAlgorithmForTruststore | 如果该属性设置为 true ,则密钥管理器算法用作信任库算法。这是 embedded.ssl.truststoreAlgorithm 属性需要的先例。默认为 false 。 |
...
例如:发送通讯报文到服务
假定希望为通常可以通过 http://example.parasoft.com:9080/BookStore访问的服务创建消息。可以用以下设置来创建 HTTP 代理:
- 代理监听路径:Proxy listen path:/BookStore
- 服务主机:Service host:example.parasoft.com
- 服务端口:Service port:9080
- 服务转发路径:Service forward path:[empty]
该配置将监听 /BookStore ,并将所有流量转发到实际的书店服务。,并将所有通讯报文转发到实际的书店服务。
如果希望监听除了服务路径之外的路径,可以如下配置代理:
- 服务转发路径:Service forward path:/BookStore
- 代理监听路径:Proxy listen path:/SomeOtherPath
这将会把流量从代理上的 这将会把通讯报文从代理上的 /SomeOtherPath 路由到实际书店服务。
相同情况下,所有跳转至这些路径(包括子路径)的流量都将发送给服务。在第二个示例中,发送给 相同情况下,所有跳转至这些路径(包括子路径)的通讯报文都将发送给服务。在第二个示例中,发送给 /SomeOtherPath/SubPath 的流量会发送给 的通讯报文会发送给 /BookStore/SubPath。由于保留了查询,/SomeOtherPath?param=value 将发送到 /BookStore?param=value。
...
当请求转发给要求 HTTP 数据头名称区分大小的服务时,如果正在使用桌面版的 Virtualize 服务器,你的消息代理数据头将使用小写字母,此时,可能无法正常工作。服务器,您的消息代理数据头将使用小写字母,此时,可能无法正常工作。
你可以在 您可以在 /VirtualAssets/ 目录中创建一个 _global.headers 文件,并使用要传递的特定大小写添加数据头。右键单击 UI 中的服务器,并重新部署所有虚拟资产,以便在你的环境中开始使用该文件。中的服务器,并重新部署所有虚拟资产,以便在您的环境中开始使用该文件。
还可以解决特定消息代理的 HTTP 数据头大小写问题。在 /VirtualAssets/ 目录中创建一个 <proxy-name>.headers 文件,并使用要传递给特定代理的指定大小写添加数据头.该文件将应用于特定代理,并覆盖全局文件。右键单击 UI 中的服务器,并重新部署所有虚拟资产,以便在你的环境中开始使用该文件。中的服务器,并重新部署所有虚拟资产,以便在您的环境中开始使用该文件。
示例数据头文件
Code Block |
---|
X-AUTHORIZATION ANOTHER-HEADER HEADER3 |
...
例如:发送通讯报文到虚拟资产
代理也可以发送流量到虚拟资产。在这种情况下,就像输入另一个服务一样,输入 代理也可以发送通讯报文到虚拟资产。在这种情况下,就像输入另一个服务一样,输入 Virtualize 服务器的主机和端口信息。
例如,若要将流量发送到远程服务器上的虚拟资产: 例如,若要将通讯报文发送到远程服务器上的虚拟资产:
- 服务主机: Service host: virtualize.parasoft.com
- 服务端口:Service port:9080
- 代理监听路径:Proxy listen path:/path
如要将流量发送给本地服务器的虚拟资产,可以使用:如要将通讯报文发送给本地服务器的虚拟资产,可以使用:
- 服务主机: Service host: localhost
- 服务端口:Service port:9080
- 服务转发路径:Proxy listen path:/pva
HTTP 代理没有区分虚拟资产和实际服务。两者的配置方式相同。然而,如果 HTTP 正在给本机发送消息,则必须指定 Service forward path ,因为代理不允许转发给自己。
Info | ||
---|---|---|
| ||
当请求转发给要求 HTTP 数据头名称区分大小的服务时,如果正在使用桌面版的 Virtualize 服务器,你的消息代理数据头将使用小写字母,此时,可能无法正常工作。有关更多详情,请查阅 服务器,您的消息代理数据头将使用小写字母,此时,可能无法正常工作。有关更多详情,请查阅 Forwarding Requests to Services that Require Case-sensitive Header Names 。 |
Anchor | ||||
---|---|---|---|---|
|
安全配置有两个方面:
- 如果你正向其转发流量的服务使用 如果您正向其转发通讯报文的服务使用 SSL 和/或访问身份验证,则需要执行 Proxy-Level Configuration (来自代理的 UI 控件)。
- 如果 AUT 使用 SSL 和/或访问身份验证,则需要执行 Server-Level Configuration (适用于基于 Tomcat 的 Virtualize 服务器)。
因此,根据你的配置,你可以执行服务器级别配置、代理级别配置,或者两者都执行。因此,根据您的配置,您可以执行服务器级别配置、代理级别配置,或者两者都执行。
Anchor | ||||
---|---|---|---|---|
|
代理级别安全配置(如果你正向其转发流量的服务使用 代理级别安全配置(如果您正向其转发通讯报文的服务使用 SSL 和/或访问身份验证,该配置是有关配置),它涵盖了:
...
Scroll Table Layout | ||
---|---|---|
|
选项 | 说明 |
---|---|
连接服务时使用 Use SSL when connecting to the service | 启用 SSL。信任所有证书 |
Trust all server certificates | 如果启用该选项,将接受所有证书。不执行任何验证。 当消息代理与服务建立连接时,该选项禁用信任验证;它允许接受服务提供的任何证书的连接。总的说来,如果证书信任不关注 Virtualize 部署的环境,则应该启用该选项。 |
接受自签名证书Accept self-signed certificates | 如果启用该选项,只要在它们上进行验证的验证方法 java.security.cert.X509Certificate.checkValidity() 返回 true,将接受证书。该验证方法有效地检查了当前日期和时间是否在证书中给定的有效期之内。将不会评估证书信任路径,也不应用所提供的信任库配置。 该选项确定 Virtualize 是否应该信任服务提供的证书(该证书未被信任的证书机构签名)。总的说来,如果证书信任不关注 Virtualize 部署的环境,则应该启用该选项。 |
...
Scroll Table Layout | ||
---|---|---|
|
选项 | 说明 |
---|---|
密匙库文件Key store file | 指定到密匙库文件的路径。密匙库确定 SSL 握手期间消息代理提供给服务的证书和密匙。 |
密匙库密码Key store password | 指定访问密匙库的密码。密匙库类型 |
Key store type | 指定密匙库的类型。 |
凭证Certificate | 指定对服务器进行身份验证时,要使用的证书别名。 |
完善密匙库详细信息后,单击 Load 按钮。然后,从 Certificate 下拉菜单中为 Virtualize 要提供给服务器的证书别名。如果单击 Load时, Certificate 下拉框未填充,则可能输入了不正确的密码或密匙库类型。
信任库配置面板字段
这些字段只有在既未选中 信任 所有 也未选中 接受自签名证书 (如上所述)时才可用。 Trust all 也未选中 Accept self-signed certificates (如上所述)时才可用。
Scroll Table Layout | ||
---|---|---|
|
选项 | 说明 |
---|---|
密匙库文件Key store file | 指定到信任库文件的的路径。信任库确定消息代理在与服务握手时,应该信任的证书。如果该库中不包括服务提供的证书,则将拒绝连接。如果未提供信任库,则将使用默认的 JRE 信任库。 该选项只有在未选中 信任所有服务器证书 时才可用。 trust all server certificates 时才可用。 |
Key store password密匙库密码 | 指定访问密匙库的密码。密匙库类型 |
Key store type | 指定密匙库类型。 |
NTLM 设置面板字段
Scroll Table Layout | ||
---|---|---|
|
选项 | 说明 |
---|---|
使用 Use NTLM | 指定服务是否要求 NTLM 身份验证。 |
用户名Username | 指示用于 NTLM 身份验证的用户名。 |
密码Password | 指示用于 NTLM 身份验证的密码。 |
Kerberos 面板字段
Scroll Table Layout | ||
---|---|---|
|
选项 | 说明 |
---|---|
Kerberos 服务主体service principal | 指定对请求进行身份验证的服务主体。 |
Anchor | ||||
---|---|---|---|---|
|
...