...
Table of Contents | ||
---|---|---|
|
关于自定义报文格式
SOAtest 和 Virtualize 包括允许扩展其内置报文格式的框架。该框架支持你正在使用的任何报文格式。例如,大型机报文格式、二进制报文格式或其他任何类型的私有自定义报文格式。报文格式通过创建本地格式和 包括允许扩展其内置报文格式的框架。该框架支持您正在使用的任何报文格式。例如,大型机报文格式、二进制报文格式或其他任何类型的私有自定义报文格式。报文格式通过创建本地格式和 XML 之间的转换来定义。该转换允许用户使用可用的富 XML 工具构建和验证报文。这个扩展是使用 Java 完成的。
一旦添加了自定义报文格式,SOAtest 和 Virtualize 将自动生成一个新的客户机或响应程序 可用于配置和发送使用此格式请求或响应的消息。你可以将新客户机Virtualize 将自动生成一个新的客户机或响应程序 可用于配置和发送使用此格式请求或响应的消息。您可以将新客户机/响应程序实例添加到测试场景或响应程序套件。
请查阅自定义客户端 和 自定义消息响应程序Custom Client 和 Custom Message Responder 以获得关于如何使用它们的更多详情。新的报文格式也将出现在 XML 转换器工具中,该工具在 XML 转换器 1Converter中有所描述。
除了定义格式之间的一般转换外,还可以选择性地定义一套指定报文类型,该类型定义该格式中每条报文的确切结构。例如,用户可能将一般 FIX 定义为 XML 转换,然后又定义一套应用程序使用的特定 FIX 报文。每个报文类型结构都由 XML 模式定义,并由 SOAtest 或 Virtualize 扩展提供。
实现自定义报文格式的接口
配置环境(请查阅 添加扩展的通用程序General Procedure of Adding an Extension Virtualize 中的指导说明或 SOAtest 添加扩展的通用程序 )之后,请实现以下接口(其在 Extensibility API 文档中进行了描述):
- com.parasoft.api.message.ICustomXMLConverter
- com.parasoft.api.message.ISchemaGenerator (optional)
ICustomXMLConverter 实现
这是一个必须类,用于实现与本机格式和 XML 之间的转换逻辑。这个 toXML() 方法应该以 XML 格式返回报文,其中 toNative() 方法应该以其本机格式返回报文。采取的方法:
...
- 在表单和文字视图之间切换
- 从表单输入或表单 XML 视图构建要通过网络发送的消息
- 处理接收的消息
- 执行 XML 转换器工具
ISchemaGenerator 实现
在为给定报文格式定义特定的消息类型时,必须为每种消息类型提供 XML 模式。这是可选类,提供一个方法,该方法为给定的特定消息类型提供了 XML 模式。如果没有实现这个类,也不在 parasoft-extension.xml 中引用它,相反,你必须提供对模式文件的引用(查阅下面的 中引用它,相反,您必须提供对模式文件的引用(查阅下面的 Defining parasoft-extension.xml for a Custom Message Format )。
此接口有一个方法,generateSchema(),它采用:
...
generateSchema() 返回一个一个对模式文件的引用的 URI。它可以是对动态生成的模式的引用、也可以是对 jar 文件中提供自定义报文格式扩展的模式的引用,还可以是对外部资源的引用。如果在生成模式中出现错误,那么可以返回空 URI;这将导致表单输入视图没有为给定的消息类型适当填充。
Anchor | ||||
---|---|---|---|---|
|
实现必要类后,定义 parasoft-extension.xml(在下面有所介绍,在 SOAtest 中添加扩展的通用程序 以及 在 Virtualize 添加扩展的通用程序)使用以下模式:
Code Block |
---|
<?xml version="1.0" encoding="UTF-8"?> <extension xmlns="urn:ocm/parasoft/extensibility-framework/extension" type="messageFormat" name='the name of your message format, appears in menus' description='A more detailed description'> <class>com.myCompany.MyConverter</class> <!-- implements ICustomXMLConverter --> <messageFormat xmlns="http://schemas.parasoft.com/extensibility-framework/messageFormat"> <defaultMimeType>text/plain</defaultMimeType> <messageTypes generatorClass="com.myCompany.SchemaGenerator"> <messageType id='unique ID' name='name' xsd='path to schema in jar'/> . . . </messageTypes> <client icon="myClient.gif" defaultTransport='default transport' /> <responder icon="myResponder.gif" /> </messageFormat> <version id='your version ID' updaterClass="com.myCompany.myUpdater"/> <form xmlns="urn:com/parasoft/extensibility-framework/gui"> <section label="field group 1"> <field id="key 1" label="field 1"/> <field id="key 2" label="field 2"/> </section> <section label="field group 2"> <field id="key 3" label="field 3"/> . . . </section> . . . </form> </extension> |
...
实现 ICustomXMLConverter 的类的完全限定类名以及扩展名被用于识别在客户机/响应程序中使用的报文格式。更改保存 .tst 或 .pva 文件后扩展的限定类名或扩展名将阻止已保存的客户机或响应程序解析它们正在使用的报文格式。
<MessageFormat> Element
该元素对于此扩展类型是唯一的。要导入自定义报文格式,它必须有效且正确。
...
- <responder>: 可选元素,其中包含为自定义报文格式生成的自定义 Virtualize 响应程序的一些基本信息。
- icon - 可选属性,指定自定义 Virtualize 响应程序在 GUI 中显示的图标。这是一个到图标的相对路径,其中包含在 Virtualize 类路径的 jar 文件或 Java 项目中。如果没有提供,那么 Virtualize 将为自定义 Virtualize 响应程序使用其默认工具图标。
验证新的报文格式
构建项目(请查阅在 Virtualize 中添加扩展的通用程序 或 在 SOAtest 中添加扩展的通用程序),并且重启SOAtest 或 Virtualize。Virtualize。
- 验证包含报文格式名称的新客户机/响应程序是否可用于添加到 .tst 或 .pva 文件,其通过选择 Add New> Test or Responder。
新格式也应该在 XML 转换器的下拉菜单中列出。
提示
在 parasoft-extension.xml 文件中定义的 GUI 字段出现在自定义报文格式 client/responder的 Conversion Options 选项卡中。
- 将提供给扩展 GUI 的值保存为名称-值字符串映射。作为一种结果,重新整理 parasoft-extension.xml 中表单元素的字段将不会影响用户值是否已保存;然后,改变 id 将会影响这一点。id 用于保存或加载值,因此它们必须是唯一的。如果更改它们,则先前保存的配置将不会加载以前的值,并且将变为空。然而,你可以使用修订更新器将用老 用于保存或加载值,因此它们必须是唯一的。如果更改它们,则先前保存的配置将不会加载以前的值,并且将变为空。然而,您可以使用修订更新器将用老 id 保存的老设置迁徙到新 保存的老设置迁移到新 id 集。
- 仅支持自定义表单 GUI 中带字符串值的 GUI 字段。如果扩展要求 integer 或其他类型,则你可以将字符串内容转换为扩展实现类中的所需类型。或其他类型,则您可以将字符串内容转换为扩展实现类中的所需类型。
如果希望 GUI 字段用作密码字段(输入屏蔽和安全保存特定密码),请给该字段元素一个设置为密码类型的属性。例如,以下设置 pwd 字段为密码模式:
Code Block <form xmlns="urn:com/parasoft/extensibility-framework/gui"> <section label="Main Settings"> <field id="usr" label="Username"/> <field id="pwd" label="Password" type="password"/> </section> </form>
- 表格或列表可以在字符串字段中实现为逗号分隔的值。
例如
假设你有自定义报文格式 假设您有自定义报文格式 SimpleMessage,其由键和值对与空格分隔符组成(例如: key1=value1 key2=value2 key3=value3 key4=value4
)。
...
将该示例自定义格式添加到 SOAtest 有两种方法:从 Java 源项目中,你可以从 源项目中,您可以从 Parasoft 应用商店下载,或者从可以从该项目创建的 jar 文件中下载。
从 Java 源项目中添加格式
若要从 Java 源项目中添加示例格式:
- 从 http://marketplace.parasoft.com 中下载 SimpleMessage.zip 文件,并提取它。
- 将提取到的文件作为 Java 项目导入工作空间。
- 在 SOAtest 透视图中,选择 Parasoft> Preference,选择 System Properties ,单击 Add Java Project ,指明示例 Java 项目的位置,然后单击 Apply。
- 重启 SOAtest
创建 Jar 文件
提供 Java 源项目,因此可以查看示例源码。Jar 文件通常是跨团队共享自定义格式的更简单方法。
...
- 在 Java 透视图中,右键单击 Java 项目,然后选择 Export。
- 选择 Java> JAR file,然后单击 Next。
- 指明希望在何处创建 jar 文件,然后单击 Finish。
从 Jar 文件中添加格式
现在,其他团队成员可以从 jar 文件中添加自定义格式(而不是从 Java 项目。如果已经如上所述从 Java 项目中添加了格式,则就不需要完成这些步骤):
- 在 SOAtest 透视图中,选择 Parasoft> Preference,选择 System Properties ,单击 Add JARs ,指明示例 jar 文件的位置,然后单击 Apply。
- 重启 SOAtest
在 SOAtest 工具中使用自定义格式
一旦示例添加到 SOAtest,那么就可以创建 SimpleMessage 客户机工具也可以使用 XML 转换器工具中的格式。
...