服务测试准则

要能够测试服务,必须首先设置测试环境并且包含这些准则以生成可靠的测试。

测试先决条件

在创建服务测试之前,您可能需要执行一些初始任务。这些任务取决于受测试 Web 服务所实施的传输协议和安全协议。
  • HTTP:缺省情况下,此传输方法是受支持的方法;不需要任何额外的配置。
  • SSL:工作空间必须包含单一认证或双重认证所必需的证书密钥库 (JKS) 文件。
  • Java™ 消息服务 (JMS):Web 服务描述语言 (WSDL) 语法必须与产品需求兼容。请参阅验证 JMS 服务的 WSDL 语法合规性

测试生成

生成测试时,将根据 XML 模式定义 (XSD) 生成消息调用包络。 在此过程中,将创建必填字段,并采用缺省选项。可在测试编辑器中修改这些元素。
注: 记录期间,您可能会提供对于受测试的实际应用程序不相干的认证详细信息。要从生成的测试中排除此类操作,请在窗口 > 首选项 > 测试 > 测试编辑器 > 服务测试中确保选择了在 XML 树查看器中显示“空则跳过”列复选框。要选择想要跳过的空 XML 元素,请在测试编辑器中的空则跳过列中选择这些元素。

加密和安全

工作台所使用的 Java 运行时环境 (JRE) 必须支持您所选数字证书所要求的加密级别。例如,不能将要求 256 位加密的数字证书用于仅支持 128 位加密的 JRE。缺省情况下,工作台是用强度受到限制的密码配置的。要使用受限程度较低的加密算法,必须下载并应用不受限辖区策略文件(local_policy.jarUS_export_policy.jar)。

可以从下面的站点下载不受限辖区策略文件:http://www.ibm.com/developerworks/java/jdk/security/50/

单击 IBM SDK 策略文件,然后登录到 developerWorks® 以获得不受限辖区策略文件。安装这些策略文件之前,请备份现有策略文件,以备日后需要恢复原始文件时使用。然后用不受限辖区策略文件覆盖 /jre/lib/security/ 目录中的文件。

SSL 认证

服务测试支持简单或双重 SSL 认证机制:
  • 简单认证(服务器认证):在此情况下,测试客户机需要确定服务是否可信。 您无需设置密钥库。如果选择始终信任选项,那么无需提供服务器证书密钥库。

    如果确实要认证服务,那么可以配置一个包含可信服务证书的证书信任库。在此情况下,测试将应该收到一个有效证书。

  • 双重认证(客户机和服务器认证):在此情况下,服务需要根据其根授权认证测试客户机。必须提供需要生成的客户机证书密钥库,以作为认证客户机来认证测试。

通过代理记录服务测试时,记录代理位于服务和客户机之间。在此情况下,必须配置记录代理的 SSL 设置,以作为实际服务向客户机认证自身(对于简单认证),并作为客户机向服务认证自身(对于双重认证)。这意味着您必须为记录代理提供足够证书。

使用存根服务时,还可以配置存根服务的 SSL 设置以作为实际服务器认证自身。这意味着您必须为服务存根提供足够证书。

NTLM 和 Kerberos 认证

本产品支持 Microsoft NT LAN Manager(NTLMv1 和 NTLMv2)和 Kerberos 认证。 在记录阶段中,认证信息记录为测试的一部分。

要启用 NTLMv2 支持,必须向工作台中添加第三方库。有关更多信息,请参阅针对 NTLMv2 认证配置工作台

数字证书

可以使用 SSL 和 SOAP 安全协议的数字证书来测试服务。数字证书必须包含在从工作空间可访问到的 Java 密钥库 (JKS) 密钥库资源中。处理密钥库文件时,必须在安全性编辑器和测试编辑器中设置访问密钥所需要的密码。对于 SOAP 安全性,您可能必须为密钥提供一个明确的名称,并且提供一个密码以访问密钥库中的专用密钥。

限制

不支持数组。

由于缺少规范,Java 消息服务 (JMS) 传输不支持附件。包络直接使用 UTF-8 编码发送。

对于每个 Java 运行时环境 (JRE) 实施,所有安全算法不会始终可用。如果特定安全实施不可用,请将所需库添加到该产品使用的 JRE 的类路径。

通用服务测试程序按 XML 文档中所反应的情况显示包络。但是,安全算法将包络视为二进制代码。因此,您必须设置 SOAP 安全性配置,以便使入局和出局消息能得以正确加密,但在测试内仍保持解密状态。

性能

虚拟用户性能取决于容器应用程序的实现。对于 HTTP 传输,本产品在 Windows 下经历了最高 900 个并发虚拟用户的测试,而在 Linux 下为最高 600 个并发虚拟用户。对于 JMS,最高为 100 个并发虚拟用户,但是由于 JMS 的异步实现,此数字可能会不同。超过这些值的话,可能会发生连接错误,并且事务速度将降低。


反馈