本主题解释了如何为 Virtualize 服务器以及为部署在这些服务器上的虚拟资产配置部署设置。
本章包含:
配置 Virtualize 服务器启动和身份验证选项
可以从首选项面板配置其他设置(比如,启动、身份验证和 CTP 通知选项),如 Server Settings中所述。
安全注意事项
确保以安全的方式部署 Virtualize 服务器。Virtualize 服务器承载可以用于管理虚拟资产的 web 服务。这意味着 任何可以访问 Virtualize 服务器的主机都可以对该服务器承载的虚拟资产进行添加、修改或删除操作。—除非配置了到 CTP 的连接,否则将强制执行访问控制。 查阅 为 Virtualize 服务器配置用户访问控制 以获得更多详情) 。
我们通常推荐你在信任的网络上部署 Virtualize 服务器。代理服务器或网关也可以在 Virtualize 服务器前面使用,以添加除了 Virtualize 服务器所提供之外的安全层。
Virtualize 服务器的 HTTPS 端口(9443)应该在发送登录凭证时使用。
如果在不受信任的网络上(如 Internet)部署 Virtualize 服务器,则应该格外小心。我们建议你使用防火墙,阻止不可接受的访问(比如,限制 IP 地址的访问)。代理服务器或网关也可以在 Virtualize 服务器前面使用,以添加身份验证、过滤或日志记录。
配置 Virtualize 服务器的 SSL(HTTPS)
当环境中的 AUT 使用 SSL 连接需要虚拟化的依赖项时,有以下几个选项:
- 使用生成(可能是自签名的)证书配置 Virtualize 服务器,并将其添加到 AUT 的信任库中。
- 添加对 Virtualize 的实际服务器证书。该选项假设可以访问服务器证书和密匙,并且很难或应该避免更改 AUT。然而,如果证书是为部署 Virtualize 的主机名以外的主机名签名的,则该选项可能不适用。
- (首选)为 Virtualize 服务器创建一个证书,使用 AUT 信任的证书颁发机构签署,并为安装 Virtualize 服务器的主机颁发证书。使用该选项,不需对 AUT 做任何更改。
- 禁用 AUT 中的证书信任AUT 仍然通过 SSL 连接,但是,在不验证其证书或其信任路径的情况下信任任何服务器(比如,Virtualize 服务器)。
对于接受 certificate/private 密匙对的 AUT,你通常需要至少一个自签名的 certificate/private 密匙对,其常用名(CN)参数与服务器的完全限定名称匹配。例如,如果你的 Virtualize 服务器 URL 是 http://myserver.mycompany.com,则 CN 参数应该为 "myserver.mycompany.com"。
不管怎样,都可以将 Virtualize 配置为在端口 9443(默认 SSL 连接器)或其他端口上接受传入的 HTTPS 连接。
编辑 server.xml
通过修改 server.xml
中的 SSL HTTP/1.1 Connector
条目设置 SSL 详情。例如:
<Connector port="9443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="C:/Path To Keystore/virtualize.pfx" keystorePass="security" keyAlias="virtualize" keystoreType="PKCS12" truststoreFile="../lib/cacerts" truststorePass="changeit" truststoreType="JKS" />
server.xml 在哪?
- 如果安装了 Virtualize 但没有安装 SOAtest:启用 Virtualize,确保至少创建了一个响应程序,然后修改 [Virtualize install dir]/eclipse/plugins/com.parasoft.xtest.libs.web_[Virtualize_ver]/root/tomcat/conf/server.xml 上的 server.xml 文件。
- 如果既安装了 Virtualize 又安装了 SOAtest:启用 Virtualize,确保至少创建了一个响应程序,然后修改 [SOAtest install dir]/eclipse/plugins/com.parasoft.xtest.libs.web_[SOAtest_ver]/root/tomcat/conf/server.xml 上的 server.xml 文件。
更新 keystoreFile
如果遵循选项(b),则应该将 keyStoreFile 属性更改为指向与要模拟的实际基于 SSL 服务相同的 keystore 文件。使用转义斜杠,代替反斜杠。例如, C:/Users/myUser/keystore.jks。
如果遵循选项(a)或(c),则使用到生成服务器密匙库的路径。即使密匙库路径可能是 server.xml 文件的相对路径,但为了确保正确的配置,这是提供绝对路径最好的办法。
使用选项(d),则不需要修改 keyStoreFile 属性。
更改 keystorePass, keyAlias, 和 keystoreType
应该根据性地对 keystorePass, keyAlias, 和 keystoreType attributes 属性进行更新:
- 修改 keystorePass 元素,以作为密匙库密码
- 修改 keyAlias 元素,以指向 certificate/private 密匙对的别名。
- 根据使用的密匙库类型将 keystoreType 修改为 PKCS12, JKS, BKS, UBER, 或 PEM。
对于双向 SSL(交互身份验证),必须将 clientAuth 属性设置为 true
,并且用于验证客户端证书的信任库应该使用 truststoreFile, truststorePass 和 truststoreType 属性指定:
- 修改 truststoreFile,以指向密匙库文件。使用转义斜杠(/)代替反斜杠(\)。例如,C:/Users/myUser/keystore.jks
- 修改 truststorePass 元素,以作为密匙库密码
- 根据使用的密匙库类型将 truststoreType 修改为 PKCS12, JKS, BKS, UBER, 或 PEM。
其他配置详情
关于如何启用并配置 SSL 连接器的更多详情,请查阅 Apache Tomcat 文档(http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html)。
可以为 SSL 配置多个端口号。如果需要“虚拟化”不同的 keystore/certificate 配置,通常就是这种情况。
默认的 SSL 连接器(属性 name=“default”的一个)端口号应该在 Virtualize 服务器首选项中进行更改(查阅 Server Settings 以获得更多详情)。启动 Virtualize 时,首选项设置将优先于 server.xml 设置。
根据需求,可以使用不同的名称和不同的 SSL/certificate 配置将连接器的其他元素添加到 server.xml 中。无法将虚拟资产和代理映射到指定的连接器端口。任何基于虚拟资产路径中的数据头、URL 和消息内容相关准则、代理路径或响应程序相关规则(而不是基于端口)的虚拟资产都可以处理在特定连接器/端口上接收到的信息。
在服务器配置面板中检查和配置服务器设置
可以在服务器配置面板中为 Virtualize 服务器配置不同的首选项和设置。若要打开该面板:
- 以 GUI 模式启用 Virtualize。
- 在该 GUI 中,打开要查看其设置的服务器的配置面板。
从此面板中,可以对与监视、服务器数据、全局 JMS 和 MQ 连接以及用户身份验证(只针对远程服务器)相关的设置进行检查和修改。
监视选项卡
该选项卡显示 Virtualize 服务器数据的概要。有关更多详情,请查阅 Collecting Server Statistics 。
服务器配置选项卡
该选项卡允许配置事件监视和数据收集设置。有关更多详情,请查阅 获得对服务器事件的可见性 and Collecting Server Statistics 。
连接选项卡
该选项卡允许定义计划在此服务器上跨代理和虚拟资产使用的多个 JMS 连接和 MQ 队列管理器。
定义全局连接
从该选项卡中,单击合适的 Add 按钮,以添加 JMS 连接或 MQ 队列管理器。此处要完善的字段也在虚拟资产或代理配置面板中使用。有关可用字段的更多详情,请查阅 Configuring JMS Settings 和 Configuring MQ Settings 。
使用全局连接
添加连接之后,将能够从代理和虚拟资产配置面板中选择它。
例如,这显示了如何使用 MQ 为代理选择全局连接:
例如,这显示了如何使用 JMS 为虚拟资产选择全局连接:
身份验证选项卡
仅适用于远程服务器
该选项允许用户重新输入凭证(比如,如果通过 CTP 更改它们的角色)。有关更多详情信息,请查阅 Re-Entering Credentials for an Existing Server。
配置单个虚拟资产部署设置
可以双击在 Virtualize Server 视图中列出的特定虚拟资产,或者右键单击它并选择 Open,以配置单个设置。
然后配置选项,如下所述:
- Configuring General Virtual Asset Deployment Settings
- Configuring HTTP Settings
- Configuring JMS Settings
- Configuring MQ Settings
- Configuring Custom Transport Virtual Asset Settings
- Configuring Performance Settings
- Configuring Data Source Settings
- Configuring Virtual Database Deployment Settings
配置虚拟资产行为
有关自定义虚拟资产行为(比如,如何使用不同请求/响应用例、错误条件等自定义虚拟资产)的更多详情,请自定义相关的消息响应程序工具,如 消息响应程序概要中所述。
配置常规虚拟资产部署设置
在 General 选项卡中,可以指定:
选项 | 说明 |
---|---|
响应程序套件 | 指定配置消息响应程序的响应程序套件,它实质上是一个 .pva 文件。若要更改用于虚拟资产部署定义的文件,请浏览到本地工作空间或系统文件中的 .pva 文件。文件路径相对于 VirtualAssets 项目文件夹。 |
说明 | 提供虚拟资产说明。 |
必须添加到类路径的 jar 文件
通过 JMS 和/或 MQ 部署虚拟资产之前,请确保向 Virtualize 类路径添加了合适的 jar 文件。 有关如何做到这一点的更多详情,请查阅 System Properties Settings。
配置 HTTP 设置
可以指定以下 HTTP 设置
选项 | 说明 |
---|---|
路径 | 如果在此处指定一个值,虚拟资产将监听指定 HTTP 路径上传入的消息。如果没有指定值,则仅将 JMS、MQ 或自定义传输监听器设置应用于接收消息。 若要更改端口号,请查阅 Using an Alternative Port for the Virtualize HTTP Server。若要启用 SSL (通过 HTTPS),请查阅 Configuring SSL (HTTPS) for the Virtualize Server。 我们建议为每个虚拟资产提供一个惟一的 HTTP 路径,除非你希望 Virtualize 在搜索配置为响应传入消息的响应器时查看多个虚拟资产。 如果你在同一个 HTTP 路径上部署多个虚拟资产,Virtualize 将查看每个虚拟资产,直到它找到匹配消息(基于响应程序关联准则)的响应程序并将该程序和虚拟资产用于响应。在这种情况下,评估虚拟资产的顺序不是固定的;Virtualize 将使用它在评估期间找到的第一个虚拟资产。 通配符可用于允许路径段是动态的。例如,假设给 通配符支持替换整个路径段。例如:
|
HTTP 端点 | 如果正在使用 HTTP(而不是 JMS 或 MQ),则这是可以访问虚拟资产的地方。若要对虚拟资产进行练习,可以将应用程序配置为使用该 URL,代替使用实际资源的 URL。任何可以访问该端点的机器都可以访问和使用你的虚拟资产。 |
配置 JMS 设置
虚拟资产可以配置来从队列或主题中接收消息,以及向队列或主题中发送消息。
- 若要配置在整个特定 Virtualize 服务器应用的全局 JMS 设置,则双击 Virtualize 服务器视图中合适的服务器节点。
- 若要为特定虚拟资产配置 JMS 设置,则双击 Virtualize 服务器视图中合适的服务器节点。
可以指定以下 JMS 设置:
选项 | 说明 |
---|---|
消息传递模式 | 消息传递模式选项指定如何在应用程序之间发送消息。可以选择 Point to Point 或 Publish and Subscribe,然后在合适区域指定设置。例如,对于点对点模式,将指定 Destination 和 replyTo 队列。对于发布和订阅模式,将指定 Publish 和 Subscribe 主题。 然后可以为该面板中(通过本地设置选项)的每个连接输入设置,也可以引用在 Virtualize 服务器级别上定义的全局 JMS 连接。(有关更多详情,请查阅 Reviewing and Configuring Server Settings in the Server Configuration Panel ) |
使用 JMSReplyTo 作为响应 | 该选项指定是否使用消息的 JMSReplyToQueueName 数据头来确定虚拟资产将响应发送到何处。 如果启用了 Use JMSReplyTo for response ,则传入请求的值将用于确定将响应发送到何处。 如果未启用该选项,则响应将被发送至 UI 中指定的队列;JMS 消息数据头中的值将被忽略。 |
消息选择器 | (可选项)当多个服务使用同一队列时,指定消息选择器表达式是很有帮助的。例如,如果消息选择器表达式是 |
Worker count | Worker count 影响创建的侦听器工作线程的数量。有关更多详情,请查阅 Adjusting the Worker Count 。 |
提供程序 URL | 指定传递给 JNDI javax.naming.InitialContext 构造器的名为 javax.naming.Context.PROVIDER_URL 属性的值。 |
初始上下文类 | 指定一个全限定类名称字符串,将其传递给 JNDI javax.naming.InitialContext 构造器作为名为 javax.naming.Context.INITIAL_CONTEXT_FACTORY 属性的字符串值。 |
连接工厂 | 指定用来从初始上下文查阅 MOM 指定工厂的密匙。它可以是 Queue Connection Factory 也可以是 Topic Connection Factory。确保将相关 jars 添加到 Virtualize 类路径。查阅 JMS Provider Configuration ,以获得关于为特定 JMS 提供程序添加哪个工厂类的信息。 |
Username/Password | 如果需要,则输入。 |
JNDI 属性表 | 指定希望应用于该部署的任何其他 JNDI 属性。 |
使用全局 JMS 连接
跨特定 Virtualize 服务器应用的全局 JMS 设置可以在服务器级别定义,然后在这里引用。有关更多详情,请查阅 Connections Tab 。
若要使用全局 JMS 连接,则从 Settings 框中选择它。
若要查看预定义的全局连接的详细信息,则单击 View settings。
消息类型支持
内置 JMS 消息监听器支持接收并响应 javax.jms.TextMessage 类型的消息。
部署在 JMS 上的虚拟资产的行为
请求消息的 JMSMessageID
将作为响应消息的 JMSCorrelationID
发送。
像往常一样,将应用程序发送或发布消息到指定目的地,便可调用部署在 JMS 上的虚拟资产。Virtualize 将使用该目的地上的消息。如果在 Message Selector Expression 字段中指定一个值,则将使用匹配特定表达式的任何消息。
浏览队列内容 - 调试和测试在 JMS 上部署的虚拟资产
在调试环境和测试虚拟资产配置时,你可能希望使用 Queue browser 查看队列内容。在尝试了解并解决意外行为时,这种可见性可能非常有用。有关更多详情信息,请查阅 浏览队列 (SOAtest) or 浏览队列 (Virtualize)。
配置 MQ 设置
如果配置了必要的 MQ 设置,则虚拟资产便可模拟在 IBM WebSphere MQ 队列上进行通讯的服务。
- 若要配置跨特定 Virtualize 服务器应用的全局 MQ 设置,请双击 Virtualize 服务器视图中合适的服务器节点。
- 若要为特定虚拟资产配置 MQ 设置,请双击 Virtualize 服务器视图中合适的虚拟资产节点。
可以指定以下 MQ 设置:
选项 | 说明 |
---|---|
Get 队列 | 指定 Virtualize 检索请求消息的队列(也称为 get 或 pull)。注意,单个虚拟资产可以使用在不同 MQ 服务器上部署的队列;有关更多详情信息,请查阅 Using Global Queue Managers。 |
Put 队列 | 指定 Virtualize 发送(put 或 push)响应消息的队列。注意,单个虚拟资产可以使用在不同 MQ 服务器上部署的队列;有关更多详情信息,请查阅 Using Global Queue Managers。 |
将 replyToQueueName 用于响应 | 该选项指定是否使用消息的 replyToQueueName 数据头来确定虚拟资产将响应发送到何处。它影响 MQ 消息类型 MQMT_REQUEST 的响应。 如果启用了 Use replyToQueueName for Response,传入请求的值将用来确定将响应发送至何处。 如果未启用该选项,则响应将被发送至 UI 中指定的队列。更具体地说:
如果禁用了 Use replyToQueueName for Response ,则 MQ 请求消息中的 replyToQueueName 和 replyToQueueManagerName 字段都将被忽略。UI 设置将确定消息发送至何处。 |
消息选择器 | (可选项)当多个应用程序使用同一个队列(或队列上有多种类型的消息交换)时,它可能有必要对 Virtualize 接收的消息进行筛选。此字段中的值(如果提供了值)与队列上消息中的 MQMD applicationIdData 字段匹配。在这种情况下, MQ API MQC.MQGMO_BROWSE_NEXT 标志用于从队列获取消息。 有关更多技巧,请查阅 Using Message Selector Filters 。 |
Worker count | Worker count 影响创建的侦听器工作线程的数量。有关更多详情,请查阅 Adjusting the Worker Count 。 |
如果 get 队列和/或 put 队列的 Settings 选项设置为本地设置,你将在右侧 Local Settings 部分中看到其他选项。
在这里,你可以使用以下两种模式之一指定队列连接细节:
- Default 模式:手动输入连接细节(比如,主机、端口、通道等)。
- CCDT 模式:指定提供连接细节的客户机通道定义表(CCDT)文件。
如果使用 Default 模式,请完成以下字段:
选项 | 说明 |
---|---|
主机 | 指定运行 IBM MQ 的主机名。 |
端口 | 指定运行 IBM MQ 的端口。 |
队列管理器 | 指定队列管理器的名称。 |
通道 | 指定服务器定义通道的名称。 |
Username/Password | 如果需要,则输入。 |
如果使用 CCDT 模式,请完成以下字段...
对于本地服务器:
对于远程服务器:
选项 | 说明 |
---|---|
CCDT 文件 | 指定 CCDT 文件(带 .tab 扩展名)的位置。 如果虚拟资产部署在远程服务器上,请使用文字字段指定 CCDT 文件的相对路径, 因为它将出现在 Virtualize 服务器树中的“File”节点下。 如果虚拟资产部署在本地服务器上,则可以使用文件系统(File System)或工作空间(Workspace)按钮浏览文件的位置。 如果正在配置当前部署在本地服务器上(但稍后将部署在远程服务器上)的虚拟资产,我们建议将 CCDT 文件与 .pva 文件放在一起。注意,你需要在将虚拟资产部署到远程服务器上之前,将 CCDT 文件部署该远程服务器上。有关更多详情,请查阅 Transferring Files Between the Remote Server and the Local Machine 。 |
队列管理器 | 指定队列管理器的名称。 |
Username/Password | 如果需要,则输入。 |
使用全局 MQ 队列
如果希望配置部署在单个虚拟资产内不同 MQ 服务器上的队列(比如,希望特定虚拟资产使用部署在两个不同 MQ 服务器上的两个队列),则可以在 Virtualize 服务器级别上全局定义它们,然后在这里引用它们。有关更多详情,请查阅 Connections Tab 。
浏览队列内容 - 调试和测试在 MQ 上部署的虚拟资产
当调试环境和测试虚拟资产配置时,你可能希望使用队列浏览器查看队列内容。在尝试了解并解决意外行为时,这种可见性可能非常有用。
有关更多详情信息,请查阅 浏览队列。
调整 Worker Count
每个 worker 创建自己到 MQ/JMS 提供程序的连接。例如,对于 Mq,如果你有 20 个 worker,则你的 WebSphere MQ Explorer 应该在 Open input count 列显示值为 20,用于虚拟资产正在监听的请求(get)队列。任何资产部署/重部署的 worker count 高于默认值 1 时,你应该都会看到像控制台中(将 worker 数配置为 x 的地方) "Started x listener(s)" 这样的信息。
增加 worker count 可以帮助提高并发性下的性能。虚拟资产的整个消息处理链是并行的,因此每个工作线程将将与其他线程并行地进行消息关联、响应消息生成等操作。然而,请注意,如果提供的 worker count 值很大,则部署/取消部署/重新部署将会非常耗时,因为有更多的连接要创建/销毁。同时,关于允许多少个并发连接,WebSphere MQ 基础设施或 JMS 提供程序可能受到限制。不应该超过基础设施配置/允许的数量。
Worker count 功能等价于 Tomcat server.xml 中的“maxThreads”属性;关于在何处查看 Virtualize Tomcat 的 server.xml 的更多详情,请查阅 Configuring SSL (HTTPS) for the Virtualize Server 。
当 Virtualize 受到大量并发虚拟用户(即在负载测试期间)约束时,通常可以通过增加这些值来期望更好的性能。
配置自定义传输虚拟资产设置
可以通过 Transports> Custom 选项卡为自定义监听器配置设置。
如果只有一个自定义监听器可用,则该选项卡将专门用于自定义格式的配置:
如果多个自定义监听器可用,则可以从 Select Implementation 框中选择要使用的一个,然后根据需求使用合适的控件对它进行配置。
配置性能设置
请查阅 使用性能概要文件。
配置数据源设置
请查阅 使用数据组。
配置虚拟数据库部署设置
对于包括 SQL 响应程序的 .pvas 没有特别的限制;任何路径都可以接受。默认情况下,Parasoft JDBC 驱动器调用在 /virtualDb (当使用 Virtualize 或 Hybrid 模式时)上部署的虚拟资产。如果希望将其配置为调用不同端点上部署的虚拟资产时,按照 Specifying which Virtual Asset the Parasoft JDBC Driver Calls中所描述添加合适的属性。
同一路径上具有多个虚拟资产是可能的。在本例中,Virtualize 将找到与传入查询相对应的虚拟产和 SQL 响应程序。
对于多个虚拟资产使用单个数据库记录,其中每个都部署在不同路径/端点上这种情况,也是有可能的。这样,如果你有三个不同的 AUT,并且每个都需要访问相同的虚拟化数据库行为,则你可以从这个相同记录中创建三个不同的虚拟资产,然后将每个 AUT 指向单独的虚拟资产(部署在一个单独的端点上)。
将可选端口用于 Virtualize HTTP 服务器
默认情况下,本地 Virtualize 服务器使用端口 9080。若要对其进行更改:
- 选择 Parasoft> 首选项。
- 打开 Parasoft> Server。
- 更改端口设置。
- 重启服务。
配置远程访问 Parasoft Virtualize 服务器的用户访问控制
关于如何控制每个用户可以在连接到其 Virtualize 桌面安装的 Virutalize 服务器上执行什么操作的更多详情,请查阅 为 Virtualize 服务器配置用户访问控制。