Riproduzione delle azioni di tastiera e mouse di basso livello

Le azioni di tastiera e mouse di basso livello forniscono più controllo sugli eventi delle azioni dell'utente. Ad esempio, Functional Tester supporta correntemente TestObject.click(), in cui il clic è formato da azioni di basso livello, incluso lo spostamento del mouse, pulsante sinistro premuto e pulsante sinistro rilasciato. Utilizzando questa funzionalità, è possibile riprodurre i singoli componenti di un clic del mouse.

Le riproduzione di basso livello supporta anche lo scorrimento della rotella del mouse.

È possibile utilizzare la riproduzione di basso livello per sopperire a limitazioni di prodotto, ad un mouse oscuro o a un'azione di tastiera. Ad esempio, per disegnare un cerchio in un programma di disegno, Functional Tester non supporta il trascinamento circolare complesso, tuttavia è possibile utilizzare il metodo drag() per disegnare linee rette. Per sopperire ad un'azione di tastiera o di mouse oscura, è possibile utilizzare la riproduzione di basso livello per riprodurre le azioni del mouse per disegnare il cerchio.

La classe RootTestObject include due metodi:

I metodi del produttore in SubitemFactory per la creazione di LowLevelEvents includono:

Vi sono dei metodi paralleli per i pulsanti del mouse destro e centrale. L'evento delay fornisce un ritardo minimo uguale ai millesimi di secondo specificati, che considera il tempo impiegato dal sistema per gestire l'evento precedente.

Un esempio di Functional Tester, Java™ Scripting per disegnare la lettera V nella parte superiore sinistra dell'area di disegno.

// This routine will draw a "V" in the upper left portion
// of the drawing canvas.
// First a point in the upper left corner will be clicked, the left mouse
// button will be held down for the duration of the action, the mouse
// will be moved to the right and down, then to the right and back up,
// and finally the left mouse button will be released.
Rectangle screenRect =
   (Rectangle) drawingWindow().getProperty(".screenRectangle");
Point origin = new Point(screenRect.x + 5, screenRect.y + 5);
LowLevelEvent llEvents[] = new LowLevelEvent[7];
llEvents[0] = mouseMove(atPoint(origin.x, origin.y));
llEvents[1] = leftMouseButtonDown();
// insert a delay to provide the SUT with time to respond
// to the events being delivered to it.
llEvents[2] = delay(250);
llEvents[3] = mouseMove(atPoint(origin.x + 25, origin.y + 50));
llEvents[4] = delay(250);
llEvents[5] = mouseMove(atPoint(origin.x + 50, origin.y));
llEvents[6] = leftMouseButtonUp();
getRootTestObject().emitLowLevelEvent(llEvents);

Un esempio di Functional Tester, VB.NET Scripting per testare il controllo TrackBar e confermare che il controllo risponda agli eventi della rotella del mouse:

' This will test a TrackBar control to make sure
' that it responds to mouse wheel events.
TrackBar1Slider().Click(AtPoint(0, 0))
' Create a Low Level Event representing scrolling
' the mouse wheel down 25 clicks.
Dim ScrollDown As LowLevelEvent = MouseWheel(-25)
GetRootTestObject().EmitLowLevelEvent(ScrollDown)
' Verify The Results.

Feedback