Überlegungen UI-Tests

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017

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

Hinweis

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

Hinweis

In Microsoft Team Foundation Server (TFS) 2018 und früheren Versionen werden Build- und Release-Pipelines als Definitionen bezeichnet, Ausführungen werden als Builds bezeichnet, Dienstverbindungen werden als Dienstendpunkte bezeichnet, Stages werden als Umgebungen bezeichnet und Aufträge werden als Phasen bezeichnet.

Voraussetzungen

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

Headless-Modus oder sichtbarer Benutzeroberflächenmodus?

Wenn Sie Selenium-Tests für eine Web-App ausführen, können Sie den Browser auf zwei Arten starten:

  1. Headless-Modus. In diesem Modus wird der Browser wie gewohnt ausgeführt, ohne dass Benutzeroberflächenkomponenten sichtbar sind. Obwohl dieser Modus offensichtlich nicht für das Durchsuchen des Webs nützlich ist, ist er nützlich, um automatisierte Tests unbeaufsichtigt in einer CI/CD-Pipeline auszuführen. 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 möglicherweise mehr Tests parallel auf demselben Computer ausgeführt werden, um die gesamte Testausführungszeit zu reduzieren.

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

    Hinweis

    Microsoft Edge Browser kann derzeit nicht im moduslosen Modus ausgeführt werden.

  2. Sichtbarer Benutzeroberflächenmodus. In diesem Modus wird der Browser normal ausgeführt, und die Komponenten der Benutzeroberfläche sind sichtbar. Beim Ausführen von Tests in diesem Modus auf Windows ist eine besondere 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 Benutzeroberflächenmodus verwenden, können Sie je nach Testframework tests möglicherweise nicht parallel auf demselben Computer ausführen, da sich die App im Fokus befinden 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 Test Runner und paralleles Ausführen von Tests mithilfe Visual Studio Testtasks.

Ui-Tests im sichtbaren Benutzeroberflächenmodus

Für Agents ist eine spezielle Konfiguration erforderlich, damit Benutzeroberflächentests im sichtbaren Benutzeroberflächenmodus ausgeführt werden können.

Sichtbare Ui-Tests mit von Microsoft gehosteten Agents

Von Microsoft gehostete Agents sind für UI-Tests und UI-Tests für Web-Apps und Desktop-Apps vorkonfiguriert. Von Microsoft gehostete Agents sind auch mit gängigen Browsern und übereinstimmenden 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.

Sichtbare Ui-Tests mit selbstgehosteten Windows-Agents

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

Wählen Sie beim Konfigurieren von Agents "Nein" aus, wenn Sie aufgefordert werden, als Dienst auszuführen. Nachfolgende Schritte ermöglichen es Ihnen dann, den Agent mit automatischer Anmeldung zu konfigurieren. Wenn Die Ui-Tests 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 Remotedesktop verwenden, um auf den Computer zuzugreifen, auf dem ein Agent mit automatischer Anmeldung ausgeführt wird, führt das einfache Trennen der Remotedesktop dazu, dass der Computer gesperrt wird und alle ui-Tests, die auf diesem Agent ausgeführt werden, fehlschlagen können. Um dies zu vermeiden, verwenden Sie den Befehl tscon auf dem Remotecomputer, um die Verbindung mit Remotedesktop zu trennen. Zum 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 in Task-Manager angezeigt werden. Alternativ können Sie zum Automatisieren der Suche nach der aktuellen Sitzungs-ID eine Batchdatei erstellen, die den folgenden Code enthält:

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

Speichern Sie die Batchdatei, erstellen Sie eine Desktopverknüpfung, und ändern Sie dann die Verknüpfungseigenschaften in "Als Administrator ausführen". Das Ausführen der Batchdatei über diese Verknüpfung trennt die Verbindung mit dem Remotedesktop, behält jedoch die Ui-Sitzung bei und ermöglicht die Ausführung von UI-Tests.

Bereitstellen von Agents auf Azure-VMs für Ui-Tests

Wenn Sie virtuelle Computer (VMs) in Azure bereitstellen, ist die Agentkonfiguration für UI-Tests über das Agent-Artefakt für DevTest Labsverfü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 steht ein Bildschirmauflösungshilfsprogramm-Task im Marketplace zur Verfügung. Verwenden Sie diesen Task 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 bei Verwendung des Bildschirmauflösungstasks Fehler auftreten, stellen Sie sicher, dass der Agent für die Ausführung mit aktivierter automatischer Anmeldung konfiguriert ist und dass alle Remotedesktopsitzungen wie oben beschrieben sicher getrennt werden.

Hinweis

Der Bildschirmauflösungs-Hilfsprogrammtask wird auf dem einheitlichen Build-,Release-/Test-Agent ausgeführt und kann nicht mit dem veralteten Task Funktionstests ausführenverwendet werden.

Problembehandlung bei Fehlern in UI-Tests

Wenn Sie UI-Tests unbeaufsichtigt ausführen, ist das Erfassen von Diagnosedaten wie Screenshots oder Videos nützlich, um den Zustand der Anwendung zu ermitteln, als der Fehler aufgetreten ist.

Screenshots erfassen

Die meisten Frameworks für Benutzeroberflächentests bieten die Möglichkeit, Screenshots zu erfassen. Die erfassten 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 hierzu den folgenden Code:

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

Hinzufügen der Screenshotdatei mit TestContext.AddResultFile(fileName); //Where fileName is the name of the file.

Wenn Sie die Aufgabe Testergebnisse veröffentlichen verwenden, um Ergebnisse zu veröffentlichen, können Testergebnisanlagen nur veröffentlicht werden, wenn Sie das VSTest-Ergebnisformat (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 aufweisen. 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 Build kopieren und veröffentlichen Artifacts verwenden, um alle zusätzlichen Dateien zu veröffentlichen, die in Ihren Tests erstellt wurden. Diese werden auf der Artifacts Seite Ihrer Buildzusammenfassung angezeigt.

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

Video erfassen

Wenn Sie den Visual Studio Testtask zum Ausführen von Tests verwenden, können Videos des Tests aufgezeichnet werden und sind automatisch als Anlage zum Testergebnis verfügbar. Hierzu müssen Sie den Videodatensammler in einer RUNSETTINGS-Datei konfigurieren, und diese Datei muss in den Taskeinstellungen angegeben werden.

runSettings

Hilfe und Support