Condividi tramite


Esecuzione tra computer

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 "Utenti TAEF remoti" 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.

  • L'utente deve essere membro del gruppo locale "Utenti TAEF remoti" nel computer di destinazione.

  • Nel computer host l'utente locale può eseguire Te.exe o, in alternativa, è possibile aggiungere credenziali generice per l'utente locale alla gestione credenziali.

    cmdkey /generic:<targetmachine> /user:<user_name> /pass:[PLACEHOLDER]
    
  • Se si esegue in un computer aggiunto a un dominio, il computer aggiunto al dominio deve avere un'esclusione di limite IPSec.

Esecuzione di test in remoto

/runOn:

Per eseguire 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 trovato durante l'esecuzione di test in locale. Tutti gli output del log verranno salvati/scritti nel computer locale.

Ad 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 scritto correttamente, provare a usare l'indirizzo IP del computer o l'opzione /disableTimeouts . A volte il ritardo DNS può essere abbastanza grande per causare il timeout del tentativo di connessione.

Nota: Se si tratta della prima volta che 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 li invia al computer remoto insieme alla dll di test. Ciò esclude i file binari di sistema e tutte le librerie COM necessarie per il test.

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

  • File

    Ogni specifica di file può contenere caratteri jolly (test.txt; test*.dll; ecc.). Ad 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 .
  • Directory

    TAEF supporta le ricerche ricorsive di directory per le directory presenti nella directory o sotto la directory contenente il file binario di test. Ad 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 al di sotto della directory unittest. 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 e a tutti i file jpg all'interno o sotto la directory unittests . TAEF mantiene la gerarchia di directory.

    Nota: Se si specifica una directory ricorsiva o non ricorsiva per una directory che non esiste 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. Lo fa in base a:

  • 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à del computer remoto, esegue i test in tale sessione (su tale desktop e così via).

      Nota: Questa operazione 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 che accede alla sessione della console (su tale desktop e così via).

    • Infine, se non si possiede una sessione nel computer remoto e nessuno viene 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 gli heuristici precedenti oltre a quelli necessari per soddisfare l'impostazione /runAs . Ad 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
    • autenticazione di Windows (Negozia) autentica l'utente con Te.Service.
    • Te.Service autorizza l'utente verificando che si sia un amministratore o un membro del gruppo locale "Utenti TAEF remoti" nel 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. L'elenco include:
    • File binari TAEF necessari
    • 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 CCR per ogni file, a Te.Service.
  • Te.Service cerca ogni file nel computer remoto e confronta i valori CRC. Le corrispondenze vengono rimosse dall'elenco e l'elenco viene inviato nuovamente al client.
  • Se sono presenti file lasciati nell'elenco delle dipendenze, Te.exe invia ogni dipendenza a Te.Service.
    • Te.Service li salva nella <directory> Te.Service\RemoteTests\<test dll name> .
  • Te.exe chiede a Te.Service di avviare una nuova istanza 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.