Cuando se desarrollan nuevos proxies ampliando los
proxies existentes para un dominio cualquiera, es crucial entender los
proxies y las jerarquías existentes para poder ampliar el proxy adecuado.
Para obtener más información sobre los métodos y las
propiedades de las clases de proxy, consulte la referencia de la API de
proxy.
Identificación del control sometido a prueba
La
primera tarea para una herramienta de pruebas funcionales consiste
en identificar el control sometido a prueba y representarlo en la
aplicación sometida a la prueba (AUT).
Functional Tester
identifica que un control está usando las propiedades de reconocimiento y
la jerarquía y los representa en la correlación de TestObject. Las
propiedades de reconocimiento y jerarquía pueden variar entre cada
control. El proxy desarrollado para un control proporciona esta
información a
Functional Tester. Durante
el desarrollo de nuevos proxies se heredan los proxies base de cada
dominio. Normalmente estos métodos no se sustituyen porque ya están
implementados en los proxies base.
- Propiedades de reconocimiento
- Puede utilizar los métodos enumerados en
Tabla 1 para especificar las
propiedades y el peso de reconocimiento para un control.
Nota: También
puede especificar las propiedades y el peso de reconocimiento mediante la
Biblioteca de objetos.
Tabla 1. Métodos ampliables para especificar la propiedad de reconocimientoJava |
.Net |
Hashtable getRecognitionProperties() |
Hashtable GetRecognitionProperties() |
int getRecognitionPropertyWeight(String propertyName) |
int GetRecognitionPropertyWeight(String propertyName) |
- Jerarquía
- Puede utilizar los métodos enumerados en
Tabla 2 para especificar la
jerarquía de un control.
Nota: Normalmente, estos métodos se implementan
en las clases de proxy base y es posible que no se deban ampliar.
Tabla 2. Métodos ampliables para especificar la jerarquíaJava |
.Net |
getParent() |
GetParent() |
getTopParent() |
GetTopParent() |
getChildren() |
GetChildren() |
Object getChildAtPoint(Point pt) |
Object GetChildAtPoint(Point pt) |
getOwner() |
GetOwner() |
getOwnedObjects() |
GetOwnedObjects() |
Definición
Puede utilizar los métodos enumerados en
Tabla 3 para cambiar
las características administrativas de un control como, por ejemplo, los
iconos o los nombres descriptivos.
Tabla 3. Métodos ampliables para cambiar las características administrativasJava |
.Net |
String getTestObjectClassName() |
String GetTestObjectClassName() |
String getDescriptiveName() |
String GetDescriptiveName() |
String getUniqueId() |
String GetUniqueId() |
boolean shouldBeMapped() |
bool ShouldBeMapped() |
String getRole() |
String GetRole() |
String getObjectClassName() |
String GetObjectClassName() |
Grabación
Functional Tester
graba las acciones de los usuarios realizadas en un control cuando la
grabadora está activada. Estas acciones de usuario se pueden agrupar como
interacciones de ratón e interacciones de teclado. Puede utilizar los
métodos enumerados en
Tabla 4
para la grabación.
Tabla 4. Métodos ampliables para la grabaciónJava |
.Net |
void processMouseEvent(IMouseActionInfo action) |
void ProcessMouseEvent(IMouseActionInfo action) |
void processPreDownMouseEvent(IMouseActionInfo action) |
void ProcessPreDownMouseEvent(IMouseActionInfo action) |
void processPreUpMouseEvent(IMouseActionInfo action) |
void ProcessPreUpMouseEvent(IMouseActionInfo action) |
void processPostUpMouseEvent(IMouseActionInfo action) |
void ProcessPostUpMouseEvent(IMouseActionInfo action) |
void processHoverMouseEvent(IMouseActionInfo action) |
void ProcessHoverMouseEvent(IMouseActionInfo action) |
getScriptCommandFlags() |
GetScriptCommandFlags() |
Vector getSubItems() |
ArrayList GetActionArgs(Point pt) |
Rectangle getRectangle(SubItem) |
SubItem FindSubItem(Point pt) |
Reproducción
Puede utilizar los métodos enumerados
en
Tabla 5 para
buscar el rectángulo o punto de la pantalla para un SubItems.
Nota: Normalmente
no es necesario ampliar estos métodos a no ser que incluya nuevos SubItems.
Tabla 5. Métodos ampliables para la reproducciónJava |
.Net |
Rectangle getScreenRectangle(SubItem) |
Point GetPointForSubItem(SubItem) |
Puntos de verificación
Puede añadir más tipos de
datos y propiedades a un control.
- Verificación de datos
- Puede utilizar los métodos enumerados en
Tabla 6 para añadir
más tipos de datos a un control.
Tabla 6. Métodos ampliables para añadir tipos de datosJava |
.Net |
Hashtable getTestDataTypes() |
Hashtable GetTestDataTypes() |
ITestData getTestData(String) |
ITestData GetTestData(string testDataType) |
- Comprobación de propiedades
- Puede utilizar los métodos enumerados en
Tabla 7 para añadir más
propiedades a un control.
Tabla 7. Métodos ampliables para añadir propiedadesJava |
.Net |
Hashtable gerProperties() |
Hashtable GerProperties() |
object getProperty(String) |
object GetProperty(string) |
Gestión de datos
Puede utilizar los métodos
enumerados en
Tabla 8 para
especificar el método a utilizar para la gestión de datos.
Tabla 8. Métodos ampliables para la gestión de datosJava |
.Net |
MethodSpecification getDataDrivableCommand |
MethodSpecification GetDataDrivableCommand |
Soporte de reflexión
Puede utilizar el soporte
de reflexión proporcionado
por Java™
y .Net desde el script de prueba. Las API getMethods() e Invoke()
permiten acceder a la información sobre los métodos en el objeto
subyacente para usar en la invocación remota. Esta información incluye
la firma y el nombre del método. Puede utilizar los métodos enumerados en
Tabla 9 para el
soporte de reflexión.
Tabla 9. Métodos ampliables para el soporte de reflexiónJava |
.Net |
getMethods() |
GetMethods() |
invoke() |
Invoke() |
getNonValueProperties() |
|
El método
getNonValueProperties() devuelve las propiedades que no están admitidas
porque el valor es una referencia a un objeto que no se puede serializar a
través de límites de procesos. Estas propiedades siguen estando accesibles
mediante los métodos getProperty(). Si esta propiedad se devuelve
al script de prueba, se devuelve como un TestObject que contiene una
referencia al objeto de la AUT. El script de prueba debe llamar al método
unregister() de TestObject para liberar el objeto.