Überlegungen UI-Tests

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

Wenn Sie automatisierte Tests in der CI/CD-Pipeline ausführen, benötigen Sie möglicherweise eine spezielle Konfiguration, um Benutzeroberflächentests wie Selenium-, Appium- oder Coded UI-Tests auszuführen. In diesem Thema werden die typischen Überlegungen zum Ausführen von Benutzeroberflächentests beschrieben.

Hinweis

Gilt nur für TFS 2017 Update 1 und höher.

Hinweis

Microsoft Visual Studio Team Foundation Server 2018 und frühere Versionen haben die folgenden Unterschiede in der Namensgebung:

  • Pipelines für Build und Release werden Definitionen genannt
  • Läufe werden als builds bezeichnet
  • Dienstverbindungen werden als Dienstendpunkte bezeichnet
  • Die Stages werden Environments genannt
  • Die Jobs werden Phases genannt

Voraussetzungen

Machen Sie sich mit Agents vertraut und stellen Sie einen Agent unter Windows bereit.

Kopfloser Modus oder sichtbarer UI-Modus?

Beim Ausführen von Selenium-Tests für eine Web-App können Sie den Browser auf zwei Arten starten:

  1. Headless-Kopfmodus. In diesem Modus wird der Browser wie gewohnt ausgeführt, aber ohne dass Ui-Komponenten sichtbar sind. Obwohl dieser Modus offensichtlich nicht für das Surfen im Web nützlich ist, ist er für die unbeaufsichtigte Ausführung automatisierter Tests in einer CI/CD-Pipeline nützlich. Chrome - und Firefox-Browser können im headless-Modus ausgeführt werden.

    Dieser Modus verbraucht im Allgemeinen weniger Ressourcen auf dem Computer, da die Benutzeroberfläche nicht gerendert wird und Tests schneller ausgeführt werden. Daher können potenziell mehr Tests parallel auf demselben Computer ausgeführt werden, um die Gesamtdauer der Testausführung zu reduzieren.

    Screenshots können in diesem Modus erfasst und zur Problembehandlung von Fehlern verwendet werden.

    Hinweis

    Der Microsoft Edge-Browser kann derzeit nicht im headless-Modus ausgeführt werden.

  2. Sichtbarer UI-Modus. In diesem Modus wird der Browser normal ausgeführt, und die Ui-Komponenten sind sichtbar. Beim Ausführen von Tests in diesem Modus unter Windows ist eine spezielle Konfiguration der Agents erforderlich.

Wenn Sie UI-Tests für eine Desktopanwendung ausführen, z. B. Appium-Tests mit WinAppDriver oder Tests der programmierten UI, ist eine spezielle Konfiguration der Agents erforderlich.

Tipp

End-to-End-UI-Tests sind in der Regel sehr lang. Wenn Sie den sichtbaren UI-Modus verwenden, können Sie je nach Testframework möglicherweise keine Tests parallel auf demselben Computer ausführen, da die App im Fokus stehen muss, um Tastatur- und Mausereignisse zu empfangen. In diesem Szenario können Sie Testzyklen beschleunigen, indem Sie Tests parallel auf verschiedenen Computern ausführen. Weitere Informationen finden Sie unter Paralleles Ausführen von Tests für jeden Testrunner und paralleles Ausführen von Tests mithilfe des Visual Studio-Testtasks.

Ui-Tests im sichtbaren UI-Modus

Für Agents ist eine spezielle Konfiguration erforderlich, um UI-Tests im sichtbaren UI-Modus auszuführen.

Sichtbare Benutzeroberflächentests mit von Microsoft gehosteten Agents

Von Microsoft gehostete Agents sind für Benutzeroberflächentests und Benutzeroberflächentests sowohl für Web-Apps als auch für Desktop-Apps vorkonfiguriert. Von Microsoft gehostete Agents sind auch mit gängigen Browsern und entsprechenden Webtreiberversionen vorkonfiguriert, die zum Ausführen von Selenium-Tests verwendet werden können. Die Browser und die entsprechenden Webtreiber werden regelmäßig aktualisiert. Weitere Informationen zum Ausführen von Selenium-Tests finden Sie unter UI-Test mit Selenium.

Tests der sichtbaren Benutzeroberfläche mit selbstgehosteten Windows-Agents

Agents, die für die Ausführung als Dienst konfiguriert sind, können Selenium-Tests nur mit headless-Browsern ausführen. Wenn Sie keinen headless-Browser verwenden oder Benutzeroberflächentests für Desktop-Apps ausführen, müssen Windows-Agents für die Ausführung als interaktiver Prozess mit aktivierter automatischer Anmeldung konfiguriert werden.

Wenn Sie Agents konfigurieren, wählen Sie "Nein" aus, wenn Sie aufgefordert werden, als Dienst auszuführen. Anschließend können Sie den Agent mit der automatischen Anmeldung konfigurieren. Wenn Ihre Benutzeroberflächentests ausgeführt werden, werden Anwendungen und Browser im Kontext des Benutzers gestartet, der in den Einstellungen für die automatische Anmeldung angegeben ist.

Wenn Sie Remote Desktop verwenden, um auf den Computer zuzugreifen, auf dem ein Agent mit automatischer Anmeldung ausgeführt wird, führt das einfache Trennen der Remote Desktop-Verbindung dazu, dass der Computer gesperrt wird und alle UI-Tests, die auf diesem Agenten laufen, fehlschlagen können. Um dies zu vermeiden, verwenden Sie den Befehl tscon auf dem entfernten Computer, um die Verbindung zu Remote Desktop zu trennen. Beispiel:

