Condividi tramite


Esecuzione su più macchine

TAEF supporta la possibilità di eseguire Te.exe in un computer, ma eseguire i test in un computer separato. TAEF autentica, autorizza e distribuisce i file binari necessari per eseguire i test e registra tutte le informazioni nella console di origine.

prerequisiti

Per eseguire i test in remoto sono necessari i requisiti seguenti:

  • È necessario installare ed eseguire Te.Service (x86 o x64) nel computer di destinazione.

Esecuzione con account di dominio

  • L'account di dominio deve essere un amministratore o un membro del gruppo locale "Remote TAEF Users" nel computer di destinazione.

Esecuzione con account non di dominio

  • L'account locale (account non di dominio) deve esistere con lo stesso nome utente e la stessa password in entrambi i computer.

  • Tale utente deve essere membro del gruppo locale "Remote TAEF Users" nel computer di destinazione.

  • Nel computer host l'utente locale può eseguire Te.exeoppure, in alternativa, è possibile aggiungere credenziali generice per l'utente locale al gestore delle credenziali.

    cmdkey /generic:<targetmachine> /user:<user_name> /pass:[PLACEHOLDER]
    
  • Se si utilizza un computer connesso a un dominio, il computer connesso al dominio deve disporre di un'esclusione di confini IPSec.

Esecuzione di test in remoto

/runOn:

Per eseguire i test in remoto, è necessario specificare il parametro /runOn:<machine name> per Te.exe insieme al resto dei comandi. Se si soddisfano i prerequisiti, il resto dell'esperienza utente sarà identico a quello rilevato durante l'esecuzione dei test in locale. Tutto l'output del log verrà salvato/scritto nel computer locale.

Per esempio:

te unittests\wex.common.tests.dll /runon:TAEFTest1
  • Invia tutti i file binari necessari per il test al computer di destinazione (TAEFTest1) ed esegue in remoto tutti i test TAEF presenti all'interno di wex.common.tests.dll, durante la registrazione alla console.

Se non si riesce a connettersi al computer remoto a causa di HRESULT 0x800706BA e si è certi che il nome del computer sia stato digitato correttamente, provare a usare l'indirizzo IP del computer o l'opzione /disableTimeouts . A volte il ritardo DNS può essere sufficientemente grande da causare il timeout del tentativo di connessione.

Nota: Se questa è la prima volta che si specifica il comando /runOn: , potrebbe essere necessario fare clic su Sblocca in una finestra di dialogo di esclusione del firewall per Te.exe.

Testare le dipendenze

Te.exe determina automaticamente tutte le dipendenze del modulo nativo e gestito del test e le invia al computer remoto insieme alla DLL di test. Ciò esclude i file binari di sistema e tutte le librerie COM richieste dal test.

È possibile specificare manualmente dipendenze di test aggiuntive tramite il parametro della riga di comando /TestDependencies sotto forma di un elenco delimitato da punto e virgola di file o directory da copiare.

  • File

    Ogni specifica di file può contenere caratteri jolly (test.txt; test*.dll; ecc.). Per esempio:

    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:*verification*.jpg;mysample.txt
    
    • Invia tutti i file binari necessari per il test a TAEFTest1 e a tutti i file trovati che corrispondono ai file specificati nel parametro /TestDependencies .
  • Directories

    TAEF supporta ricerche ricorsive nelle directory che si trovano nella directory contenente il file binario di test, o al di sotto di essa. Per esempio:

    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\...
    
    • Invia tutti i file binari necessari per il test a TAEFTest1, nonché a tutti i file/directory all'interno o sotto la directory unittests . TAEF mantiene la gerarchia di directory.
    _    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\*.jpg...
    
    • Invia tutti i file binari necessari per il test a TAEFTest1, nonché a tutti i file jpg all'interno o sotto la directory unittests . TAEF mantiene la gerarchia di directory.

    Nota: Se si specifica una ricerca ricorsiva o non ricorsiva in una directory che non esiste nella o sotto la directory di test, tutti i file verranno copiati nel computer remoto, ma la gerarchia di directory verrà appiattita.

È possibile specificare le dipendenze di test tramite i metadati DeploymentItem

Contesto utente

Per impostazione predefinita, TAEF tenta di eseguire i test nel computer remoto con il contesto utente. A tale scopo, eseguire le operazioni seguenti:

  • Enumerazione di tutte le sessioni attive nel computer remoto e ricerca di una sessione di proprietà dell'utente.
    • Se TAEF trova una sessione di proprietà dell'utente nel computer remoto, esegue i test in tale sessione (su tale desktop e così via).

      Nota: Questa non sarà necessariamente la sessione della console. Potrebbe trattarsi di una sessione desktop remoto.

    • Se TAEF non trova una sessione di proprietà dell'utente nel computer remoto, esegue i test come utente connesso alla sessione della console (su tale desktop e così via).

    • Infine, se non si è proprietari di una sessione nel computer remoto e nessuno è connesso alla sessione della console, TAEF eseguirà i test nella sessione 0 (non interattiva).

RunAs

Se si specifica un valore /runAs oltre a /runOn, TAEF usa l'euristica precedente oltre a quelli necessari per soddisfare l'impostazione /runAs . Per esempio:

te unittests\wex.common.tests.dll /runon:TAEFTest1 /runas:system
  • Esegue tutti i test TAEF presenti all'interno di wex.common.tests.dll in TAEFTest1 con l'account di sistema.

Funzionamento

  • Te.exe si connette all'istanza di Te.Service in esecuzione nel computer remoto
    • L'autenticazione di Windows (Negotiate) autentica l'utente con Te.Service.
    • Te.Service ti autorizza verificando che tu sia un amministratore o un membro del gruppo locale 'Remote TAEF Users' sul computer remoto.
  • Te.Service crea una directory in RemoteTests, con lo stesso nome della DLL di test.
  • Te.exe compila un elenco di file necessari per eseguire i test nel computer remoto. Questo elenco include:
    • I file binari necessari di TAEF
    • Tutte le dipendenze binarie native e/o gestite per la DLL di test (esclusi i file binari di sistema)
    • Eventuali file aggiuntivi specificati dall'utente nel parametro /TestDependencies
  • Te.exe invia l'elenco delle dipendenze di test, insieme ai CRC per ogni file, a Te.Service.
  • Te.Service cerca ogni file nel computer remoto e confronta i valori CRC. Tutte le corrispondenze vengono rimosse dall'elenco e l'elenco viene restituito al cliente.
  • Se sono presenti file rimasti nell'elenco delle dipendenze, Te.exe invia ogni dipendenza a Te.Service.
    • Te.Service salva i file nella directory <Te.Service>\RemoteTests\<test dll name>.
  • Te.exe chiede a Te.Service di avviare una nuova istanza di Te.ProcessHost.exe nel computer remoto usando il contesto utente corretto.
  • Te.exe si connette all'istanza di Te.ProcessHost.exe remota e inizia a eseguire i test.