File di personalizzazione

È possibile specificare componenti estensibili come proxy, TestObjects, valori e gestori valori in un file di personalizzazione esterno con estensione .rftcust. Una volta distribuiti i file, tali componenti estesi diventano parte del framework Functional Tester. Il file di personalizzazione principale, rational_ft.rftcust è ubicato nella directory di personalizzazione o nella directory di installazione Functional Tester.

È possibile creare diversi file di personalizzazione. Quando si avvia Functional Tester, questo legge tutti i file di personalizzazione e memorizza i dettagli nella memoria condivisa. Ulteriori riferimenti ai file di personalizzazione vengono eseguiti nella memoria condivisa.

Sintassi file di personalizzazione

Il file di personalizzazione è un file XML con diverse sezioni che sono contrassegnate con tag <Section></Section>. Ogni sezione ha un nome e contiene il contenuto tra le tag. L'esempio riportato di seguito mostra una sezione di base:

<Section L=".ConfigFileSection">
	<Name>Section Name</Name>
         .
         .
         Section content 
         .
</Section >

Le sezioni sono facoltative ed è possibile inoltre inserire sezioni vuote in un file di personalizzazione. Ogni sezione ha la propria sintassi. Relativamente ai componenti di sezione che richiedono l'implementazione in entrambi i modelli di componenti (Java e .NET ) devono essere presenti due tag <ComponentModel>, una per Java e una per .NET:

<ComponentModel L=".ComponentModel">
       <Name>Java</Name>
</ComponentModel>
<ComponentModel L=".ComponentModel">
       <Name>Net</Name>
</ComponentModel>

La sezione proxies è quella più comunemente utilizzata. Essa contiene una tag <DomainImplementation> per ogni dominio di test per la specifica di classi proxy distribuite e i nomi classe dell'AUT (application under test) associata per cui viene utilizzato il proxy. All'interno della tag <DomainImplementation>, le tag <Obj L=".Proxy"> vengono utilizzate per ogni classe proxy stabilita e le tag <UsedBy> specificano il nome di classe del controllo AUT.

È possibile avere più di una tag <UsedBy> per una sola classe proxy se si desidera utilizzare lo stesso proxy per controlli simili.

È necessario utilizzare le tag <Section> in modo appropriato, rispondendo ai relativi requisiti e componenti di estensione da distribuire nel framework Functional Tester.

Sintassi completa della personalizzazione principale

Di seguito è riportata la sintassi completa del file di personalizzazione principale.

<?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>

Feedback