%windir%\System32\tscon.exe 1 /dest:console

In diesem Beispiel ist die Zahl „1“ die ID der Remotedesktopsitzung. Diese Anzahl kann sich zwischen Remotesitzungen ändern, kann aber im Task-Manager angezeigt werden. Um die Suche nach der aktuellen Sitzungs-ID zu automatisieren, erstellen Sie alternativ eine Batchdatei mit dem folgenden Code:

for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
  %windir%\System32\tscon.exe %%s /dest:console
)

Speichern Sie die Batchdatei, und erstellen Sie eine Desktopverknüpfung dazu, und ändern Sie dann die Verknüpfungseigenschaften in "Als Administrator ausführen". Wenn Sie die Batchdatei über diese Verknüpfung ausführen, wird die Verbindung mit dem Remotedesktop getrennt, die Benutzeroberflächensitzung wird jedoch beibehalten und die Ausführung von UI-Tests ermöglicht.

Bereitstellen von Agents auf azure-VMs für Benutzeroberflächentests

Wenn Sie virtuelle Computer (VMs) in Azure bereitstellen, ist die Agentkonfiguration für UI-Tests über das Agentartefakt für DevTest Labs verfügbar.

agentArtifactDTL

Festlegen der Bildschirmauflösung

Vor dem Ausführen von Ui-Tests müssen Sie möglicherweise die Bildschirmauflösung anpassen, damit Apps ordnungsgemäß gerendert werden. Hierfür ist ein Hilfsprogramm für die Bildschirmauflösung im Marketplace verfügbar. Verwenden Sie diese Aufgabe in Ihrer Pipeline, um die Bildschirmauflösung auf einen Wert festzulegen, der vom Agentcomputer unterstützt wird. Standardmäßig legt dieses Hilfsprogramm die Auflösung auf den optimalen Wert fest, der vom Agentcomputer unterstützt wird.

Wenn die Aufgabe zur Bildschirmauflösung fehlschlägt, vergewissern Sie sich, dass der Agent so konfiguriert ist, dass die automatische Anmeldung aktiviert ist, und dass alle Remotedesktop-Sitzungen wie oben beschrieben mit dem Befehl tscon sicher getrennt wurden.

Hinweis

Der Hilfsprogrammtask zur Bildschirmauflösung wird auf dem einheitlichen Build-/Release-/Test-Agent ausgeführt und kann nicht mit dem veralteten Task Funktionstests ausführen verwendet werden.

Behandeln von Fehlern in UI-Tests

Wenn Sie Benutzeroberflächentests unbeaufsichtigt ausführen, ist das Erfassen von Diagnosedaten wie Screenshots oder Videos nützlich, um den Status der Anwendung zu ermitteln, als der Fehler aufgetreten ist.

Screenshots erstellen

Die meisten Frameworks für Benutzeroberflächentests bieten die Möglichkeit, Screenshots zu erfassen. Die gesammelten Screenshots sind als Anlage zu den Testergebnissen verfügbar, wenn diese Ergebnisse auf dem Server veröffentlicht werden.

Wenn Sie die Visual Studio-Testaufgabe zum Ausführen von Tests verwenden, müssen erfasste Screenshots als Ergebnisdatei hinzugefügt werden, damit sie im Testbericht verfügbar sind. Verwenden Sie dazu den folgenden Code:

Stellen Sie zunächst sicher, dass TestContext in Ihrer Testklasse definiert ist. Beispiel: public TestContext TestContext { get; set; }

Fügen Sie die Screenshotdatei mithilfe von hinzu. TestContext.AddResultFile(fileName); //Where fileName is the name of the file.

Wenn Sie die Aufgabe Testergebnisse veröffentlichen zum Veröffentlichen von Ergebnissen verwenden, können Testergebnisanlagen nur veröffentlicht werden, wenn Sie das ERGEBNISformat VSTest (TRX) oder das NUnit 3.0-Ergebnisformat verwenden.

Ergebnisanlagen können nicht veröffentlicht werden, wenn Sie JUnit- oder xUnit-Testergebnisse verwenden. Dies liegt daran, dass diese Testergebnisformate keine formale Definition für Anlagen im Ergebnisschema haben. Sie können stattdessen einen der folgenden Ansätze verwenden, um Testanlagen zu veröffentlichen.

  • Wenn Sie Tests in der Buildpipeline (CI) ausführen, können Sie die Aufgabe Kopieren und Veröffentlichen von Buildartefakten verwenden, um alle zusätzlichen Dateien zu veröffentlichen, die in Ihren Tests erstellt wurden. Diese werden auf der Seite Artefakte ihrer Buildzusammenfassung angezeigt.

  • Verwenden Sie die REST-APIs, um die erforderlichen Anlagen zu veröffentlichen. Codebeispiele finden Sie in diesem GitHub-Repository.

Video aufnehmen

Wenn Sie den Visual Studio-Testtask zum Ausführen von Tests verwenden, kann das Video des Tests erfasst werden und steht automatisch als Anlage zum Testergebnis zur Verfügung. Hierzu müssen Sie den Videodatensammler in einer RUNSETTINGS-Datei konfigurieren, und diese Datei muss in den Aufgabeneinstellungen angegeben werden.

runSettings

Hilfe und Support