本章节描述了如何设置SOAtest、 以访问 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 的类路径下,请完成以下操作:
SOAtest 通过 SSL 连接到 WebSphere MQ 需要 IBM JRE。IBM Java 在以下网页可用:
https://www.ibm.com/developerworks/java/jdk/
SOAtest 附带 Java 的 Oracle 发行版,默认情况下使用此发行版。必须将 SOAtest 配置为使用 IBM JRE。有关更多详情,请查阅 配置 Java 运行时 。
从合适工具的 Transport 选项卡内的 Transport 下拉菜单选中 WebSphere MQ ,将在左窗格显示以下选项:
MQ 地址指定 MQ 连接设置时,可以在以下模式中进行选择:
如果使用默认模式,请填写以下字段:
如果使用 Bindings 模式,请填写以下字段:
身份验证选择 Perform Authentication 复选框,输入 Username 和 Password 以对请求进行身份验证。如果未使用正确的用户名和密码,则不会对请求进行身份验证。 消息切换模式Message Exchange Pattern有以下可用选项:
MQRFH2 数据头该部分允许配置 MQRFH2 数据头,该数据头用于将消息往返于属于 WebSphere Message Broker 的消息代理传递消息(在 http://www.ibm.com/support/knowledgecenter/SSKM8N_7.0.0/com.ibm.etools.mft.doc/aq06920_.htm中进行了描述)。 在 MQRFH2 Header 区域,可以配置请求消息头的不同部分,然后 SOAtest 或 Virtualize 将基于指定设置创建数据头“文件夹”。
输入通讯报文Put Messages具有以下选项:
获取通讯报文GET Messages具有以下可用选项:
队列管理器选项Queue Manager Options具有以下可用选项:
MQ 队列管理器属性MQ Queue Manager Properties具有以下可用选项:
SSL可以配置以下 SSL 设置: CipherSuiteCipherSuite 用于指定 MQ 通道上的 SSL 连接。请参阅 IBM MQ 文档,以确定根据 CipherSpec 选择哪个 CipherSuite。 可以从下拉菜单中指定固定的 CipherSuite 或输入一个 参数化变量以基于流量指定 CipherSuite。 Peer Name(可选项)指定对等名称验证队列管理器提供的证书是否与对等名称参数指定的条件匹配。服务器验证将此参数与队列管理器提供的证书的 DN(可分辨名称)相匹配。 可以指定固定的对等名称或 输入一个参数化变量以基于流量指定对等名称。 Key Store该设置指定用于客户端 SSL(队列管理器对客户端进行身份验证)的密钥存储库的位置。可以在 Parasoft> Preferences 下将工具配置为对所有项目使用密钥存储配置(请查阅 Security Settings)或者,您可以添加套件级全局设置属性,并配置套件中所有工具可用的密钥存储设置。请查阅添加全局测试组件属性以获取其他详细信息。如果 MQ 通道不要求客户端对其进行身份验证,则不需要提供 Key Store 。 Trust Store指定要用于服务器端 SSL(客户端对队列管理器进行身份验证)的信任存储。可以在 Parasoft> Preferences 下将工具配置为对所有项目使用信任存储配置(请查阅 Security Settings) )或者,您可以添加套件级 全局设置属性,并配置套件中所有工具可用的信任存储设置。请查阅添加全局测试组件属性以获取其他详细信息。 通过指定 CipherSuite 并运行该工具尝试 SSL 连接后,将无法更改信任存储、密钥存储和密钥存储密码。 如果更改了它们,则需要在更改生效之前重新启动 SOAtest 或 Virtualize。 若要使用密匙库,则需下载并安装无限强度的 Java 加密扩展。有关更多详情,请查阅 JCE Prerequisite。 Scripting HookScripting Hook 选项允许您使用脚本语言(如Jython、Java、Groovy 和 JavaScript)自定义 MQ 属性。 如果需要有关使用脚本实用程序的详细信息,请参阅本教程的脚本部分。关于脚本 API 列表,请选择 Parasoft> Help,然后查询书名 "Parasoft SOAtest Extensibility API"(针对 SOAtest)或 "Parasoft Virtualize Extensibility API"(针对 Virtualize)。 以下是脚本访问密匙:
例如,如果您将 put 消息的有效时间设置为 999:
使用上述脚本运行工具之后,请注意 Traffic 标头中的 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 客户端工具,使用工具的 Misc > Outgoing Message Encoding 选项指定用来编码请求的字符集。
其他适用工具(如:REST 客户端、消息客户端)使用产品的 Misc 首选项中配置的字符编码。
适用选项有:
如果指定不同的编码,则 MQ 消息的字符集将默认为 MQCCSI_Q_MGR,它指的是“消息中的字符数据是队列管理器字符集中的消息。"
应该在客户端工具 MQGetMessageOptions (在 Transport 选项卡中)下启用 MQGMO_CONVERT 框。
这将指示队列管理员将消息转换为客户端工具的字符集。如果消息的原始字符集不是客户端(IBM_037、IBM_437 等)支持的功能之一,这该一点很重要。
将用来执行转换的字符集配置为与 put 消息(如上所述)相同。