Mercurio Test Rapido Pro e macchine Virtuali:Opere da una macchina client, ma non un altro

StackOverflow https://stackoverflow.com/questions/91364

  •  01-07-2019
  •  | 
  •  

Domanda

Ho una macchina virtuale (VMware) con Mercurio Test Rapido Professional 9.2 installato.Ho uno script per testare un'applicazione, scritta in VB.NET utilizzando il Infragistics biblioteca.

Se ho accesso a questa macchina virtuale usando il mio portatile (utilizzando il Desktop Remoto), tutto funziona bene, lo script viene completata senza problemi.Il mio portatile XP con il tema Windows Classico.

Se ho accesso a questa macchina virtuale usando un'altra macchina (tramite Desktop Remoto), lo script inizia bene, ma si ferma a metà strada, senza nessun messaggio di errore da QTP, niente di niente.Questa macchina esegue XP con il tema Windows Classico.

Una differenza tra le due configurazioni è la dimensione dello schermo, il computer portatile è 1920x1280, altra macchina 1280x1024.

Il passaggio in cui lo script si comporta il controllo di una casella di controllo all'interno di un UltraWinGrid.La casella di controllo viene visualizzata sullo schermo in entrambi i casi.

Qualcuno ha avuto questo problema prima, o avere alcuna idea del perché il comportamento è diverso tra le due macchine?

Grazie.

È stato utile?

Soluzione

OK.Ho trovato il problema.Infatti, lo script era in mancanza di silenzio, perché questo è ciò che la persona che ha scritto la sceneggiatura ha detto di fare.Non poteva convalidare qualcosa che era fuori dallo schermo, in modo che lo script non è riuscito.

Il problema era la QTP definizione di "off screen".Ho due schermi collegati al mio portatile, schermo per il computer portatile stesso (1920x1200) e un altro schermo (1280x1024).Mi collego al VM per QTP utilizzando il desktop remoto, e utilizza le impostazioni dello schermo per il computer portatile.Questo significa che quando lancio il mio QTP script, e spostarla sull'altro schermo, non si adatta, in modo che lo schermo non è più ingrandita, e l'oggetto è parzialmente fuori dallo schermo, quindi, non può essere trovato.

La soluzione è semplice:in Desktop Remoto, utilizzare la scheda Display e impostare la dimensione dello schermo ad una risoluzione di 1280x1024, e QTP non ha più problemi.

Voilà.

Altri suggerimenti

Se non si utilizza la Modalità Esperto e / o stanno permettendo di QTP di fare la maggior parte del lavoro per creare il repository di oggetti, quindi sì, si fa riferimento a tutto ciò che da pixel.

Ho creato tutti i miei repository di mano gli oggetti, la visualizzazione della sorgente (in caso di automatica sul web-application testing) e utilizzando l'Oggetto di Spionaggio per l'assistenza, ove necessario.Faccio un punto per non avere eventuali informazioni sulla posizione, come parte del mio oggetto di definizione, per la ragione per cui sono in esecuzione per.

Per le parti del mio web-app che hanno interagito con Windows (l'apertura di un file da caricare, ecc.) l'Oggetto di Spionaggio, è stato essenziale per la prova e l'errore necessarie per creare un identificatore univoco per la creazione di repository oggetto.Ma può essere fatto.

Ex1:File Finestra Di Dialogo Sfoglia
testo = "Scegli file"
nativeclass = #32770 (a quanto pare alcuni di Windows VooDoo per una finestra di dialogo apri file?)

Ex2:Filename casella di testo nella finestra di dialogo Sfoglia:
nativeclass = "Modifica"
in allegato il testo "&nome File:" (più di Windows VooDoo?Si woudn non funziona per me senza la "&")

Ex3:Pulsante apri nella finestra di dialogo:
testo = "&Open"
oggetto class = "Pulsante"

Buona Fortuna!

Punto di chiarimento:Lei ha detto che QTP si ferma con il messaggio di errore.Vuol anche dire che i risultati del test del file di registro, inoltre, non ha nessun messaggio di errore?Se il registro di informazioni, che possono essere utili per diagnosticare il problema.Potrebbe condividere le linee di codice nel punto in cui lo script non riesce?

Inoltre, il desktop remoto di ridimensionare il desktop del computer remoto.Anche se QTP gli script non sono intrinsecamente di coordinate di base, le singole dichiarazioni possono essere basati su coordinate relative ad un oggetto.La risoluzione potrebbe essere un problema in proposito.Per esempio, immaginate che hai avuto una linea Pulsante "mi piace".Fare clic su(5, 150) registrati su una risoluzione superiore della macchina.Ma se si è tentato di riprodurre una risoluzione inferiore della macchina, e il 150 è fuori dei limiti dell'oggetto su una risoluzione più bassa, potrebbe causare un problema.

QTP non non utilizzare le coordinate dello schermo se non come ultima risorsa, se gli oggetti sono identificati come ad alto livello gli oggetti (SwfTable in questo caso) dovrebbe essere OK, se però QTP non riconosce l'oggetto torna WinObject e le coordinate dello schermo.

Se si utilizza Infragistics allora si dovrebbe sapere che si estendono al di QTP supporto con loro TestAdvantage prodotto che sarà probabilmente risolvere il problema.


Edit: @MatthieuF ha detto:

Siamo, infatti, utilizzare il Infragistics plugin per QTP, e abbiamo ancora il problema

Mi puoi dare un esempio di una linea che non funziona?

Un paio di cose:

Si dovrebbe essere in grado di eseguire il debug sulla VM facilmente - basta aspettare per fermare, vai nel tuo repository di oggetti, e vedere se è possibile identificare l'oggetto.Se non l'oggetto di uso spia per capire quali proprietà sono differenti tra i Sistemi operativi.Se c'è una differenza, allora si può sempre impostare la proprietà di un'espressione regolare e farlo controllare per entrambe le possibilità.

Supponendo che non è il problema che abbiamo notato problemi nell'utilizzo di desktop remoto con QTP se il Telecomando finestra viene chiusa o ridotta a icona.Per noi, è stato un problema di appunti non può essere cambiata durante una sessione RDP non è visibile, ma ci potrebbero essere altre sorprese quando si utilizza la QTP in quel modo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top