本节介绍如何设置 SOAtest 与 Virtualize 以访问 IBM MQ。通过配置 Parasoft 工具可以实现对 IBM MQ 的访问。章节目录:
该部分涉及通过 IBM WebSphere MQ Java API 而非标准 JMS API 进行测试的服务。如果要使用 JMS API 发送和接收 IBM WebSphere MQ 的消息,请选择 JMS 传输选项,并参考 JMS。 |
使用 MQ 选项,必须添加 WebSphere MQ 客户端或服务器安装的 jar 文件。MQ 客户端可以在 http://www.ibm.com/software/integration/wmq/clients/处进行下载。
针对 WebSphere MQ 9,所需 jar 是:
com.ibm.mq.allclient.jar
针对 WebSphere MQ 8,所需 jar 是:
com.ibm.mq.allclient.jar
针对 WebSphere MQ 7,所需 jar 有:
com.ibm.mq.jar
com.ibm.mq.jmqi.jar
com.ibm.mq.headers.jar
com.ibm.mq.pcf.jar
com.ibm.mq.commonservices.jar
connector.jar
com.ibm.mq.jar
connector.jar
针对所有版本,这些 jar 文件都可在 [WebSphere MQ Installation directory]/java/lib
中找到。
若要将这些 jar 文件添加到 SOAtest 或 Virtualize 的 classpath 下,请完成以下操作:
IBM Java Runtime 使用的 CipherSuite 名称与 SOAtest 和 Virtualize 附带的 Java Runtime 不同。 要使用与产品一起安装的 Java,请设置以下 JVM 属性:
-J-Dcom.ibm.mq.cfg.useIBMCipherMappings=false |
或者,您也可以使用 IBM JDK。IBM Java 在以下网页可用:
https://www.ibm.com/developerworks/java/jdk/如果配置 SOAtest 与 Virtualize 使用 IBM JDK,请参阅配置 Java 运行时了解详情。
从相应工具传输选项卡内的传输菜单选择 WebSphere MQ,将在左窗格显示以下选项:
MQ 地址指定 MQ 连接设置时,可以在以下模式中进行选择:
如果使用默认模式,请填写以下字段:
如果使用 CCDT 模式,请填写以下字段:
如果使用绑定模式,请填写以下字段:
身份验证启用执行授权选项并输入用户名和密码以验证请求。如果未使用正确的用户名和密码,则不会对请求进行身份验证。 可选参数启用保持连接,使测试保持与队列管理器的连接,这样就可以在后续测试中使用 MQ 浏览游标。如果禁用,运行此测试后将关闭与队列管理器的连接;任何后续测试都将打开新的连接。默认启用。 消息交换模式消息交换模式有以下可用选项:
MQRFH2 头该部分允许配置 MQRFH2 头,它用于将消息传递到属于 WebSphere Message Broker 的消息代理或从消息代理传递消息(在 http://www.ibm.com/support/knowledgecenter/SSKM8N_7.0.0/com.ibm.etools.mft.doc/aq06920_.htm 中说明)。 在 MQRFH2 头部分可以配置请求消息头的不同部分,然后 SOAtest 或 Virtualize 将基于指定设置创建头“文件夹”。
Put 消息Put 消息具有以下选项:
Get 消息GET 消息具有以下可用选项:
队列管理器选项队列管理器选项具有以下可用选项:
MQ 队列管理器属性MQ 队列管理器属性具有以下可用选项:
SSL可以配置以下 SSL 设置。 CipherSuiteCipherSuite 用于指定 MQ 通道上的 SSL 连接。请参阅 IBM MQ 文档,以确定根据 CipherSpec 选择哪个 CipherSuite。 可以从下拉菜单中指定固定的 CipherSuite 或输入一个参数化变量以基于通讯报文指定 CipherSuite。 对等名称(可选项)指定对等名称验证队列管理器提供的证书是否与对等名称参数指定的条件匹配。服务器验证将此参数与队列管理器提供的证书的 DN(可分辨名称)相匹配。 可以指定固定的对等名称或输入一个参数化变量以基于通讯报文指定对等名称。 密钥库该设置指定用于客户端 SSL(队列管理器对客户端进行身份验证)的密钥库的位置。可以在 Parasoft> 首选项下将工具配置为对所有项目使用密钥库配置(请参阅安全设置)或者,您可以添加套件级全局设置属性,并配置套件中所有工具可用的密钥库设置。 更多详情,请参阅添加全局测试组件属性(SOAtest)或添加全局属性(Virtualize)。 如果 MQ 通道不要求客户端对其进行身份验证,则不需要提供密钥库。 信任库指定要用于服务器端 SSL(客户端对队列管理器进行身份验证)的信任库。可以在 Parasoft> 首选项下将工具配置为对所有项目使用信任库配置(请参阅安全设置)或者,您可以添加套件级全局设置属性,并配置套件中所有工具可用的信任库设置。 更多详情,请参阅添加全局测试组件属性(SOAtest)或添加全局属性(Virtualize)。通过指定 CipherSuite 并运行该工具尝试 SSL 连接后,将无法更改信任库、密钥库和密钥库密码。如果发生更改,则需要重新启动 SOAtest 或 Virtualize 才能使更改生效。 若要使用密钥库,则需下载并安装无限强度的 Java 加密扩展。详情请参阅 JCE 前提条件。 脚本挂钩脚本挂钩选项允许您使用脚本语言(如 Jython、Java、Groovy 和 JavaScript)自定义 MQ 属性。 如果需要有关使用脚本实用程序的更多信息,请参阅本教程的脚本部分。有关脚本 API 的列表,请前往帮助 > 帮助内容或 Parasoft > 帮助(取决于您的安装程序),然后查找标题为“Parasoft SOAtest Extensibility API”(适用于 SOAtest)或“Parasoft Virtualize Extensibility API”(适用于 Virtualize)的手册。 以下是脚本访问密钥:
例如,如果您将 put 消息的有效时间设置为 999:
使用上述脚本运行工具之后,请注意通讯报文头中的 Expiry 字段会变成 999。 注意:Add MQ Hook 选项卡中设置的所有选项都可以覆盖并优先于其他选项卡中设置的任何选项。 |
发生故障时,MQ 返回失败的原因代码。为了方便用户理解,SOAtest & Virtualize 错误消息会报告这些相同的原因代码。 有关 MQ 原因代码及其含义的列表信息,请通过链接到 http://www.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.tro.doc/q040710_.htm 查阅 IBM Knowledge Center。
以下是使用客户端工具(例如,SOAP 客户端、REST 客户端、消息传送客户端等)发送和接收字符数据的最佳实践。
在发送字符数据(如 XML、CSV、定长或纯文本)时,格式类型必须设置为 MQFMT_STRING 常量的值,即“MQSTR”。
对于 SOAP 客户端工具,用于对请求进行编码的字符集是通过工具混合选项卡中的输出消息编码选项指定的。
其他适用工具(例如:REST 客户端、消息传送客户端)使用产品的 Misc 首选项中配置的字符编码。
适用选项有:
如果指定不同的编码,则 MQ 消息的字符集将默认为 MQCCSI_Q_MGR,它指的是“消息中的字符数据是队列管理器字符集中的消息。"
应该在客户端工具 MQGetMessageOptions(在传输选项卡中)下启用 MQGMO_CONVERT 框。
这将指示队列管理员将消息转换为客户端工具的字符集。如果消息的原始字符集不是客户端(IBM_037、IBM_437 等)支持的功能之一,这该一点很重要。
将用来执行转换的字符集配置为与 put 消息(如上所述)相同。