Overwegingen bij het testen van de gebruikersinterface

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

Wanneer u geautomatiseerde tests uitvoert in de CI/CD-pijplijn, hebt u mogelijk een speciale configuratie nodig om UI-tests uit te voeren, zoals Selenium-, Appium- of Coded UI-tests. In dit onderwerp worden de typische overwegingen beschreven voor het uitvoeren van UI-tests.

Vereisten

Raak vertrouwd met agents en implementeer een agent in Windows.

Hoofdloze modus of zichtbare UI-modus?

Wanneer u Selenium-tests uitvoert voor een web-app, kunt u de browser op twee manieren starten:

  1. Headless modus. In deze modus wordt de browser uitgevoerd als normaal, maar zonder dat er ui-onderdelen zichtbaar zijn. Hoewel deze modus duidelijk niet nuttig is om op internet te surfen, is het handig voor het uitvoeren van geautomatiseerde tests op een onbeheerde manier in een CI/CD-pijplijn. Chrome- en Firefox-browsers kunnen worden uitgevoerd in de headless-modus.

    Deze modus verbruikt doorgaans minder resources op de computer omdat de gebruikersinterface niet wordt weergegeven en tests sneller worden uitgevoerd. Als gevolg hiervan kunnen er mogelijk meer tests parallel op dezelfde computer worden uitgevoerd om de totale uitvoeringstijd van de test te verminderen.

    Schermopnamen kunnen in deze modus worden vastgelegd en worden gebruikt voor het oplossen van fouten.

    Notitie

    Microsoft Edge-browser kan momenteel niet worden uitgevoerd in de modus zonder hoofd.

  2. Zichtbare gebruikersinterfacemodus. In deze modus wordt de browser normaal uitgevoerd en zijn de ui-onderdelen zichtbaar. Bij het uitvoeren van tests in deze modus in Windows is speciale configuratie van de agents vereist.

Als u UI-tests uitvoert voor een bureaubladtoepassing, zoals Appium-tests met WinAppDriver of Coded UI-tests, is een speciale configuratie van de agents vereist.

Tip

End-to-end UI-tests zijn over het algemeen langlopend. Wanneer u de zichtbare UI-modus gebruikt, afhankelijk van het testframework, kunt u mogelijk geen tests parallel uitvoeren op dezelfde computer, omdat de app de focus moet hebben om toetsenbord- en muisevenementen te ontvangen. In dit scenario kunt u testcycli versnellen door tests parallel uit te voeren op verschillende computers. Zie runtests parallel voor elke testrunner en voer tests parallel uit met behulp van de Visual Studio Test-taak.

UI-tests in de zichtbare UI-modus

Een speciale configuratie is vereist voor agents om UI-tests uit te voeren in de zichtbare UI-modus.

Visible UI testing using Microsoft-hosted agents (Zichtbare UI-tests met door Microsoft gehoste agents)

Door Microsoft gehoste agents zijn vooraf geconfigureerd voor ui-tests en UI-tests voor zowel web-apps als desktop-apps. Door Microsoft gehoste agents zijn ook vooraf geconfigureerd met populaire browsers en overeenkomende webstuurprogrammaversies die kunnen worden gebruikt voor het uitvoeren van Selenium-tests. De browsers en bijbehorende webstuurprogramma's worden periodiek bijgewerkt. Zie ui-test met Selenium voor meer informatie over het uitvoeren van Selenium-tests

Visible UI testing using self-hosted Windows agents (Zichtbare ui-tests met behulp van zelf-hostende Windows-agents)

Agents die zijn geconfigureerd voor uitvoering als service, kunnen Selenium-tests alleen uitvoeren met headless browsers. Als u geen headless browser gebruikt of als u UI-tests uitvoert voor desktop-apps, moeten Windows-agents worden geconfigureerd om te worden uitgevoerd als een interactief proces waarbij automatisch aanmelden is ingeschakeld.

Wanneer u agents configureert, selecteert u Nee wanneer u wordt gevraagd om als een service uit te voeren. Met volgende stappen kunt u de agent configureren met automatisch aanmelden. Wanneer uw UI-tests worden uitgevoerd, worden toepassingen en browsers gestart in de context van de gebruiker die is opgegeven in de instellingen voor automatisch aanmelden.

Als u Extern bureaublad gebruikt om toegang te krijgen tot de computer waarop een agent wordt uitgevoerd met automatisch aanmelden, wordt de verbinding met extern bureaublad verbroken, waardoor de computer wordt vergrendeld en eventuele UI-tests die op deze agent worden uitgevoerd, mislukken. Om dit te voorkomen, gebruikt u de opdracht tscon op de externe computer om de verbinding met Extern bureaublad te verbreken. Voorbeeld:

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

