Se pueden crear muchos archivos de personalización. Cuando se inicia, Functional Tester lee todos los archivos de personalización y almacena los detalles en la memoria compartida. Las referencias adicionales a los archivos de personalización se realizan en la memoria compartida.
El archivo de personalización es un archivo XML con muchas secciones marcadas con las etiquetas <Section></Section>. Cada sección tiene un nombre e incluye el contenido entre las etiquetas. En el ejemplo siguiente se muestra una sección básica:
<Section L=".ConfigFileSection"> <Name>Section Name</Name> . . Section content . </Section >
Las secciones son opcionales y en un archivo de personalización también se pueden insertar secciones vacías. Cada sección tiene su propia sintaxis. Para los componentes de secciones que requieren la implementación en ambos modelos de componentes (Java™ y .NET ) deberían haber dos etiquetas <ComponentModel>, una para Java y otra .NET:
<ComponentModel L=".ComponentModel"> <Name>Java</Name> </ComponentModel> <ComponentModel L=".ComponentModel"> <Name>Net</Name> </ComponentModel>
La sección proxies es la más utilizada. Contiene una etiqueta <DomainImplementation> para cada dominio de prueba a fin de especificar las clases de proxy que se despliegan y los nombres de clase de la aplicación sometida a prueba (AUT) asociada para la que se utiliza el proxy. Dentro de la etiqueta <DomainImplementation>, las etiquetas <Obj L=".Proxy"> se utilizan para cada clase de proxy que se establece y las etiquetas <UsedBy> especifican el nombre de clase del control de AUT.
Puede utilizar más de una etiqueta <UsedBy> para una sola clase de proxy si desea usar el mismo proxy para controles parecidos.
Debe utilizar las etiquetas <Section> de forma adecuada, respetando sus requisitos y los componentes de extensión que se despliegan en la estructura de Functional Tester.
A continuación se muestra la sintaxis completa del archivo de personalización principal.
<?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>