Aracılığıyla paylaş


Makineler Arası Yürütme

TAEF, bir makinede Te.exe yürütmeyi destekler ancak testleri ayrı bir makinede çalıştırır. TAEF testleri yürütmek için gerekli ikili dosyaları doğrular, yetkiler ve dağıtır ve tüm bilgileri kaynak konsola geri kaydeder.

Önkoşullar

Testleri uzaktan yürütmek için aşağıdaki gereksinimler gereklidir:

  • Te.Service'i (x86 veya x64) hedef makineye yükleyip çalıştırmanız gerekir.

Etki alanı hesaplarıyla yürütme

  • Alan adı hesabı, bir yönetici veya hedef makinedeki yerel "Uzak TAEF Kullanıcıları" grubunun bir üyesi olmalıdır.

Etki alanı olmayan hesaplarla yürütme

  • Yerel (etki alanı olmayan hesap) her iki makinede de aynı kullanıcı adı ve parolayla bulunmalıdır.

  • Bu kullanıcının hedef makinedeki yerel "Uzak TAEF Kullanıcıları" grubunun üyesi olması gerekir.

  • Konak makinede, yerel kullanıcı Te.exeyürütebilir veya alternatif olarak, kimlik bilgisi yöneticisine yerel kullanıcı için genel kimlik bilgileri ekleyebilirsiniz.

    cmdkey /generic:<targetmachine> /user:<user_name> /pass:[PLACEHOLDER]
    
  • Bir etki alanına bağlı bir makinede çalışıyorsanız, bu makinenin bir IPSec sınır dışlaması bulunmalıdır.

Testleri Uzaktan Yürütme

/runOn:

Testleri uzaktan çalıştırmak için komutlarınızın geri kalanıyla birlikte Te.exe için /runOn:<machine name> parametresini belirtmeniz gerekir. Önkoşulları karşılarsanız, kullanıcı deneyiminin geri kalanı testleri yerel olarak yürütürken bulunan deneyimle aynı olacaktır. Tüm günlükler yerel makineye kaydedilecek veya yazılacaktır.

Örneğin:

te unittests\wex.common.tests.dll /runon:TAEFTest1
  • Testiniz için gerekli tüm ikili dosyaları hedef makineye (TAEFTest1) gönderir ve konsolunuzda yeniden oturum açarken wex.common.tests.dlliçinde bulunan tüm TAEF testlerini uzaktan yürütür.

HRESULT 0x800706BA nedeniyle uzak makineye bağlanamıyorsanız ve makine adını doğru yazdığınızdan eminseniz, makinenin IP adresini veya /disableTimeouts anahtarını kullanmayı deneyin. Bazen DNS gecikmesi, bağlantı girişiminin zaman aşımına neden olacak kadar büyük olabilir.

Not:/runOn: komutunu ilk kez belirtiyorsanız, Te.exeiçin güvenlik duvarı dışlama iletişim kutusunda Engellemeyi Kaldır'a tıklamanız gerekebilir.

Test Bağımlılıkları

Te.exe, testinizin tüm yerel ve yönetilen modül bağımlılıklarını otomatik olarak belirler ve bunları test dll'nizle birlikte uzak makineye gönderir. Bu, sistem ikili dosyalarını ve testinizin gerektirdiği herhangi bir COM kitaplığını dışlar.

/TestDependencies komut satırı parametresi aracılığıyla ek test bağımlılıklarını, kopyalanacak dosyaların veya dizinlerin noktalı virgülle ayrılmış listesi biçiminde el ile belirtebilirsiniz.

  • Dosyalar

    Her dosya belirtimi joker karakter (test.txt; test*.dllvb.) içerebilir. Örneğin:

    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:*verification*.jpg;mysample.txt
    
    • Testiniz için gerekli tüm ikili dosyaları TAEFTest1'e ve /TestDependencies parametresinde belirtilen dosyalarla eşleşen tüm dosyaları gönderir.
  • Dizinler

    TAEF, test ikili dosyasını içeren dizinin altında veya altında bulunan dizinler için özyinelemeli dizin aramalarını destekler. Örneğin:

    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\...
    
    • Testiniz için gerekli tüm ikili dosyaları VE unittests dizinindeki veya altındaki tüm dosyaları/dizinleri TAEFTest1'e gönderir. TAEF dizin hiyerarşisini korur.
    _    te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\*.jpg...
    
    • Testiniz için gerekli tüm ikili dosyaları HEM TAEFTest1'e hem de unittests dizinindeki veya altındaki tüm jpg dosyalarına gönderir. TAEF dizin hiyerarşisini korur.

    Not:Test dizininde veya altında bulunmayan bir dizin için özyinelemeli veya özyinelemeli olmayan bir dizin araması belirtirseniz, tüm dosyalar uzak makineye kopyalanır, ancak dizin hiyerarşisi düzleşir.

