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 Gecodeerde UI-tests. In dit artikel 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:
Headless modus. In deze modus wordt de browser uitgevoerd als normaal, maar zonder dat er ui-onderdelen zichtbaar zijn. Hoewel deze modus niet handig is om op internet te surfen, is het handig voor het uitvoeren van geautomatiseerde tests op een niet-gecontroleerd 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.
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 Behulp van 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 worden 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 de 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 waarvoor 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 vervolgens de agent configureren met autologon. 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 autologon, wordt de verbinding met extern bureaublad verbroken, waardoor de computer wordt vergrendeld en eventuele UI-tests die op deze agent worden uitgevoerd, mislukken. Als u fouten wilt 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.
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. De oplossingshulpmiddelentaak werkt ook niet voor virtuele Azure-machines.
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 resultatenindeling VSTest (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 meer 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.
Help en ondersteuning
- Zie onze pagina voor probleemoplossing
- Krijg advies over Stack Overflow en krijg ondersteuning via de Ontwikkelaarscommunity