In dit voorbeeld is het nummer 1 de id van de sessie met extern bureaublad. Dit nummer kan veranderen tussen externe sessies, maar kan worden weergegeven in Taakbeheer. Als u het zoeken naar de huidige sessie-id wilt automatiseren, maakt u een batchbestand met de volgende code:

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

Sla het batchbestand op en maak een snelkoppeling naar het bureaublad en wijzig vervolgens de snelkoppelingseigenschappen in Uitvoeren als administrator. Als u het batchbestand vanaf deze snelkoppeling uitvoert, wordt de verbinding met het externe bureaublad verbroken, maar blijft de UI-sessie behouden en kunnen UI-tests worden uitgevoerd.

Agents inrichten in Azure-VM's voor het testen van gebruikersinterfaces

Als u virtuele machines (VM's) in Azure inricht, is de agentconfiguratie voor ui-tests beschikbaar via het agentartefact voor DevTest Labs.

agentArtifactDTL

Schermresolutie instellen

Voordat u UI-tests uitvoert, moet u mogelijk de schermresolutie aanpassen, zodat apps correct worden weergegeven. Hiervoor is een hulpprogramma voor schermresolutie beschikbaar via Marketplace. Gebruik deze taak in uw pijplijn om de schermresolutie in te stellen op een waarde die wordt ondersteund door de agentcomputer. Standaard stelt dit hulpprogramma de resolutie in op de optimale waarde die wordt ondersteund door de agentcomputer.

Als er fouten optreden bij het gebruik van de schermresolutietaak, moet u ervoor zorgen dat de agent is geconfigureerd voor uitvoering met automatisch aanmelden ingeschakeld en dat alle externe bureaubladsessies veilig zijn losgekoppeld met behulp van de tscon-opdracht , zoals hierboven beschreven.

Notitie

De taak van het hulpprogramma voor schermresolutie wordt uitgevoerd op de geïntegreerde build-/release-/testagent en kan niet worden gebruikt met de afgeschafte taak Functionele tests uitvoeren.

Fouten in UI-tests oplossen

Wanneer u ui-tests uitvoert op een onbeheerde manier, is het vastleggen van diagnostische gegevens, zoals schermopnamen of video's , handig voor het detecteren van de status van de toepassing wanneer de fout is opgetreden.

Schermopnamen maken

De meeste ui-testframeworks bieden de mogelijkheid om schermopnamen vast te leggen. De verzamelde schermopnamen zijn beschikbaar als bijlage bij de testresultaten wanneer deze resultaten naar de server worden gepubliceerd.

Als u de Visual Studio-testtaak gebruikt om tests uit te voeren, moeten vastgelegde schermopnamen worden toegevoegd als resultaatbestand om beschikbaar te zijn in het testrapport. Gebruik hiervoor de volgende code:

Controleer eerst of TestContext is gedefinieerd in uw testklasse. Bijvoorbeeld: public TestContext TestContext { get; set; }

Het schermopnamebestand toevoegen met TestContext.AddResultFile(fileName); //Where fileName is the name of the file.

Als u de taak Testresultaten publiceren gebruikt om resultaten te publiceren, kunnen testresultatenbijlagen alleen worden gepubliceerd als u de VSTest-resultatenindeling (TRX) of de resultatenindeling NUnit 3.0 gebruikt .

Resultaatbijlagen kunnen niet worden gepubliceerd als u JUnit- of xUnit-testresultaten gebruikt. Dit komt doordat deze indelingen voor testresultaten geen formele definitie hebben voor bijlagen in het resultatenschema. U kunt in plaats daarvan een van de onderstaande methoden gebruiken om testbijlagen te publiceren.

  • Als u tests uitvoert in de build-pijplijn (CI), kunt u de taak BuildArtefacten kopiëren en publiceren gebruiken om eventuele extra bestanden te publiceren die in uw tests zijn gemaakt. Deze worden weergegeven op de pagina Artefacten van uw build-samenvatting.

  • Gebruik de REST API's om de benodigde bijlagen te publiceren. Codevoorbeelden vindt u in deze GitHub-opslagplaats.

Video vastleggen

Als u de Visual Studio-testtaak gebruikt om tests uit te voeren, kan de video van de test worden vastgelegd en is deze automatisch beschikbaar als bijlage bij het testresultaat. Hiervoor moet u de collector voor videogegevens configureren in een .runsettings-bestand en moet dit bestand worden opgegeven in de taakinstellingen.

uitvoeren Instellingen

Help en ondersteuning