DeploymentItem meta verileri aracılığıyla test bağımlılıklarını belirtebilirsiniz

Kullanıcı Bağlamı

Varsayılan olarak, TAEF testleri kullanıcı bağlamınızla uzak makinede çalıştırmayı dener. Bunu şu şekilde yapar:

  • Uzak makinedeki tüm etkin oturumları numaralandırma ve size ait bir oturumu arama.
    • TAEF uzak makinede size ait bir oturum bulursa, testleri bu oturumda (o masaüstünde vb.) çalıştırır.

      Not: Bunun konsol oturumu olması gerekmez. Uzak masaüstü oturumu olabilir.

    • TAEF, uzak bilgisayarda size ait herhangi bir oturum bulamazsa, testleri konsol oturumunda oturum açmış kullanıcı olarak (o masaüstünde vb.) çalıştırır.

    • Son olarak, uzak makinede bir oturumunuz yoksa ve konsol oturumunda hiç kimse oturum açmadıysa, TAEF testleri 0. oturumda (etkileşimli olmayan) çalıştırır.

RunAs

/runOn'a ek olarak bir /runAs değeri belirtirseniz TAEF, /runAs ayarını yerine getirmek için gerekenlere ek olarak yukarıdaki buluşsal yöntemleri de kullanır. Örneğin:

te unittests\wex.common.tests.dll /runon:TAEFTest1 /runas:system
  • Sistem hesabıyla TAEFTest1 üzerinde wex.common.tests.dll içinde bulunan tüm TAEF testlerini yürütür.

Nasıl Çalışır?

  • Te.exe uzak makinede çalışan Te.Service örneğine bağlanır
    • Windows kimlik doğrulaması (Müzakere), Te.Service ile kimliğinizi doğrular.
    • Te.Service, uzak makinedeki yerel "Uzak TAEF Kullanıcıları" grubunun yöneticisi veya üyesi olduğunuzu doğrulayarak sizi yetkiler.
  • Te.Service, RemoteTests altında test dll'siyle aynı ada sahip bir dizin oluşturur.
  • Te.exe, testlerinizi uzak makinede yürütmek için gereken dosyaların listesini oluşturur. Bu liste şunları içerir:
    • Gerekli TAEF ikili dosyaları
    • Test dll'niz için tüm yerel ve/veya yönetilen ikili bağımlılıklar (sistem ikili dosyaları hariç)
    • /TestDependencies parametresinde sizin tarafınızdan belirtilen tüm ek dosyalar
  • Te.exe, test bağımlılığı listesini ve her dosyanın CRC'lerini Te.Service'e gönderir.
  • Te.Service uzak makinedeki her dosyayı arar ve CRC değerlerini karşılaştırır. Tüm eşleşmeler listeden kaldırılır ve liste istemciye geri gönderilir.
  • Bağımlılık listesinde kalan dosyalar varsa, Te.exe her bağımlılığı Te.Service'e gönderir.
    • Te.Service bunları <Te.Service dizini>\RemoteTests\<test dll adı> dizinine kaydeder.
  • Te.exe Te.Service'den doğru kullanıcı bağlamını kullanarak uzak makinede yeni bir Te.ProcessHost.exe örneği başlatmasını ister.
  • Te.exe uzak Te.ProcessHost.exe örneğine bağlanır ve testleri yürütmeye başlar.