本主题解释如何配置和应用 webMethods 工具,它允许您将 BrokerEvent 对象发布并发送到 Software AG webMethos Broker,以及订阅事件和调用本地 webMethods 集成服务器服务。本章包含:
配置步骤根据您希望使用的执行模式(发布、订阅、请求/回复)而异。
总是需要将以下 jar 文件添加到 SOAtest 类路径中:
这些 jar 文件可以在 [webmethods install dir]/Broker/lib/下找到。有关更多详情,请参阅 webMethods Broker Client Java API Programmer's Guide> Getting Started> Using the webMethods Broker Java API。
在某些情况下,还需要 enttoolkit.jar 和 mail.jar。
若要将这些 jar 文件添加到 SOAtest 类路径,请完成以下操作:
若要配置 webMethods 工具以发布 BrokerEvent 对象,请完成以下内容:
(可选)在 Subscription Filter 中,指定筛选器字符串,以便仅检索具有所需字段值的事件。例如,您可以使用像 my_Strin_field="some value" and my_int_value < 5
之类的表达式。有关筛选器字符串语法的详细信息,请参阅 WebMethods 大力客户机 Java API 程序员指南“使用事件筛选器”一节。
有关 BrokerEvent 对象的更多信息,请参阅 webMethods 代理客户机 Java API 程序员指南中的 COM.activesw.api.client.BrokerEvent 文档。
在测试执行期间,SOAtest 通过调用代理客户机 Java API 并为其提供 BrokerEventobject 来发布事件。订阅该事件类型的任何应用程序都将接收 SOAtest 发布的事件。
若要查看发布事件的 XML 表示形式,请使用流量查看器工具,该工具自动链接到 webMethods 工具。注意,即使发送和接收了实际的 BrokerEvent 对象,查看器也使用 XML 表示。这使得阅读更容易,并允许您链接验证或处理内容的工具(例如 Diff 工具或 XML Assertor 工具)。
若要配置 webMethods 工具以订阅 BrokerEvent 对象,请完成以下内容:
在测试执行期间,SOAtest 开始侦听发布到指定事件类型的事件。
若要查看接收事件的 XML 表示形式,请使用流量查看器工具,该工具自动链接到 webMethods 工具。注意,即使发送和接收了实际的 BrokerEvent 事件对象,查看器也使用 XML 表示。这使得阅读更容易,并允许您链接验证或处理内容的工具(例如 Diff 工具或 XML Assertor 工具)。
若要配置 webMethods 工具来发送 BrokerEvent 对象,并在发送另一个对象之前等待回复,请完成以下内容:
有关 BrokerEvent 对象的更多信息,请参阅 webMethods 代理客户机 Java API 程序员指南中的 COM.activesw.api.client.BrokerEvent 文档。
在测试执行期间,SOAtest 通过调用代理客户机 Java API 并为其提供代理事件对象来发送请求,然后等待响应。
若要查看请求和响应事件的 XML 表示形式,请使用流量查看器工具,该工具自动链接到 webMethods 工具。注意,即使发送和接收了实际的 BrokerEvent 对象,查看器也使用 XML 表示。这使得阅读更容易,并允许您链接验证或处理内容的工具(例如 Diff 工具或 XML Assertor 工具)。
当发布到代理或使用脚本输入执行请求/应答时,将向您的自定义方法传递两个参数。第一个参数是您在工具设置中指定的类型名称的 BrokerEvent 对象。您需要用所需的输入值填充这个对象(有关如何完成此操作的详细信息,请参阅 webMethods 代理客户端 Java API 程序员指南),然后返回它。第二个参数是一个测试工具 com.parasoft.api.Context 对象。
下面是一个示例 Jython 脚本:
from com.parasoft.api import * from COM.activesw.api.client import * def configureBrokerEvent(event, context): event.setUCStringField("s", "something") event.setIntegerField("i", 1) event.setUCStringSeqField("sl", 0, BrokerEvent.ENTIRE_SEQUENCE, BrokerEvent.AUTO_SIZE, ["one", "two", "three"]) return event |
需要将以下 jar 文件添加到 SOAtest 类路径中:
该文件可在 [webmethods install dir]/common/lib/wm-isclient.jar下找到。若要将这个 jar 文件添加到 SOAtest 类路径,请完成以下操作:
若要配置 SOAtest 来调用 webMethods IS(集成服务器)服务和接收响应:
在测试执行期间,SOAtest 发送 iData 对象来调用集成服务器服务并接收响应。
若要查看发送并接收对象的 XML 表示形式,请使用流量查看器工具,该工具自动链接到 webMethods 工具。这个 XML 表示使用 iData XML 编码格式。注意,即使发送和接收了实际的 iData 对象,查看器也使用 XML 表示。这使得阅读更容易,并允许您链接验证或处理内容的工具(例如 Diff 工具或 XML Assertor 工具)。
当使用带有脚本输入的集成服务器服务时,您的自定义方法将被传递两个参数。第一个是 Idata 对象,您需要用所需的数据填充该对象,然后返回。第二个参数是一个 com.parasoft.api.Context 对象。
下面是一个示例 Jython 脚本:
from com.wm.app.b2b.client import * from com.wm.data import * def buildIData(idata, context): IDataUtil.put(idata.getCursor(), "in1", "12") IDataUtil.put(idata.getCursor(), "in2", "13") return idata |
会话 ID 将自动保存到 WebMethodsSessionId
上下文变量。可以使用 com.parasoft.api.Context.get(String key)
(其中 String key
为 “WebMethodsSessionId"
)从扩展工具、脚本或自定义工具访问它。
例如,下面的扩展工具(使用 Groovy 脚本)访问存储在 sessionId
变量中的会话 id:
import com.parasoft.api.* boolean useSessionId(input, context) { sessionId = context.get("WebMethodsSessionId") Application.showMessage("sessionId = " + sessionId) // Put code here to do something with the session id return true } |