Domanda

Stiamo scrivendo una GUI C # relativamente pesante con alcuni componenti syncFusion (GUI framework). Vorrei aggiungere la funzionalità di registrazione client che il QA potrebbe successivamente utilizzare per riprodurre eventi client al fine di analizzare bug o altri flussi di lavoro utilizzati dal client in produzione.

Esiste un modulo così pronto per la registrazione e la riproduzione di tutte le sequenze di tasti client, eventi del mouse ecc.? (Anche il modulo C ++ potrebbe funzionare se può essere facilmente integrato nel client C # di Windows.)

Vorrei anche utilizzare i log generati per l'analisi di quali funzionalità del client sono state maggiormente utilizzate e quali funzionalità raramente vengono mai utilizzate per decidere quali bug dovrebbero avere la priorità e quali funzionalità dovrebbero essere eliminate / migliorate? Quindi sostanzialmente vorrei che il client scrivesse un registro sul disco locale o sulla rete sul server.

Sono anche un po 'preoccupato per le prestazioni, un po' di successo è accettabile, ma qualsiasi idea di quanto la registrazione di ogni evento degraderebbe le prestazioni del client ?

Il punto qui è avere la registrazione di tutti gli eventi del cliente in produzione , non i test di qualità in sé.

Modifica in base ai commenti di Aydsman: Dopo aver letto vecchio simile discussione nonché il sito di Benji sembra che ci sia molto interesse in questo tipo di "dashboard", ma al momento non esistono prodotti o soluzioni aperti o chiusi. Ho pubblicato una domanda sullo stato sul sito di Benji, ma il sito sembra piuttosto tranquillo, nessuna risposta da giugno. Le idee di Benji sono più o meno esattamente ciò che stavo cercando, ma nessun prodotto sembra esistere ancora, il che è piuttosto sorprendente, suppongo che la mancanza di prodotti esistenti significhi che l'implementazione di un tale sistema deve essere più complicata di quanto pensassi inizialmente. Continuerà a cercare e spero di trovare qualcosa in seguito.

È stato utile?

Soluzione

Come è stato accennato da altri poster qui, ci sono prodotti commerciali che fanno questo genere di cose. Se si desidera scrivere da soli, è necessario creare quella che viene chiamata DLL di hook di sistema. Questo può essere fatto in C ++ abbastanza semplicemente. Se ne crei uno, puoi probabilmente integrarlo facilmente usando Pinvoke. In effetti, vorrei iniziare guardando pinvoke.net per le persone che hanno già fatto qualcosa di simile.

Una DLL hook consente di intercettare tutti gli eventi del mouse e della tastiera. Puoi anche iniettare eventi del mouse e della tastiera. Quindi, se metti insieme questi due: intercept = record, e inject = playback.

Ecco un buon elenco di articoli per iniziare: Code Hook Hook DLL

Altri suggerimenti

Perché scrivere codice, quando è possibile acquistare un prodotto per eseguire test GUI automatizzati?

Hai sentito parlare di log4net? L'ho usato su piccola scala in un progetto, potrebbe soddisfare le tue esigenze. Ho anche fatto alcune ricerche sulle tecniche orientate agli aspetti e IoC per la registrazione. C'è un certo impatto sulle prestazioni a seconda della particolare tecnica, ma può facilitare la manutenzione del codice registrato. La porta Spring.NET per Spring Framework offre alcune opzioni per la registrazione a livello di metodo per scopi generali. Puoi utilizzare una combinazione di questi per generare " script " file di attività e un "replay" modulo in grado di leggere e rieseguire le azioni registrate in un ambiente di test.

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