...
Table of Contents | ||
---|---|---|
|
关于自定义工具
SOAtest 和 Virtualize 包括添加自定义工具的框架。自定义工具可配置来执行输入上的自定义执行。例如,自定义工具可以修改变量,或删除浏览器 cookie。
为自定义工具实现的接口
设置好自定义扩展的环境后,请实现以下接口(Extensibility API 文档中有作说明):
- com.parasoft.api.tool.ICustomTool
ICustomTool 实现
这是一个必需的类,将用于实现工具执行逻辑。该接口有三种实现方法:
...
当将输入传递到自定义工具的输出时,可能会发生类似的情况。您可能需要从内部 API 传递一个对象,而不是从 IToolInput 更具体的子接口的实例中传递。在这种情况下,您将返回内部接口 com.parasoft.tool.IToolInputWrapper 的一个实例,它返回 com.parasoft.tool.ToolUsable。
定义自定义工具的 parasoft-extension.xml
实现必要类后,如下定义 parasoft-extension.xml:
Code Block |
---|
<?xml version="1.0" encoding="UTF-8"?> <extension xmlns="urn:ocm/parasoft/extensibility-framework/v1/extension" type="tool" name='the name of your tool, appears in menus' description='A more detailed description'> <class>com.myCompany.MyTool</class> <!-- implements ICustomTool --> <version id='your version ID' updaterClass="com.myCompany.myUpdater"/> <tool xmlns="http://schemas.parasoft.com/extensibility-framework/v1/tool" icon="myIcon.gif" useInputTab="true" successIndicator="true" category="myCategory" supportXmlConversion="true" showInToolList="common" showInOutputList="common"> <outputs> <output key="key" name="output name"/> ... </outputs> </tool> <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"/> <field id="element" label="Select an element" type="xpath"/> </section> <section label="field group 2"> <field id="key 3" label="field 1"/> <field id="usr" label="Username"/> <field id="pwd" label="Password" type="password"/> . . . </section> . . . </form> </extension> |
<tool> Element
此元素对于此扩展类型是唯一的,并且对于要导入的自定义工具必须是有效且正确的。
...
icon - 可选属性,允许您提供自定义图标的名称,该图标将显示在菜单中工具名称旁,以及测试用例浏览器(SOAtest)或虚拟资产浏览器(Virtualize)中使用该工具的资产旁。如果没有提供,将使用默认图标。
- useInputTab - 可选属性,允许指定自定义工具是否具有 input 选项卡。默认为 false。
- successIndicator - 可选属性,允许指定此工具是否作为其父工具的成功指示器。如果为 true,工具的成功将决定其父工具的成功。如果为 false,则该工具是否通过或失败与其父工具是否通过或失败无关。
- category - 可选属性,允许将工具放在由 Parasoft 预定义的类别中,或者为自定义工具定义一个新类别。现有的类别有:
- SOA/消息传递
- 虚拟化
- Web
- 验证
- 数据库
- 脚本
- 数据交换
- Java
- BPEL
- WSDL
- 录制/监控
- 转换
- XML 安全
- supportXmlConversion - 可选属性,指定在调用已定义的 execute() 方法之前是否将非 XML 输入转换为 XML。默认为 false。
- showInToolList - 可选属性,在“添加工具向导”对话框中指定工具的可用性。可能的值有:
- common - 在添加新工具时出现在“Common Tools”文件夹中。
- all - 在添加新工具时出现在“All Tools”文件夹中。
- no - 将不会显示为可用工具。
- showInOutputList - 可选属性,在“添加输出向导”对话框中指定工具的可用性。可能的值有:
- common - 在添加输出时出现在“Common Tools”文件夹中。
- all - 在添加输出时出现在“All Tools”文件夹中。
- no - 将不会显示为输出工具。
- <output> - 定义自定义工具的输出类型。
- key - 输出类型的字符串标识符,这在为自定义工具定义的所有输出的键中必须是唯一的。
- name - 用于显示输出类型的名称。
<form> Element
此元素对于此扩展类型是唯一的,并且对于要导入的自定义工具必须是有效且正确的。定义自定义工具的 input 字段。
...
- <section> - 定义字段类别。
- id - 标识字段类别的内部名称。
- label - 在 UI 中显示的类别名称/标签。
- <field> - 定义配置 UI 中显示的特定输入字段。
- label - 在 UI 中显示的字段名称/标签。
- type - 字段类别。这可以设置为
string
(普通字段)、xpath
(提供 XPath Chooser 功能)或password
(在键入时隐藏值,保存时加密值)。
提示
- 将提供给扩展 GUI 的值保存为名称-值字符串映射。作为结果,重新整理 parasoft-extension.xml 表单元素中的字段不会影响用户值的保存方式;但更改 ID 会对此产生影响。id 用于保存或加载值,因此它们必须是唯一的。如果更改它们,则先前保存的配置将不会加载以前的值,并且将变为空。然而,您可以使用修订更新器将用老 id 保存的老设置迁徙到新 id 集。
- 字段可以指定
type
属性。这可以设置为:string
: 一个普通字段。xpath
: 提供 XPath Chooser 功能。password
: 在键入时隐藏值,保存时加密值。
- 仅支持自定义表单 GUI 中带字符串值的 GUI 字段。如果扩展要求 integer 或其他类型,则您可以将字符串内容转换为扩展实现类中的所需类型。
如果希望 GUI 字段用作密码字段(输入屏蔽和安全保存特定密码),请给该字段元素一个
type
属性,并将其设置为password
。例如,下面将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>
如果希望 GUI 字段实现为 Xpath 选择器,请该字段设置一个设置为 xpath 的
type
元素。例如,下面将element
字段设置为 XPath 选择器:Code Block <form xmlns="urn:com/parasoft/extensibility-framework/gui"> <section label="Main Settings"> <field id="element" label="Select an element" type="xpath"/> </section> </form>
- 如果希望在调用已定义的 execute() 方法之前将非 XML 输入转换为 XML,请启用 parasoft-extension.xml 中的
supportXmlConversion
选项。工具用户将能够在工具的配置面板中选择所需的消息格式。此外,如果实现了 XPath 选择器(见上面),则它的树视图将以适合所选消息类型的格式显示消息。(注意,消息格式是在工具配置面板的消息格式部分设置的)。 - 表格或列表可以在字符串字段中实现为逗号分隔的值。
可以使用
${var_name}
语法引用扩展 GUI 字段中的数据源、数据库值、环境变量和测试或响应器套件变量。批准的“参数化”和“脚本化”GUI 控件还可用来参数化字段。
验证新工具
验证是否已经创建新工具,并在其他 Parasoft 定义的工具中列出。