사용자 정의 파일을 여러 개 작성할 수 있습니다. Functional Tester를 시작하면 테스터가 모든 사용자 정의 파일을 읽고 공유 메모리에 세부사항을 저장합니다. 사용자 정의 파일에 대한 자세한 참조가 공유 메모리에 작성됩니다.
사용자 정의 파일은 <Section></Section> 태그로 표시된 여러 섹션이 있는 XML 파일입니다. 섹션마다 이름이 있으며 태그 사이에 컨텐츠가 들어 있습니다. 다음 예제는 기본 섹션을 표시합니다.
<Section L=".ConfigFileSection"> <Name>Section Name</Name> . . Section content . </Section >
섹션은 선택적이며 사용자 정의 파일에 빈 섹션을 삽입할 수도 있습니다. 섹션마다 고유한 구문을 가집니다. 컴포넌트 모델 둘 다(Java™ 및 .NET )에서 구현해야 하는 섹션 컴포넌트의 경우 Java 및 .NET에서 각각 사용할 두 개의 <ComponentModel> 태그가 있어야 합니다.
<ComponentModel L=".ComponentModel"> <Name>Java</Name> </ComponentModel> <ComponentModel L=".ComponentModel"> <Name>Net</Name> </ComponentModel>
proxies 섹션은 가장 일반적으로 사용되는 섹션입니다. 여기에는 배치된 프록시 클래스 및 프록시가 사용되는 연관된 테스트 중인 애플리케이션 클래스 이름을 지정하는 데 사용되는 각 테스트 도메인의 <DomainImplementation> 태그가 들어 있습니다. <DomainImplementation> 태그에서, 설정되어 있는 각 프록시 클래스에 <Obj L=".Proxy"> 태그가 사용되며 <UsedBy> 태그는 AUT 제어의 클래스 이름을 지정합니다.
비슷한 제어에서 동일한 프록시를 사용하려면 단일 프록시 클래스에서 둘 이상의 <UsedBy> 태그를 가질 수 있습니다.
태그의 요구사항을 충족하고 확장 컴포넌트가 Functional Tester 프레임워크에 배치되도록 <Section> 태그를 적절히 사용해야 합니다.
다음은 기본 사용자 정의 파일의 전체 구문입니다.
<?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>