多くのカスタマイズ・ファイルを作成することができます。 Functional Tester は、始動時にすべてのカスタマイズ・ファイルを読み取り、共用メモリーに詳細を保管します。 カスタマイズ・ファイルへの追加参照は、共用メモリー内に作成されます。
カスタマイズ・ファイルは、<Section></Section> タグでマークされた多くのセクションが含まれる XML ファイルです。 各セクションには名前があり、タグとタグの間にその内容が含まれています。 以下の例は、基本的なセクションを示しています。
<Section L=".ConfigFileSection"> <Name>Section Name</Name> . . Section content . </Section >
セクションはオプションであり、空のセクションをカスタマイズ・ファイルに挿入することも可能です。 各セクションには独自の構文があります。 両方のコンポーネント・モデル (Java™ および .NET) でインプリメンテーションが必要なセクション・コンポーネントの場合、以下のように Java と .NET 用にそれぞれ 2 つの <ComponentModel> タグがなければなりません。
<ComponentModel L=".ComponentModel"> <Name>Java</Name> </ComponentModel> <ComponentModel L=".ComponentModel"> <Name>Net</Name> </ComponentModel>
proxies セクションは最も一般的に使用されるセクションです。 これには、デプロイされるプロキシー・クラスを指定するための <DomainImplementation> タグがテスト・ドメインごとに含まれ、プロキシーが使用される関連したテスト対象アプリケーション (AUT) のクラス名が含まれます。 <DomainImplementation> タグ内では、確立されるプロキシー・クラスごとに <Obj L=".Proxy"> タグが使用され、<UsedBy> タグは AUT コントロールのクラス名を指定します。
同様のコントロールに同じプロキシーを使用する場合、1 つのプロキシー・クラスに複数の <UsedBy> タグを含めることができます。
<Section> タグは、要件および Functional Tester フレームワークにデプロイされる拡張コンポーネントに合わせて適切に使用する必要があります。
以下に、メイン・カスタマイズ・ファイルの完全構文を示します。
<?xml version="1.0" encoding="UTF-8"?> <ConfigFile L=".ConfigFile"> <--Proxy Section: all the proxies are defined here domain wise--> <Section L=".ConfigFileSection"> <Name>proxies</Name> <Val L=".ProxyManager"> <DomainImplementation L=".DomainImplementation"> <Name>Java</Name> <Obj L=".Proxy"> <ClassName></ClassName> <Replaces/> <UsedBy></UsedBy> . . </Obj> . . </DomainImplementation> <DomainImplementation L=".DomainImplementation"> <Name>Net</Name> <Obj L=".Proxy"> <ClassName></ClassName> <Replaces/> <UsedBy></UsedBy> . . </Obj> . . </DomainImplementation> <DomainImplementation L=".DomainImplementation"> <Name>Win</Name> <Obj L=".Proxy"> <ClassName></ClassName> <Replaces/> <UsedBy></UsedBy> . . </Obj> . . </DomainImplementation> . . </Val> </Section> <--ValueManager Section: all newly defined Value and Valuemanager classes are defined here --> <Section L=".ConfigFileSection"> <Name>valueManagers</Name> <Val L=".ValueManagerManager"> <ComponentModel L=".ComponentModel"> <Name>Java</Name> <Obj L=".ValueManager"> <Id></Id> <ValueClass></ValueClass> <Manager></Manager> </Obj> </ComponentModel> <ComponentModel L=".ComponentModel"> <Name>Net</Name> <Obj L=".ValueManager"> <Id></Id> <ValueClass></ValueClass> <Manager></Manager> </Obj> </ComponentModel> </Val> </Section> <--Value Converter Section: --> <Section L=".ConfigFileSection"> <Name>valueConverters</Name> <Val L=".ValueConverterManager"> </Val> </Section> <--Property Converter Section: --> <Section L=".ConfigFileSection"> <Name>propertyConverters</Name> <Val L=".PropertyConverterManager"> <ComponentModel L=".ComponentModel"> <Name>Java</Name> <Obj L=".PropertyConverter"> <Property></Property> <Converter></Converter> </Obj> </ComponentModel> <ComponentModel L=".ComponentModel"> <Name>Net</Name> <Obj L=".PropertyConverter"> <Property></Property> <Converter></Converter> </Obj> </ComponentModel> </Val> </Section> <--Options Converter Section: --> <Section L=".ConfigFileSection"> <Name>options</Name> <Val L=".Options"> <Obj L=".Option"> <Name></Name> <Type></Type> <ReadOnly></ReadOnly> <DefaultValue/> <Description></Description> <Label/> <Category></Category> <LegalValues/> </Obj> </Val> </Section> <-- RoleMap Section: --> <Section L=".ConfigFileSection"> <Name>roleMap</Name> <Val L=".RoleMap"> <Role L=".Role"> <Name></Name> <Icon></Icon> </Role> </Val> </Section> <--TestObject Section: canonical name for all the newly created testobjects defined here --> <Section L=".ConfigFileSection"> <Name>testObjects</Name> <Val L=".TestObjectManager"> <ComponentModel L=".ComponentModel"> <Name>Java</Name> <Obj L=".TestObject"> <CanonicalName></CanonicalName> <TestObject></TestObject> </Obj> . . </ComponentModel> <ComponentModel L=".ComponentModel"> <Name>Net</Name> <Obj L=".TestObject"> <CanonicalName></CanonicalName> <TestObject></TestObject> </Obj> . . </ComponentModel> </Val> </Section> </ConfigFile>